## GdaDataModel columns GdaDataModel columns — Management of GdaDataModel column attributes |

## Stability Level

Stable, unless otherwise indicated

## Functions

GdaColumn * | gda_column_new ()
GdaColumn * | gda_column_copy ()
const gchar * | gda_column_get_name ()
const gchar * | gda_column_get_description ()
const gchar * | gda_column_get_dbms_type ()
GType | gda_column_get_g_type ()
gboolean | gda_column_get_allow_null ()
gboolean | gda_column_get_auto_increment ()
gint | gda_column_get_position ()
const GValue * | gda_column_get_default_value ()
const GValue * | gda_column_get_attribute ()
void | gda_column_set_attribute ()
#define | gda_column_set_attribute_static()

## Properties

gchar * | id | Read / Write

## Signals

void | g-type-changed | Run Last
void | name-changed | Run Last

## Types and Values

| GdaColumn

## Object Hierarchy

        GObject
        ╰── GdaColumn

## Description

The GdaColumn object represents a GdaDataModel's column and handle all its properties.

## Functions

### gda_column_new ()

    GdaColumn *
    gda_column_new (void);

#### Returns

a newly allocated GdaColumn object.

### gda_column_copy ()

    GdaColumn *
    gda_column_copy (GdaColumn *column);

Creates a new GdaColumn object from an existing one.

#### Parameters

column | column to get a copy from. |

#### Returns

a newly allocated GdaColumn with a copy of the data in `column` .

[transfer full]

### gda_column_get_name ()

    const gchar *
    gda_column_get_name (GdaColumn *column);

#### Parameters

column | a GdaColumn. |

#### Returns

the name of `column` .

### gda_column_get_description ()

    const gchar *
    gda_column_get_description (GdaColumn *column);

#### Parameters

column | a GdaColumn. |

#### Returns

the column's description, in any

### gda_column_get_dbms_type ()

    const gchar *
    gda_column_get_dbms_type (GdaColumn *column);

#### Parameters

column | a GdaColumn. |

#### Returns

the database type of `column` .

### gda_column_get_g_type ()

    GType
    gda_column_get_g_type (GdaColumn *column);

#### Parameters

column | a GdaColumn. |

#### Returns

the type of `column` .

### gda_column_get_allow_null ()

    gboolean
    gda_column_get_allow_null (GdaColumn *column);

Gets the 'allow null' flag of the given column.

#### Parameters

column | a GdaColumn. |

#### Returns

whether the given column allows null values or not (`TRUE` or `FALSE`).

### gda_column_get_auto_increment ()

    gboolean
    gda_column_get_auto_increment (GdaColumn *column);

#### Parameters

column | a GdaColumn. |

#### Returns

whether the given column is an auto incremented one (`TRUE` or `FALSE`).

### gda_column_get_position ()

    gint
    gda_column_get_position (GdaColumn *column);

#### Parameters

column | a GdaColumn. |

#### Returns

the position of the column refer to in the containing data model.

### gda_column_get_default_value ()

    const GValue *
    gda_column_get_default_value (GdaColumn *column);

#### Parameters

column | a GdaColumn. |

#### Returns

`column` 's default value, as a GValue object, or `NULL` if column does not have a default value.

[allow-none]

### gda_column_get_attribute ()

    const GValue *
    gda_column_get_attribute (GdaColumn *column,
                              const gchar *attribute);

Get the value associated to a named attribute.

Attributes can have any name, but Libgda proposes some default names, see this section.

#### Parameters

column | a GdaColumn |
attribute | attribute name as a string |

#### Returns

a read-only GValue, or `NULL` if not attribute named `attribute` has been set for `column`

### gda_column_set_attribute ()

    void
    gda_column_set_attribute (GdaColumn *column,
                              const gchar *attribute,
                              const GValue *value,
                              GDestroyNotify destroy);

Set the value associated to a named attribute. The `attribute` string is 'stolen' by this method, and the memory it uses will be freed using the `destroy` function when no longer needed (if `destroy` is `NULL`, then the string will not be freed at all).

Attributes can have any name, but Libgda proposes some default names, see this section.

If there is already an attribute named `attribute` set, then its value is replaced with the new value (`value` is copied), except if `value` is `NULL`, in which case the attribute is removed.

For example one would use it as:

`gda_column_set_attribute (holder, g_strdup (my_attribute), g_free, my_value); gda_column_set_attribute (holder, GDA_ATTRIBUTE_NAME, NULL, my_value);`

Note: this method does not modify in any way the contents of the data model for which `column` is a column (nor does it modify the table definition of the tables used by a SELECT statement is the model was created from a SELECT statement).

#### Parameters

column | a GdaColumn |
attribute | attribute name as a static string |
value | a GValue, or `NULL`. | [allow-none]
destroy | a function to be called when `attribute` is not needed anymore, or `NULL`. | [allow-none]

### gda_column_set_attribute_static()

    #define gda_column_set_attribute_static(holder,attribute,value) gda_column_set_attribute((holder),(attribute),(value),NULL)

This function is similar to `gda_column_set_attribute()` but for static strings

#### Parameters

holder | a GdaHolder |
attribute | attribute's name |
value | the value to set the attribute to, or `NULL`. | [allow-none]

## Types and Values

### GdaColumn

    typedef struct _GdaColumn GdaColumn;

## Property Details

### The `“id”` property

      “id”                       gchar *

Column's Id (warning: the column's ID is not guaranteed to be unique in a GdaDataModel).

Flags: Read / Write

Default value: NULL

## Signal Details

### The `“g-type-changed”` signal

    void
    user_function (GdaColumn *column,
                   GType     *old_type,
                   GType     *new_type,
                   gpointer   user_data)

Gets emitted whenever `column` 's type has been changed

#### Parameters

column | the GdaColumn object |
old_type | the column's previous type |
new_type | the column's new type |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“name-changed”` signal

    void
    user_function (GdaColumn *column,
                   gchar     *old_name,
                   gpointer   user_data)

Gets emitted whenever `column` 's name has been changed

#### Parameters

column | the GdaColumn object |
old_name | the column's previous name |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

## See Also

GdaDataModel