[libgda] Honor the new SQL identifiers case sensitiveness flag in connections
- From: Vivien Malerba <vivien src gnome org>
- To: svn-commits-list gnome org
- Subject: [libgda] Honor the new SQL identifiers case sensitiveness flag in connections
- Date: Thu, 23 Jul 2009 19:37:40 +0000 (UTC)
commit 65261b071cda1ff1382d2048a25b2cdf2d8c4db5
Author: Vivien Malerba <malerba gnome-db org>
Date: Thu Jul 23 20:51:15 2009 +0200
Honor the new SQL identifiers case sensitiveness flag in connections
* when rendering SQL from a GdaSqlStatement
* when using the new GdaSqlBuilder API
doc/C/libgda-4.0-sections.txt | 2 +-
doc/C/tmpl/gda-sql-builder.sgml | 6 +-
libgda/gda-sql-builder.c | 5 +-
libgda/gda-sql-builder.h | 2 +-
libgda/gda-statement.c | 91 ++++++++++++++++--------
libgda/sql-parser/gda-statement-struct-parts.c | 16 +++-
libgda/sql-parser/gda-statement-struct-parts.h | 7 ++-
libgda/sqlite/gda-sqlite-provider.c | 58 ++++++++++++----
providers/oracle/gda-oracle-provider.c | 73 ++++++++++++++-----
samples/SqlBuilder/example.c | 28 ++++---
tests/test-sql-builder.c | 82 +++++++++++-----------
tools/browser/browser-favorites.c | 84 +++++++++++-----------
12 files changed, 285 insertions(+), 169 deletions(-)
---
diff --git a/doc/C/libgda-4.0-sections.txt b/doc/C/libgda-4.0-sections.txt
index 997d65a..2b28b93 100644
--- a/doc/C/libgda-4.0-sections.txt
+++ b/doc/C/libgda-4.0-sections.txt
@@ -1663,7 +1663,7 @@ gda_sql_builder_get_sql_statement
gda_sql_builder_set_table
gda_sql_builder_add_field
<SUBSECTION>
-gda_sql_builder_literal
+gda_sql_builder_ident
gda_sql_builder_expr
gda_sql_builder_param
<SUBSECTION>
diff --git a/doc/C/tmpl/gda-sql-builder.sgml b/doc/C/tmpl/gda-sql-builder.sgml
index 73c6fa4..84b178f 100644
--- a/doc/C/tmpl/gda-sql-builder.sgml
+++ b/doc/C/tmpl/gda-sql-builder.sgml
@@ -25,12 +25,12 @@ Factory object for statements
The following example builds the equivalent of the <![CDATA["name='joe' AND age >= ##ageparam::int"]]> expression:
<programlisting><![CDATA[
GdaSqlBuilder *b=...
-gda_sql_builder_literal (b, 1, "name"); // build the "name" literal with requested ID=1
+gda_sql_builder_ident (b, 1, "name"); // build the "name" SQL identifier with requested ID=1
gda_sql_builder_expr (b, 2, NULL, G_TYPE_STRING, "joe"); // 'joe' expression, requested ID=2
gda_sql_builder_cond2 (b, 3, GDA_SQL_OPERATOR_TYPE_EQ, 1, 2); // "name='joe'", requested ID=3
gda_sql_builder_cond2 (b, 4, GDA_SQL_OPERATOR_TYPE_GT, // requested ID=4
- gda_sql_builder_literal (b, 0, "age"), // build the "age" literal, no specific ID
+ gda_sql_builder_ident (b, 0, "age"), // build the "age" SQL identifier, no specific ID
gda_sql_builder_param (b, 0, "ageparam", G_TYPE_INT, FALSE) // parameter, no specific ID
);
gda_sql_builder_cond2 (b, 5, GDA_SQL_OPERATOR_TYPE_AND, 3, 4); // whole expression, requested ID=5
@@ -99,7 +99,7 @@ gda_sql_builder_cond2 (b, 5, GDA_SQL_OPERATOR_TYPE_AND, 3, 4); // whole expressi
@value_id:
-<!-- ##### FUNCTION gda_sql_builder_literal ##### -->
+<!-- ##### FUNCTION gda_sql_builder_ident ##### -->
<para>
</para>
diff --git a/libgda/gda-sql-builder.c b/libgda/gda-sql-builder.c
index 24f3d5a..5b10a98 100644
--- a/libgda/gda-sql-builder.c
+++ b/libgda/gda-sql-builder.c
@@ -635,7 +635,7 @@ gda_sql_builder_expr (GdaSqlBuilder *builder, guint id, GdaDataHandler *dh, GTyp
}
/**
- * gda_sql_builder_literal
+ * gda_sql_builder_ident
* @builder: a #GdaSqlBuilder object
* @id: the requested ID, or 0 if to be determined by @builder
* @string: a string
@@ -658,7 +658,7 @@ gda_sql_builder_expr (GdaSqlBuilder *builder, guint id, GdaDataHandler *dh, GTyp
* Since: 4.2
*/
guint
-gda_sql_builder_literal (GdaSqlBuilder *builder, guint id, const gchar *string)
+gda_sql_builder_ident (GdaSqlBuilder *builder, guint id, const gchar *string)
{
g_return_val_if_fail (GDA_IS_SQL_BUILDER (builder), 0);
g_return_val_if_fail (builder->priv->main_stmt, 0);
@@ -668,6 +668,7 @@ gda_sql_builder_literal (GdaSqlBuilder *builder, guint id, const gchar *string)
if (string) {
expr->value = gda_value_new (G_TYPE_STRING);
g_value_set_string (expr->value, string);
+ expr->value_is_ident = (gpointer) 0x1;
}
return add_part (builder, id, (GdaSqlAnyPart *) expr);
diff --git a/libgda/gda-sql-builder.h b/libgda/gda-sql-builder.h
index b5c8df1..b76d0f0 100644
--- a/libgda/gda-sql-builder.h
+++ b/libgda/gda-sql-builder.h
@@ -70,7 +70,7 @@ GdaStatement *gda_sql_builder_get_statement (GdaSqlBuilder *builder, GError
GdaSqlStatement *gda_sql_builder_get_sql_statement (GdaSqlBuilder *builder, gboolean copy_it);
/* Expression API */
-guint gda_sql_builder_literal (GdaSqlBuilder *builder, guint id, const gchar *string);
+guint gda_sql_builder_ident (GdaSqlBuilder *builder, guint id, const gchar *string);
guint gda_sql_builder_expr (GdaSqlBuilder *builder, guint id, GdaDataHandler *dh, GType type, ...);
guint gda_sql_builder_param (GdaSqlBuilder *builder, guint id, const gchar *param_name, GType type, gboolean nullok);
diff --git a/libgda/gda-statement.c b/libgda/gda-statement.c
index 2f4db6b..acf80e6 100644
--- a/libgda/gda-statement.c
+++ b/libgda/gda-statement.c
@@ -1292,7 +1292,8 @@ default_render_param_spec (GdaSqlParamSpec *pspec, GdaSqlExpr *expr, GdaSqlRende
}
static gchar *
-default_render_expr (GdaSqlExpr *expr, GdaSqlRenderingContext *context, gboolean *is_default, gboolean *is_null, GError **error)
+default_render_expr (GdaSqlExpr *expr, GdaSqlRenderingContext *context, gboolean *is_default,
+ gboolean *is_null, GError **error)
{
GString *string;
gchar *str = NULL;
@@ -1316,13 +1317,45 @@ default_render_expr (GdaSqlExpr *expr, GdaSqlRenderingContext *context, gboolean
if (!str) goto err;
}
else if (expr->value) {
- str = gda_value_stringify (expr->value);
- if (!str) goto err;
- if (is_null && gda_value_is_null (expr->value))
- *is_null = TRUE;
- else if (is_default && (G_VALUE_TYPE (expr->value) == G_TYPE_STRING) &&
- !g_ascii_strcasecmp (g_value_get_string (expr->value), "default"))
- *is_default = TRUE;
+ if (expr->value_is_ident && (G_VALUE_TYPE (expr->value) == G_TYPE_STRING) &&
+ g_value_get_string (expr->value)) {
+ gchar **ids_array;
+ gint i;
+ GString *string = NULL;
+ GdaConnectionOptions cncoptions = 0;
+ if (context->cnc)
+ g_object_get (G_OBJECT (context->cnc), "options", &cncoptions, NULL);
+
+ ids_array = gda_sql_identifier_split (g_value_get_string (expr->value));
+ if (!ids_array)
+ str = g_value_dup_string (expr->value);
+ else if (!(ids_array[0])) goto err;
+ else {
+ for (i = 0; ids_array[i]; i++) {
+ gchar *tmp;
+ if (!string)
+ string = g_string_new ("");
+ else
+ g_string_append_c (string, '.');
+ tmp = gda_sql_identifier_quote (ids_array[i], context->cnc,
+ context->provider, FALSE,
+ cncoptions & GDA_CONNECTION_OPTIONS_SQL_IDENTIFIERS_CASE_SENSITIVE);
+ g_string_append (string, tmp);
+ g_free (tmp);
+ }
+ g_strfreev (ids_array);
+ str = g_string_free (string, FALSE);
+ }
+ }
+ else {
+ str = gda_value_stringify (expr->value);
+ if (!str) goto err;
+ if (is_null && gda_value_is_null (expr->value))
+ *is_null = TRUE;
+ else if (is_default && (G_VALUE_TYPE (expr->value) == G_TYPE_STRING) &&
+ !g_ascii_strcasecmp (g_value_get_string (expr->value), "default"))
+ *is_default = TRUE;
+ }
}
else if (expr->func) {
str = context->render_function (GDA_SQL_ANY_PART (expr->func), context, error);
@@ -1383,7 +1416,12 @@ default_render_field (GdaSqlField *field, GdaSqlRenderingContext *context, GErro
/* can't have: field->field_name not a valid SQL identifier */
if (!gda_sql_any_part_check_structure (GDA_SQL_ANY_PART (field), error)) return NULL;
- return g_strdup (field->field_name);
+ GdaConnectionOptions cncoptions = 0;
+ if (context->cnc)
+ g_object_get (G_OBJECT (context->cnc), "options", &cncoptions, NULL);
+ return gda_sql_identifier_quote (field->field_name, context->cnc, context->provider,
+ FALSE,
+ cncoptions & GDA_CONNECTION_OPTIONS_SQL_IDENTIFIERS_CASE_SENSITIVE);
}
static gchar *
@@ -1405,11 +1443,15 @@ default_render_table (GdaSqlTable *table, GdaSqlRenderingContext *context, GErro
gint i;
GString *string;
+ GdaConnectionOptions cncoptions = 0;
+ if (context->cnc)
+ g_object_get (G_OBJECT (context->cnc), "options", &cncoptions, NULL);
string = g_string_new ("");
for (i = 0; ids_array [i]; i++) {
gchar *tmp;
tmp = gda_sql_identifier_quote (ids_array [i], context->cnc, context->provider,
- FALSE, FALSE);
+ FALSE,
+ cncoptions & GDA_CONNECTION_OPTIONS_SQL_IDENTIFIERS_CASE_SENSITIVE);
g_free (ids_array [i]);
ids_array [i] = tmp;
if (i != 0)
@@ -1751,6 +1793,7 @@ default_render_select_target (GdaSqlSelectTarget *target, GdaSqlRenderingContext
{
GString *string;
gchar *str;
+ gpointer tmp;
g_return_val_if_fail (target, NULL);
g_return_val_if_fail (GDA_SQL_ANY_PART (target)->type == GDA_SQL_ANY_SQL_SELECT_TARGET, NULL);
@@ -1763,29 +1806,15 @@ default_render_select_target (GdaSqlSelectTarget *target, GdaSqlRenderingContext
if (!str)
return NULL;
string = g_string_new (str);
+ g_free (str);
}
else {
- gchar **ids_array;
- ids_array = gda_sql_identifier_split (g_value_get_string (target->expr->value));
- if (!ids_array) {
- g_set_error (error, GDA_SQL_ERROR, GDA_SQL_STRUCTURE_CONTENTS_ERROR,
- "%s", _("Malformed expression in select target"));
- return NULL;
- }
-
- gint i;
- string = g_string_new ("");
- for (i = 0; ids_array [i]; i++) {
- gchar *tmp;
- tmp = gda_sql_identifier_quote (ids_array [i], context->cnc, context->provider,
- FALSE, FALSE);
- g_free (ids_array [i]);
- ids_array [i] = tmp;
- if (i != 0)
- g_string_append_c (string, '.');
- g_string_append (string, ids_array [i]);
- }
- g_strfreev (ids_array);
+ tmp = target->expr->value_is_ident;
+ target->expr->value_is_ident = (gpointer) 0x1;
+ str = context->render_expr (target->expr, context, NULL, NULL, error);
+ target->expr->value_is_ident = tmp;
+ string = g_string_new (str);
+ g_free (str);
}
if (target->as)
diff --git a/libgda/sql-parser/gda-statement-struct-parts.c b/libgda/sql-parser/gda-statement-struct-parts.c
index 753b121..60e8b5a 100644
--- a/libgda/sql-parser/gda-statement-struct-parts.c
+++ b/libgda/sql-parser/gda-statement-struct-parts.c
@@ -81,7 +81,7 @@ gda_sql_expr_free (GdaSqlExpr *expr)
}
gda_sql_case_free (expr->case_s);
g_free (expr->cast_as);
-
+ expr->value_is_ident = (gpointer) 0x1;
g_free (expr);
}
@@ -131,6 +131,8 @@ gda_sql_expr_copy (GdaSqlExpr *expr)
if (expr->cast_as)
copy->cast_as = g_strdup (expr->cast_as);
+
+ copy->value_is_ident = expr->value_is_ident;
return copy;
}
@@ -201,6 +203,12 @@ gda_sql_expr_serialize (GdaSqlExpr *expr)
g_free (str);
}
+ if (expr->value_is_ident) {
+ str = _json_quote_string (expr->cast_as);
+ g_string_append (string, ",\"sqlident\":\"TRUE\"");
+ g_free (str);
+ }
+
g_string_append_c (string, '}');
str = string->str;
g_string_free (string, FALSE);
@@ -416,7 +424,7 @@ gda_sql_table_take_name (GdaSqlTable *table, GValue *value)
/**
* gda_sql_function_new
- * @parent: a #GdaSqlExpr structure
+ * @parent: a #GdaSqlAnyPart structure
*
* Creates a new #GdaSqlFunction structure initated.
*
@@ -568,7 +576,7 @@ gda_sql_function_take_args_list (GdaSqlFunction *function, GSList *args)
/**
* gda_sql_operation_new
- * @parent: a #GdaSqlExpr structure
+ * @parent: a #GdaSqlAnyPart structure
*
* Creates a new #GdaSqlOperation structure and sets its parent to @parent.
*
@@ -834,7 +842,7 @@ gda_sql_operation_operator_from_string (const gchar *op)
/**
* gda_sql_case_new
- * @parent: a #GdaSqlExpr structure
+ * @parent: a #GdaSqlAnyPart structure
*
* Creates a new #GdaSqlCase structure and sets its parent to @parent.
*
diff --git a/libgda/sql-parser/gda-statement-struct-parts.h b/libgda/sql-parser/gda-statement-struct-parts.h
index 8894e7f..5bdc893 100644
--- a/libgda/sql-parser/gda-statement-struct-parts.h
+++ b/libgda/sql-parser/gda-statement-struct-parts.h
@@ -55,8 +55,13 @@ struct _GdaSqlExpr {
gchar *cast_as;
+ gpointer value_is_ident; /* pointer to a boolean to keep ABI from 4.0.
+ * Non NULL if @value represents an SQL identifier
+ * Mem in _NOT_ allocated!
+ */
+
+ /*< private >*/
/* Padding for future expansion */
- gpointer _gda_reserved1;
gpointer _gda_reserved2;
};
diff --git a/libgda/sqlite/gda-sqlite-provider.c b/libgda/sqlite/gda-sqlite-provider.c
index bebb910..e589d50 100644
--- a/libgda/sqlite/gda-sqlite-provider.c
+++ b/libgda/sqlite/gda-sqlite-provider.c
@@ -1504,20 +1504,52 @@ sqlite_render_expr (GdaSqlExpr *expr, GdaSqlRenderingContext *context,
if (!str) goto err;
}
else if (expr->value) {
- str = gda_value_stringify (expr->value);
- if (!str) goto err;
- if (is_null && gda_value_is_null (expr->value))
- *is_null = TRUE;
- else if (is_default && (G_VALUE_TYPE (expr->value) == G_TYPE_STRING) &&
- !g_ascii_strcasecmp (g_value_get_string (expr->value), "default"))
- *is_default = TRUE;
- else if (!g_ascii_strcasecmp (str, "FALSE")) {
- g_free (str);
- str = g_strdup ("0");
+ if (expr->value_is_ident && (G_VALUE_TYPE (expr->value) == G_TYPE_STRING) &&
+ g_value_get_string (expr->value)) {
+ gchar **ids_array;
+ gint i;
+ GString *string = NULL;
+ GdaConnectionOptions cncoptions = 0;
+ if (context->cnc)
+ g_object_get (G_OBJECT (context->cnc), "options", &cncoptions, NULL);
+
+ ids_array = gda_sql_identifier_split (g_value_get_string (expr->value));
+ if (!ids_array)
+ str = g_value_dup_string (expr->value);
+ else if (!(ids_array[0])) goto err;
+ else {
+ for (i = 0; ids_array[i]; i++) {
+ gchar *tmp;
+ if (!string)
+ string = g_string_new ("");
+ else
+ g_string_append_c (string, '.');
+ tmp = gda_sql_identifier_quote (ids_array[i], context->cnc,
+ context->provider, FALSE,
+ cncoptions & GDA_CONNECTION_OPTIONS_SQL_IDENTIFIERS_CASE_SENSITIVE);
+ g_string_append (string, tmp);
+ g_free (tmp);
+ }
+ g_strfreev (ids_array);
+ str = g_string_free (string, FALSE);
+ }
}
- else if (!g_ascii_strcasecmp (str, "TRUE")) {
- g_free (str);
- str = g_strdup ("1");
+ else {
+ str = gda_value_stringify (expr->value);
+ if (!str) goto err;
+ if (is_null && gda_value_is_null (expr->value))
+ *is_null = TRUE;
+ else if (is_default && (G_VALUE_TYPE (expr->value) == G_TYPE_STRING) &&
+ !g_ascii_strcasecmp (g_value_get_string (expr->value), "default"))
+ *is_default = TRUE;
+ else if (!g_ascii_strcasecmp (str, "FALSE")) {
+ g_free (str);
+ str = g_strdup ("0");
+ }
+ else if (!g_ascii_strcasecmp (str, "TRUE")) {
+ g_free (str);
+ str = g_strdup ("1");
+ }
}
}
else if (expr->func) {
diff --git a/providers/oracle/gda-oracle-provider.c b/providers/oracle/gda-oracle-provider.c
index dd80ea9..7d550ca 100644
--- a/providers/oracle/gda-oracle-provider.c
+++ b/providers/oracle/gda-oracle-provider.c
@@ -1262,6 +1262,7 @@ oracle_render_select_target (GdaSqlSelectTarget *target, GdaSqlRenderingContext
{
GString *string;
gchar *str;
+ gpointer tmp;
g_return_val_if_fail (target, NULL);
g_return_val_if_fail (GDA_SQL_ANY_PART (target)->type == GDA_SQL_ANY_SQL_SELECT_TARGET, NULL);
@@ -1269,11 +1270,21 @@ oracle_render_select_target (GdaSqlSelectTarget *target, GdaSqlRenderingContext
/* can't have: target->expr == NULL */
if (!gda_sql_any_part_check_structure (GDA_SQL_ANY_PART (target), error)) return NULL;
- string = g_string_new ("");
- str = context->render_expr (target->expr, context, NULL, NULL, error);
- if (!str) goto err;
- g_string_append (string, str);
- g_free (str);
+ if (! target->expr->value || (G_VALUE_TYPE (target->expr->value) != G_TYPE_STRING)) {
+ str = context->render_expr (target->expr, context, NULL, NULL, error);
+ if (!str)
+ return NULL;
+ string = g_string_new (str);
+ g_free (str);
+ }
+ else {
+ tmp = target->expr->value_is_ident;
+ target->expr->value_is_ident = (gpointer) 0x1;
+ str = context->render_expr (target->expr, context, NULL, NULL, error);
+ target->expr->value_is_ident = tmp;
+ string = g_string_new (str);
+ g_free (str);
+ }
if (target->as) {
g_string_append_c (string, ' ');
@@ -1435,20 +1446,46 @@ oracle_render_expr (GdaSqlExpr *expr, GdaSqlRenderingContext *context,
if (!str) goto err;
}
else if (expr->value) {
- str = gda_value_stringify (expr->value);
- if (!str) goto err;
- if (is_null && gda_value_is_null (expr->value))
- *is_null = TRUE;
- else if (is_default && (G_VALUE_TYPE (expr->value) == G_TYPE_STRING) &&
- !g_ascii_strcasecmp (g_value_get_string (expr->value), "default"))
- *is_default = TRUE;
- else if (!g_ascii_strcasecmp (str, "FALSE")) {
- g_free (str);
- str = g_strdup ("0");
+ if (expr->value_is_ident && (G_VALUE_TYPE (expr->value) == G_TYPE_STRING)) {
+ gchar **ids_array;
+ gint i;
+ GString *string = NULL;
+ GdaConnectionOptions cncoptions = 0;
+ if (context->cnc)
+ g_object_get (G_OBJECT (context->cnc), "options", &cncoptions, NULL);
+
+ ids_array = gda_sql_identifier_split (g_value_get_string (expr->value));
+ if ((!ids_array) || !(ids_array[0])) goto err;
+ for (i = 0; ids_array[i]; i++) {
+ gchar *tmp;
+ if (!string)
+ string = g_string_new ("");
+ else
+ g_string_append_c (string, '.');
+ tmp = gda_sql_identifier_quote (ids_array[i], context->cnc, context->provider, FALSE,
+ cncoptions & GDA_CONNECTION_OPTIONS_SQL_IDENTIFIERS_CASE_SENSITIVE);
+ g_string_append (string, tmp);
+ g_free (tmp);
+ }
+ g_strfreev (ids_array);
+ str = g_string_free (string, FALSE);
}
- else if (!g_ascii_strcasecmp (str, "TRUE")) {
- g_free (str);
- str = g_strdup ("1");
+ else {
+ str = gda_value_stringify (expr->value);
+ if (!str) goto err;
+ if (is_null && gda_value_is_null (expr->value))
+ *is_null = TRUE;
+ else if (is_default && (G_VALUE_TYPE (expr->value) == G_TYPE_STRING) &&
+ !g_ascii_strcasecmp (g_value_get_string (expr->value), "default"))
+ *is_default = TRUE;
+ else if (!g_ascii_strcasecmp (str, "FALSE")) {
+ g_free (str);
+ str = g_strdup ("0");
+ }
+ else if (!g_ascii_strcasecmp (str, "TRUE")) {
+ g_free (str);
+ str = g_strdup ("1");
+ }
}
}
else if (expr->func) {
diff --git a/samples/SqlBuilder/example.c b/samples/SqlBuilder/example.c
index 1b0cef2..6b1fd2a 100644
--- a/samples/SqlBuilder/example.c
+++ b/samples/SqlBuilder/example.c
@@ -16,12 +16,12 @@ main (int argc, char *argv[])
gda_sql_builder_set_table (b, "customers");
gda_sql_builder_add_field (b,
- gda_sql_builder_literal (b, 0, "e"),
+ gda_sql_builder_ident (b, 0, "e"),
gda_sql_builder_param (b, 0, "p1", G_TYPE_STRING, FALSE));
gda_sql_builder_add_field (b,
- gda_sql_builder_literal (b, 0, "f"),
+ gda_sql_builder_ident (b, 0, "f"),
gda_sql_builder_expr (b, 0, NULL, G_TYPE_INT, 15));
- gda_sql_builder_add_field (b, gda_sql_builder_literal (b, 0, "g"),
+ gda_sql_builder_add_field (b, gda_sql_builder_ident (b, 0, "g"),
gda_sql_builder_expr (b, 0, NULL, G_TYPE_STRING, "joe"));
render_as_sql (b);
@@ -33,9 +33,9 @@ main (int argc, char *argv[])
gda_sql_builder_set_table (b, "products");
gda_sql_builder_add_field (b,
- gda_sql_builder_literal (b, 0, "ref"),
+ gda_sql_builder_ident (b, 0, "ref"),
gda_sql_builder_expr (b, 10, NULL, G_TYPE_STRING, "A0E'FESP"));
- gda_sql_builder_literal (b, 1, "id");
+ gda_sql_builder_ident (b, 1, "id");
gda_sql_builder_expr (b, 2, NULL, G_TYPE_INT, 14);
gda_sql_builder_cond (b, 3, GDA_SQL_OPERATOR_TYPE_EQ, 1, 2, 0);
gda_sql_builder_set_where (b, 3);
@@ -55,7 +55,7 @@ main (int argc, char *argv[])
b = gda_sql_builder_new (GDA_SQL_STATEMENT_DELETE);
gda_sql_builder_set_table (b, "items");
- gda_sql_builder_literal (b, 1, "id");
+ gda_sql_builder_ident (b, 1, "id");
gda_sql_builder_param (b, 2, "theid", G_TYPE_INT, FALSE);
gda_sql_builder_cond (b, 3, GDA_SQL_OPERATOR_TYPE_EQ, 1, 2, 0);
gda_sql_builder_set_where (b, 3);
@@ -63,21 +63,25 @@ main (int argc, char *argv[])
render_as_sql (b);
g_object_unref (b);
- /* SELECT c.id, name, date AS person FROM customers as c, orders */
+ /*
+ * The next statement shows automatic quoting of reserved SQL keywords (DATE and SELECT here)
+ *
+ * SELECT c."date", name, date AS person FROM "select" as c, orders
+ */
b = gda_sql_builder_new (GDA_SQL_STATEMENT_SELECT);
- gda_sql_builder_literal (b, 1, "customers");
+ gda_sql_builder_ident (b, 1, "select"); /* SELECT is an SQL reserved keyword */
gda_sql_builder_select_add_target (b, 1, 1, "c");
gda_sql_builder_select_add_target (b, 2,
- gda_sql_builder_literal (b, 0, "orders"),
+ gda_sql_builder_ident (b, 0, "orders"),
NULL);
gda_sql_builder_select_join_targets (b, 5, 1, 2, GDA_SQL_SELECT_JOIN_INNER, 0);
gda_sql_builder_add_field (b,
- gda_sql_builder_literal (b, 0, "c.id"), 0);
+ gda_sql_builder_ident (b, 0, "c.date"), 0); /* DATE is an SQL reserved keyword */
gda_sql_builder_add_field (b,
- gda_sql_builder_literal (b, 0, "name"),
- gda_sql_builder_literal (b, 0, "person"));
+ gda_sql_builder_ident (b, 0, "name"),
+ gda_sql_builder_ident (b, 0, "person"));
render_as_sql (b);
diff --git a/tests/test-sql-builder.c b/tests/test-sql-builder.c
index 3635920..ca8b0a4 100644
--- a/tests/test-sql-builder.c
+++ b/tests/test-sql-builder.c
@@ -127,9 +127,9 @@ build0 (void)
builder = gda_sql_builder_new (GDA_SQL_STATEMENT_SELECT);
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "*"), 0);
+ gda_sql_builder_ident (builder, 0, "*"), 0);
gda_sql_builder_select_add_target (builder, 0,
- gda_sql_builder_literal (builder, 0, "mytable"), NULL);
+ gda_sql_builder_ident (builder, 0, "mytable"), NULL);
stmt = gda_sql_builder_get_sql_statement (builder, FALSE);
g_object_unref (builder);
return stmt;
@@ -150,26 +150,26 @@ build1 (void)
builder = gda_sql_builder_new (GDA_SQL_STATEMENT_SELECT);
gda_sql_builder_select_add_target (builder, 0,
- gda_sql_builder_literal (builder, 0, "mytable"), NULL);
+ gda_sql_builder_ident (builder, 0, "mytable"), NULL);
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "contents"), 0);
+ gda_sql_builder_ident (builder, 0, "contents"), 0);
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "descr"), 0);
+ gda_sql_builder_ident (builder, 0, "descr"), 0);
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "rank"), 0);
+ gda_sql_builder_ident (builder, 0, "rank"), 0);
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "name"), 0);
+ gda_sql_builder_ident (builder, 0, "name"), 0);
gda_sql_builder_cond (builder, 1, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (builder, 0, "session"),
+ gda_sql_builder_ident (builder, 0, "session"),
gda_sql_builder_param (builder, 0, "session", G_TYPE_STRING, FALSE), 0);
op_ids [index] = gda_sql_builder_cond (builder, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (builder, 0, "type"),
+ gda_sql_builder_ident (builder, 0, "type"),
gda_sql_builder_expr (builder, 0, NULL, G_TYPE_STRING, "TABLE"), 0);
index++;
op_ids [index] = gda_sql_builder_cond (builder, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (builder, 0, "name"),
+ gda_sql_builder_ident (builder, 0, "name"),
gda_sql_builder_expr (builder, 0, NULL, G_TYPE_STRING, "alf"), 0);
index++;
@@ -196,19 +196,19 @@ build2 (void)
gda_sql_builder_set_table (builder, "mytable");
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "session"),
+ gda_sql_builder_ident (builder, 0, "session"),
gda_sql_builder_param (builder, 0, "session", G_TYPE_INT, FALSE));
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "type"),
+ gda_sql_builder_ident (builder, 0, "type"),
gda_sql_builder_param (builder, 0, "type", G_TYPE_INT, FALSE));
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "name"),
+ gda_sql_builder_ident (builder, 0, "name"),
gda_sql_builder_param (builder, 0, "name", G_TYPE_STRING, TRUE));
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "contents"),
+ gda_sql_builder_ident (builder, 0, "contents"),
gda_sql_builder_param (builder, 0, "contents", G_TYPE_STRING, FALSE));
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "descr"),
+ gda_sql_builder_ident (builder, 0, "descr"),
gda_sql_builder_param (builder, 0, "descr", G_TYPE_STRING, TRUE));
stmt = gda_sql_builder_get_sql_statement (builder, FALSE);
@@ -230,18 +230,18 @@ build3 (void)
gda_sql_builder_set_table (builder, "mytable");
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "name"),
+ gda_sql_builder_ident (builder, 0, "name"),
gda_sql_builder_param (builder, 0, "name", G_TYPE_STRING, TRUE));
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "contents"),
+ gda_sql_builder_ident (builder, 0, "contents"),
gda_sql_builder_param (builder, 0, "contents", G_TYPE_STRING, FALSE));
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "descr"),
+ gda_sql_builder_ident (builder, 0, "descr"),
gda_sql_builder_param (builder, 0, "descr", G_TYPE_STRING, TRUE));
gda_sql_builder_set_where (builder,
gda_sql_builder_cond (builder, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (builder, 0, "id"),
+ gda_sql_builder_ident (builder, 0, "id"),
gda_sql_builder_param (builder, 0, "id", G_TYPE_INT, FALSE),
0));
@@ -264,30 +264,30 @@ build4 (void)
b = gda_sql_builder_new (GDA_SQL_STATEMENT_SELECT);
gda_sql_builder_add_field (b,
- gda_sql_builder_literal (b, 0, "fav.*"), 0);
+ gda_sql_builder_ident (b, 0, "fav.*"), 0);
t1 = gda_sql_builder_select_add_target (b, 0,
- gda_sql_builder_literal (b, 0, "mytable"),
+ gda_sql_builder_ident (b, 0, "mytable"),
"fav");
t2 = gda_sql_builder_select_add_target (b, 0,
- gda_sql_builder_literal (b, 0, "fav_orders"),
+ gda_sql_builder_ident (b, 0, "fav_orders"),
"o");
gda_sql_builder_select_join_targets (b, 0, t1, t2, GDA_SQL_SELECT_JOIN_LEFT,
gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "fav.id"),
- gda_sql_builder_literal (b, 0, "o.fav_id"),
+ gda_sql_builder_ident (b, 0, "fav.id"),
+ gda_sql_builder_ident (b, 0, "o.fav_id"),
0));
gda_sql_builder_set_where (b,
gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_AND,
gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "fav.sesion"),
+ gda_sql_builder_ident (b, 0, "fav.sesion"),
gda_sql_builder_param (b, 0, "session", G_TYPE_INT, FALSE), 0),
gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "o.order_key"),
+ gda_sql_builder_ident (b, 0, "o.order_key"),
gda_sql_builder_param (b, 0, "okey", G_TYPE_INT, FALSE), 0), 0));
gda_sql_builder_select_order_by (b,
- gda_sql_builder_literal (b, 0, "o.rank"), TRUE, NULL);
+ gda_sql_builder_ident (b, 0, "o.rank"), TRUE, NULL);
stmt = gda_sql_builder_get_sql_statement (b, FALSE);
g_object_unref (b);
return stmt;
@@ -305,18 +305,18 @@ build5 (void)
b = gda_sql_builder_new (GDA_SQL_STATEMENT_SELECT);
gda_sql_builder_add_field (b,
- gda_sql_builder_literal (b, 0, "id"), 0);
+ gda_sql_builder_ident (b, 0, "id"), 0);
gda_sql_builder_select_add_target (b, 0,
- gda_sql_builder_literal (b, 0, "mytable"),
+ gda_sql_builder_ident (b, 0, "mytable"),
NULL);
gda_sql_builder_set_where (b,
gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_AND,
gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "sesion"),
+ gda_sql_builder_ident (b, 0, "sesion"),
gda_sql_builder_param (b, 0, "session", G_TYPE_INT, FALSE), 0),
gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "contents"),
+ gda_sql_builder_ident (b, 0, "contents"),
gda_sql_builder_param (b, 0, "contents", G_TYPE_INT, FALSE), 0), 0));
stmt = gda_sql_builder_get_sql_statement (b, FALSE);
@@ -335,17 +335,17 @@ build6 (void)
GdaSqlStatement *stmt;
b = gda_sql_builder_new (GDA_SQL_STATEMENT_SELECT);
- gda_sql_builder_add_field (b, gda_sql_builder_literal (b, 0, "fav_id"), 0);
- gda_sql_builder_add_field (b, gda_sql_builder_literal (b, 0, "rank"), 0);
+ gda_sql_builder_add_field (b, gda_sql_builder_ident (b, 0, "fav_id"), 0);
+ gda_sql_builder_add_field (b, gda_sql_builder_ident (b, 0, "rank"), 0);
gda_sql_builder_select_add_target (b, 0,
- gda_sql_builder_literal (b, 0, "mytable"),
+ gda_sql_builder_ident (b, 0, "mytable"),
NULL);
gda_sql_builder_cond (b, 1, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "order_key"),
+ gda_sql_builder_ident (b, 0, "order_key"),
gda_sql_builder_param (b, 0, "orderkey", G_TYPE_INT, FALSE), 0);
gda_sql_builder_cond (b, 2, GDA_SQL_OPERATOR_TYPE_DIFF,
- gda_sql_builder_literal (b, 0, "fav_id"),
+ gda_sql_builder_ident (b, 0, "fav_id"),
gda_sql_builder_param (b, 0, "id", G_TYPE_INT, FALSE), 0);
gda_sql_builder_set_where (b, gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_AND, 1, 2, 0));
@@ -367,18 +367,18 @@ build7 (void)
b = gda_sql_builder_new (GDA_SQL_STATEMENT_UPDATE);
gda_sql_builder_set_table (b, "mytable");
gda_sql_builder_add_field (b,
- gda_sql_builder_literal (b, 0, "rank"),
+ gda_sql_builder_ident (b, 0, "rank"),
gda_sql_builder_param (b, 0, "newrank", G_TYPE_INT, FALSE));
gda_sql_builder_cond (b, 1, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "fav_id"),
+ gda_sql_builder_ident (b, 0, "fav_id"),
gda_sql_builder_param (b, 0, "id", G_TYPE_INT, FALSE),
0);
gda_sql_builder_cond (b, 2, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "order_key"),
+ gda_sql_builder_ident (b, 0, "order_key"),
gda_sql_builder_param (b, 0, "orderkey", G_TYPE_INT, FALSE),
0);
gda_sql_builder_cond (b, 3, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "rank"),
+ gda_sql_builder_ident (b, 0, "rank"),
gda_sql_builder_param (b, 0, "rank", G_TYPE_INT, FALSE),
0);
gda_sql_builder_set_where (b, gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_AND, 1, 2, 3));
@@ -401,7 +401,7 @@ build8 (void)
gda_sql_builder_set_table (b, "mytable");
gda_sql_builder_set_where (b, gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "id"),
+ gda_sql_builder_ident (b, 0, "id"),
gda_sql_builder_param (b, 0, "id", G_TYPE_INT, FALSE),
0));
stmt = gda_sql_builder_get_sql_statement (b, FALSE);
diff --git a/tools/browser/browser-favorites.c b/tools/browser/browser-favorites.c
index 4d37ce8..34c166e 100644
--- a/tools/browser/browser-favorites.c
+++ b/tools/browser/browser-favorites.c
@@ -245,16 +245,16 @@ find_favorite (BrowserFavorites *bfav, guint session_id, gint id, const gchar *c
b = gda_sql_builder_new (GDA_SQL_STATEMENT_SELECT);
gda_sql_builder_add_field (b,
- gda_sql_builder_literal (b, 0, "id"), 0);
+ gda_sql_builder_ident (b, 0, "id"), 0);
gda_sql_builder_select_add_target (b, 0,
- gda_sql_builder_literal (b, 0, FAVORITES_TABLE_NAME),
+ gda_sql_builder_ident (b, 0, FAVORITES_TABLE_NAME),
NULL);
if (id >= 0) {
/* lookup from ID */
gda_sql_builder_set_where (b,
gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "id"),
+ gda_sql_builder_ident (b, 0, "id"),
gda_sql_builder_param (b, 0, "id", G_TYPE_INT, FALSE), 0));
}
else {
@@ -262,10 +262,10 @@ find_favorite (BrowserFavorites *bfav, guint session_id, gint id, const gchar *c
gda_sql_builder_set_where (b,
gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_AND,
gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "session"),
+ gda_sql_builder_ident (b, 0, "session"),
gda_sql_builder_param (b, 0, "session", G_TYPE_INT, FALSE), 0),
gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "contents"),
+ gda_sql_builder_ident (b, 0, "contents"),
gda_sql_builder_param (b, 0, "contents", G_TYPE_INT, FALSE), 0), 0));
}
stmt = gda_sql_builder_get_statement (b, error);
@@ -311,17 +311,17 @@ favorites_reorder (BrowserFavorites *bfav, gint order_key, gint id, gint new_pos
g_assert (order_key >= 0);
b = gda_sql_builder_new (GDA_SQL_STATEMENT_SELECT);
- gda_sql_builder_add_field (b, gda_sql_builder_literal (b, 0, "fav_id"), 0);
+ gda_sql_builder_add_field (b, gda_sql_builder_ident (b, 0, "fav_id"), 0);
gda_sql_builder_select_add_target (b, 0,
- gda_sql_builder_literal (b, 0, FAVORDER_TABLE_NAME),
+ gda_sql_builder_ident (b, 0, FAVORDER_TABLE_NAME),
NULL);
gda_sql_builder_set_where (b, gda_sql_builder_cond (b, 1, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "order_key"),
+ gda_sql_builder_ident (b, 0, "order_key"),
gda_sql_builder_param (b, 0, "orderkey", G_TYPE_INT, FALSE), 0));
gda_sql_builder_select_order_by (b,
- gda_sql_builder_literal (b, 0, "rank"), TRUE, NULL);
+ gda_sql_builder_ident (b, 0, "rank"), TRUE, NULL);
stmt = gda_sql_builder_get_statement (b, error);
g_object_unref (G_OBJECT (b));
if (!stmt)
@@ -348,14 +348,14 @@ favorites_reorder (BrowserFavorites *bfav, gint order_key, gint id, gint new_pos
b = gda_sql_builder_new (GDA_SQL_STATEMENT_UPDATE);
gda_sql_builder_set_table (b, FAVORDER_TABLE_NAME);
gda_sql_builder_add_field (b,
- gda_sql_builder_literal (b, 0, "rank"),
+ gda_sql_builder_ident (b, 0, "rank"),
gda_sql_builder_param (b, 0, "rank", G_TYPE_INT, FALSE));
gda_sql_builder_cond (b, 1, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "fav_id"),
+ gda_sql_builder_ident (b, 0, "fav_id"),
gda_sql_builder_param (b, 0, "id", G_TYPE_INT, FALSE),
0);
gda_sql_builder_cond (b, 2, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "order_key"),
+ gda_sql_builder_ident (b, 0, "order_key"),
gda_sql_builder_param (b, 0, "orderkey", G_TYPE_INT, FALSE),
0);
gda_sql_builder_set_where (b, gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_AND, 1, 2, 0));
@@ -460,19 +460,19 @@ browser_favorites_add (BrowserFavorites *bfav, guint session_id,
gda_sql_builder_set_table (builder, FAVORITES_TABLE_NAME);
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "session"),
+ gda_sql_builder_ident (builder, 0, "session"),
gda_sql_builder_param (builder, 0, "session", G_TYPE_INT, FALSE));
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "type"),
+ gda_sql_builder_ident (builder, 0, "type"),
gda_sql_builder_param (builder, 0, "type", G_TYPE_INT, FALSE));
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "name"),
+ gda_sql_builder_ident (builder, 0, "name"),
gda_sql_builder_param (builder, 0, "name", G_TYPE_STRING, TRUE));
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "contents"),
+ gda_sql_builder_ident (builder, 0, "contents"),
gda_sql_builder_param (builder, 0, "contents", G_TYPE_STRING, FALSE));
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "descr"),
+ gda_sql_builder_ident (builder, 0, "descr"),
gda_sql_builder_param (builder, 0, "descr", G_TYPE_STRING, TRUE));
stmt = gda_sql_builder_get_statement (builder, error);
g_object_unref (G_OBJECT (builder));
@@ -494,18 +494,18 @@ browser_favorites_add (BrowserFavorites *bfav, guint session_id,
gda_sql_builder_set_table (builder, FAVORITES_TABLE_NAME);
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "name"),
+ gda_sql_builder_ident (builder, 0, "name"),
gda_sql_builder_param (builder, 0, "name", G_TYPE_STRING, TRUE));
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "contents"),
+ gda_sql_builder_ident (builder, 0, "contents"),
gda_sql_builder_param (builder, 0, "contents", G_TYPE_STRING, FALSE));
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "descr"),
+ gda_sql_builder_ident (builder, 0, "descr"),
gda_sql_builder_param (builder, 0, "descr", G_TYPE_STRING, TRUE));
gda_sql_builder_set_where (builder,
gda_sql_builder_cond (builder, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (builder, 0, "id"),
+ gda_sql_builder_ident (builder, 0, "id"),
gda_sql_builder_param (builder, 0, "id", G_TYPE_INT, FALSE),
0));
stmt = gda_sql_builder_get_statement (builder, error);
@@ -537,11 +537,11 @@ browser_favorites_add (BrowserFavorites *bfav, guint session_id,
gda_sql_builder_set_where (builder,
gda_sql_builder_cond (builder, 0, GDA_SQL_OPERATOR_TYPE_AND,
gda_sql_builder_cond (builder, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (builder, 0, "fav_id"),
+ gda_sql_builder_ident (builder, 0, "fav_id"),
gda_sql_builder_param (builder, 0, "id", G_TYPE_INT, FALSE),
0),
gda_sql_builder_cond (builder, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (builder, 0, "order_key"),
+ gda_sql_builder_ident (builder, 0, "order_key"),
gda_sql_builder_param (builder, 0, "orderkey", G_TYPE_INT, FALSE),
0), 0));
stmt = gda_sql_builder_get_statement (builder, error);
@@ -557,13 +557,13 @@ browser_favorites_add (BrowserFavorites *bfav, guint session_id,
builder = gda_sql_builder_new (GDA_SQL_STATEMENT_INSERT);
gda_sql_builder_set_table (builder, FAVORDER_TABLE_NAME);
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "fav_id"),
+ gda_sql_builder_ident (builder, 0, "fav_id"),
gda_sql_builder_param (builder, 0, "id", G_TYPE_INT, FALSE));
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "rank"),
+ gda_sql_builder_ident (builder, 0, "rank"),
gda_sql_builder_param (builder, 0, "rank", G_TYPE_INT, FALSE));
gda_sql_builder_add_field (builder,
- gda_sql_builder_literal (builder, 0, "order_key"),
+ gda_sql_builder_ident (builder, 0, "order_key"),
gda_sql_builder_param (builder, 0, "orderkey", G_TYPE_STRING, TRUE));
stmt = gda_sql_builder_get_statement (builder, error);
g_object_unref (G_OBJECT (builder));
@@ -650,40 +650,40 @@ browser_favorites_list (BrowserFavorites *bfav, guint session_id, BrowserFavorit
b = gda_sql_builder_new (GDA_SQL_STATEMENT_SELECT);
gda_sql_builder_add_field (b,
- gda_sql_builder_literal (b, 0, "fav.contents"), 0);
+ gda_sql_builder_ident (b, 0, "fav.contents"), 0);
gda_sql_builder_add_field (b,
- gda_sql_builder_literal (b, 0, "fav.descr"), 0);
+ gda_sql_builder_ident (b, 0, "fav.descr"), 0);
gda_sql_builder_add_field (b,
- gda_sql_builder_literal (b, 0, "fav.name"), 0);
+ gda_sql_builder_ident (b, 0, "fav.name"), 0);
gda_sql_builder_add_field (b,
- gda_sql_builder_literal (b, 0, "fav.type"), 0);
+ gda_sql_builder_ident (b, 0, "fav.type"), 0);
gda_sql_builder_add_field (b,
- gda_sql_builder_literal (b, 0, "fav.id"), 0);
+ gda_sql_builder_ident (b, 0, "fav.id"), 0);
t1 = gda_sql_builder_select_add_target (b, 0,
- gda_sql_builder_literal (b, 0, FAVORITES_TABLE_NAME),
+ gda_sql_builder_ident (b, 0, FAVORITES_TABLE_NAME),
"fav");
if (order_key > 0) {
t2 = gda_sql_builder_select_add_target (b, 0,
- gda_sql_builder_literal (b, 0, FAVORDER_TABLE_NAME),
+ gda_sql_builder_ident (b, 0, FAVORDER_TABLE_NAME),
"o");
gda_sql_builder_select_join_targets (b, 0, t1, t2, GDA_SQL_SELECT_JOIN_LEFT,
gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "fav.id"),
- gda_sql_builder_literal (b, 0, "o.fav_id"),
+ gda_sql_builder_ident (b, 0, "fav.id"),
+ gda_sql_builder_ident (b, 0, "o.fav_id"),
0));
gda_sql_builder_select_order_by (b,
- gda_sql_builder_literal (b, 0, "o.rank"), TRUE, NULL);
+ gda_sql_builder_ident (b, 0, "o.rank"), TRUE, NULL);
and_cond_ids [and_cond_size] = gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "o.order_key"),
+ gda_sql_builder_ident (b, 0, "o.order_key"),
gda_sql_builder_param (b, 0, "okey", G_TYPE_INT, FALSE),
0);
and_cond_size++;
}
and_cond_ids [and_cond_size] = gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "fav.session"),
+ gda_sql_builder_ident (b, 0, "fav.session"),
gda_sql_builder_param (b, 0, "session", G_TYPE_INT, FALSE), 0);
and_cond_size++;
@@ -694,8 +694,8 @@ browser_favorites_list (BrowserFavorites *bfav, guint session_id, BrowserFavorit
gchar *str;
str = g_strdup_printf ("'%s'", favorite_type_to_string (flag));
or_cond_ids [or_cond_size] = gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "fav.type"),
- gda_sql_builder_literal (b, 0, str),
+ gda_sql_builder_ident (b, 0, "fav.type"),
+ gda_sql_builder_ident (b, 0, str),
0);
g_free (str);
or_cond_size++;
@@ -816,7 +816,7 @@ browser_favorites_delete (BrowserFavorites *bfav, guint session_id,
b = gda_sql_builder_new (GDA_SQL_STATEMENT_DELETE);
gda_sql_builder_set_table (b, FAVORITES_TABLE_NAME);
gda_sql_builder_set_where (b, gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "id"),
+ gda_sql_builder_ident (b, 0, "id"),
gda_sql_builder_param (b, 0, "id", G_TYPE_INT, FALSE),
0));
@@ -838,7 +838,7 @@ browser_favorites_delete (BrowserFavorites *bfav, guint session_id,
b = gda_sql_builder_new (GDA_SQL_STATEMENT_DELETE);
gda_sql_builder_set_table (b, FAVORDER_TABLE_NAME);
gda_sql_builder_set_where (b, gda_sql_builder_cond (b, 0, GDA_SQL_OPERATOR_TYPE_EQ,
- gda_sql_builder_literal (b, 0, "fav_id"),
+ gda_sql_builder_ident (b, 0, "fav_id"),
gda_sql_builder_param (b, 0, "id", G_TYPE_INT, FALSE),
0));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]