SQL rendering API

SQL rendering API

Synopsis

#include <libgda/gda-statement-extra.h>

struct              GdaSqlRenderingContext;
gchar *             (*GdaSqlRenderingValue)             (const GValue *value,
                                                         GdaSqlRenderingContext *context,
                                                         GError **error);
gchar *             (*GdaSqlRenderingPSpecFunc)         (GdaSqlParamSpec *pspec,
                                                         GdaSqlExpr *expr,
                                                         GdaSqlRenderingContext *context,
                                                         gboolean *is_default,
                                                         gboolean *is_null,
                                                         GError **error);
gchar *             (*GdaSqlRenderingExpr)              (GdaSqlExpr *expr,
                                                         GdaSqlRenderingContext *context,
                                                         gboolean *is_default,
                                                         gboolean *is_null,
                                                         GError **error);
gchar *             (*GdaSqlRenderingFunc)              (GdaSqlAnyPart *node,
                                                         GdaSqlRenderingContext *context,
                                                         GError **error);
gchar *             gda_statement_to_sql_real           (GdaStatement *stmt,
                                                         GdaSqlRenderingContext *context,
                                                         GError **error);

Description

Details

struct GdaSqlRenderingContext

struct GdaSqlRenderingContext {
	GdaStatementSqlFlag      flags;
	GdaSet                  *params;
	GSList                  *params_used;
	GdaServerProvider       *provider; /* may be NULL */
	GdaConnection           *cnc;      /* may be NULL */

	/* rendering functions */
	GdaSqlRenderingValue     render_value;
	GdaSqlRenderingPSpecFunc render_param_spec; 
	GdaSqlRenderingExpr      render_expr;

	GdaSqlRenderingFunc      render_unknown;

	GdaSqlRenderingFunc      render_begin;
	GdaSqlRenderingFunc      render_rollback;
	GdaSqlRenderingFunc      render_commit;
	GdaSqlRenderingFunc      render_savepoint;
	GdaSqlRenderingFunc      render_rollback_savepoint;
	GdaSqlRenderingFunc      render_delete_savepoint;

	GdaSqlRenderingFunc      render_select;
	GdaSqlRenderingFunc      render_insert;
	GdaSqlRenderingFunc      render_delete;
	GdaSqlRenderingFunc      render_update;
	GdaSqlRenderingFunc      render_compound;

	GdaSqlRenderingFunc      render_field;
	GdaSqlRenderingFunc      render_table;
	GdaSqlRenderingFunc      render_function;
	GdaSqlRenderingFunc      render_operation;
	GdaSqlRenderingFunc      render_case;
	GdaSqlRenderingFunc      render_select_field;
	GdaSqlRenderingFunc      render_select_target;
	GdaSqlRenderingFunc      render_select_join;
	GdaSqlRenderingFunc      render_select_from;
	GdaSqlRenderingFunc      render_select_order;

	/* Padding for future expansion */
	void (*_gda_reserved1) (void);
	void (*_gda_reserved2) (void);
	void (*_gda_reserved3) (void);
	void (*_gda_reserved4) (void);
	void (*_gda_reserved5) (void);
	void (*_gda_reserved6) (void);
	void (*_gda_reserved7) (void);
	void (*_gda_reserved8) (void);
};


GdaSqlRenderingValue ()

gchar *             (*GdaSqlRenderingValue)             (const GValue *value,
                                                         GdaSqlRenderingContext *context,
                                                         GError **error);


GdaSqlRenderingPSpecFunc ()

gchar *             (*GdaSqlRenderingPSpecFunc)         (GdaSqlParamSpec *pspec,
                                                         GdaSqlExpr *expr,
                                                         GdaSqlRenderingContext *context,
                                                         gboolean *is_default,
                                                         gboolean *is_null,
                                                         GError **error);


GdaSqlRenderingExpr ()

gchar *             (*GdaSqlRenderingExpr)              (GdaSqlExpr *expr,
                                                         GdaSqlRenderingContext *context,
                                                         gboolean *is_default,
                                                         gboolean *is_null,
                                                         GError **error);


GdaSqlRenderingFunc ()

gchar *             (*GdaSqlRenderingFunc)              (GdaSqlAnyPart *node,
                                                         GdaSqlRenderingContext *context,
                                                         GError **error);


gda_statement_to_sql_real ()

gchar *             gda_statement_to_sql_real           (GdaStatement *stmt,
                                                         GdaSqlRenderingContext *context,
                                                         GError **error);

Renders stmt to its SQL representation, using context to specify how each part of stmt must be rendered. This function is mainly used by database provider's implementations which require to specialize some aspects of SQL rendering to be adapted to the database,'s own SQL dialect (for example SQLite rewrites the 'FALSE' and 'TRUE' literals as '0' and 'NOT 0').

stmt :

a GdaStatement object

context :

a GdaSqlRenderingContext context

error :

a place to store errors, or NULL

Returns :

a new string, or NULL if an error occurred