## GdaDataModelHash GdaDataModelHash — An implementation of GdaDataModel based on a hash table |

## Synopsis

                GdaDataModelHash;
    GdaDataModel* gda_data_model_hash_new       (gint cols);
    void        gda_data_model_hash_clear       (GdaDataModelHash *model);
    void        gda_data_model_hash_set_n_columns
                                                (GdaDataModelHash *model,
                                                 gint cols);
    void        gda_data_model_hash_insert_row  (GdaDataModelHash *model,
                                                 gint rownum,
                                                 GdaRow *row);

## Object Hierarchy

      GObject
       +----GdaDataModelBase
             +----GdaDataModelHash

## Implemented Interfaces

GdaDataModelHash implements GdaDataModel.

## Description

Unlike GdaDataModelArray, this data model implementation stores the GdaRow in a hash table. So it only retrieves from the database backend exactly the requested rows (while in GdaDataModelArray you have to retrieve all the rows until the one requested).

## Details

### GdaDataModelHash

    typedef struct _GdaDataModelHash GdaDataModelHash;

### gda_data_model_hash_new ()

    GdaDataModel* gda_data_model_hash_new       (gint cols);

`cols` : | number of columns for rows in this data model.
Returns : | a pointer to the newly created GdaDataModel.

### gda_data_model_hash_clear ()

    void        gda_data_model_hash_clear       (GdaDataModelHash *model);

Frees all the rows inserted in `model`.

`model` : | the model to clear.

### gda_data_model_hash_set_n_columns ()

    void        gda_data_model_hash_set_n_columns
                                                (GdaDataModelHash *model,
                                                 gint cols);

Sets the number of columns for rows inserted in this model. `cols` must be greater than or equal to 0.

This function calls gda_data_model_hash_clear to free the existing rows if any.

`model` : | the GdaDataModelHash.
`cols` : | the number of columns for rows inserted in `model`.

### gda_data_model_hash_insert_row ()

    void        gda_data_model_hash_insert_row  (GdaDataModelHash *model,
                                                 gint rownum,
                                                 GdaRow *row);

Inserts a `row` in the `model`.

`model` : | the GdaDataModelHash which is gonna hold the row.
`rownum` : | the number of the row.
`row` : | the row to insert. The model is responsible of freeing it!