## GdaRenderer

GdaRenderer — Interface to get representations of objects as SQL statements, XML nodes or human readable text

## Synopsis

                        GdaRenderer;
    enum                GdaRendererOptions;
    gchar*              gda_renderer_render_as_sql          (GdaRenderer *iface,
                                                             GdaParameterList *context,
                                                             GSList **out_params_used,
                                                             GdaRendererOptions options,
                                                             GError **error);
    gchar*              gda_renderer_render_as_str          (GdaRenderer *iface,
                                                             GdaParameterList *context);
    gboolean            gda_renderer_is_valid               (GdaRenderer *iface,
                                                             GdaParameterList *context,
                                                             GError **error);

## Object Hierarchy

      GInterface
       +----GdaRenderer

## Prerequisites

GdaRenderer requires GObject.

## Known Implementations

GdaRenderer is implemented by GdaQueryFieldFunc, GdaQueryFieldAgg, GdaQueryFieldValue, GdaQueryCondition, GdaQueryFieldAll, GdaQueryTarget, GdaDictField, GdaQuery and GdaQueryFieldField.

## Description

## Details

### GdaRenderer

    typedef struct _GdaRenderer GdaRenderer;

### enum GdaRendererOptions

    typedef enum {
    	GDA_RENDERER_EXTRA_PRETTY_SQL       = 1 << 0,
    	GDA_RENDERER_PARAMS_AS_DETAILED     = 1 << 1,
    	GDA_RENDERER_ERROR_IF_DEFAULT       = 1 << 2,
    	GDA_RENDERER_FIELDS_NO_TARGET_ALIAS = 1 << 3,
    	GDA_RENDERER_PARAMS_AS_COLON        = 1 << 4,/* params as :param_name */
    	GDA_RENDERER_PARAMS_AS_DOLLAR       = 1 << 5 /* params as $1, $2, etc (starts at $1) */
    } GdaRendererOptions;

`GDA_RENDERER_EXTRA_PRETTY_SQL` | The rendered statement will output easy to read SQL
`GDA_RENDERER_PARAMS_AS_DETAILED` |
`GDA_RENDERER_ERROR_IF_DEFAULT` |
`GDA_RENDERER_FIELDS_NO_TARGET_ALIAS` |
`GDA_RENDERER_PARAMS_AS_COLON` |
`GDA_RENDERER_PARAMS_AS_DOLLAR` |

### gda_renderer_render_as_sql ()

    gchar*              gda_renderer_render_as_sql          (GdaRenderer *iface,
                                                             GdaParameterList *context,
                                                             GSList **out_params_used,
                                                             GdaRendererOptions options,
                                                             GError **error);

Build a SQL statement representing the object, in the specified context.

If `context` is `NULL`, then no error related to missing parameters (which should be in the context) is returned, and missing values are replaced by 'human readable' SQL.

If `out_params_used` is not `NULL`, then pointers to the GdaParameter objects used to actually render the SQL statement are appended to the list (in case a parameter object is used several times, it is only once listed in the resulting list).

`iface` : | an object which implements the GdaRenderer interface
`context` : | a GdaParameterList containing values for `iface`'s parameters, or `NULL`
`out_params_used` : | a place to append GdaParameter which have been used during the rendering process, or `NULL`
`options` : | OR'ed flags from GdaRendererOptions to give some rendering options
`error` : | location to store error, or `NULL`
Returns : | the new SQL statement (new string), or `NULL` in case of error

### gda_renderer_render_as_str ()

    gchar*              gda_renderer_render_as_str          (GdaRenderer *iface,
                                                             GdaParameterList *context);

Build a human readable string representing the object, in the specified context.

`iface` : | an object which implements the GdaRenderer interface
`context` : | rendering context
Returns : | the new string

### gda_renderer_is_valid ()

    gboolean            gda_renderer_is_valid               (GdaRenderer *iface,
                                                             GdaParameterList *context,
                                                             GError **error);

Tells if `iface` has all the necessary information in `context` to be rendered into a valid statement (which can be executed).

`iface` : | an object which implements the GdaRenderer interface
`context` : | rendering context
`error` : | location to store error, or `NULL`
Returns : | TRUE if `iface` can be rendered with `context`