[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/geas/src objectstore/mysql.c objectstore/p...
From: |
Reinhard Mueller |
Subject: |
gnue/geas/src objectstore/mysql.c objectstore/p... |
Date: |
Sat, 15 Dec 2001 15:09:54 -0500 |
CVSROOT: /cvsroot/gnue
Module name: gnue
Changes by: Reinhard Mueller <address@hidden> 01/12/15 15:09:54
Modified files:
geas/src/objectstore: mysql.c postgresql.c
geas/src/oql : oql.c oql.h
Log message:
Removed illogical NULL date/time conversion.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/geas/src/objectstore/mysql.c.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/geas/src/objectstore/postgresql.c.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/geas/src/oql/oql.c.diff?tr1=1.70&tr2=1.71&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/geas/src/oql/oql.h.diff?tr1=1.30&tr2=1.31&r1=text&r2=text
Patches:
Index: gnue/geas/src/objectstore/mysql.c
diff -c gnue/geas/src/objectstore/mysql.c:1.9
gnue/geas/src/objectstore/mysql.c:1.10
*** gnue/geas/src/objectstore/mysql.c:1.9 Sat Dec 15 05:43:33 2001
--- gnue/geas/src/objectstore/mysql.c Sat Dec 15 15:09:54 2001
***************
*** 20,26 ****
along with GEAS; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
! $Id: mysql.c,v 1.9 2001/12/15 10:43:33 reinhard Exp $
*/
#include "config.h"
--- 20,26 ----
along with GEAS; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
! $Id: mysql.c,v 1.10 2001/12/15 20:09:54 reinhard Exp $
*/
#include "config.h"
***************
*** 195,202 ****
QueryData * query, int *errorcode, char **errormsg)
{
int dbtype;
! char *fieldname, *val;
! odl_class *c;
/* result pointer */
struct query_result *result = new_query_result ();
--- 195,201 ----
QueryData * query, int *errorcode, char **errormsg)
{
int dbtype;
! char *val;
/* result pointer */
struct query_result *result = new_query_result ();
***************
*** 233,239 ****
dbtype = OQL_DBTYPE_MYSQL;
debug_output (DEBUGLEVEL_HIGH, "SQL query: '%s'",
oql_query_as_sql (query, dbtype));
- c = odl_find_class (all_classes, oql_query_get_classname (query), NULL);
err = mysql_query (con->handle, oql_query_as_sql (query, dbtype));
if (err == 0)
{
--- 232,237 ----
***************
*** 291,300 ****
1 (next in list) */
for (i = 0; i < mysql_num_fields (res); i++)
{
! fieldname = (char *) oql_query_get_field_name (query, i);
! val =
! oql_translate_from_read (row[i], c, fieldname, dbtype);
! /* add_field_to_result_row(r,val); */
r = g_list_append(r,val); /* add_field_to_result_row */
}
/* add entry to list */
--- 289,295 ----
1 (next in list) */
for (i = 0; i < mysql_num_fields (res); i++)
{
! val = g_strdup (row[i]);
r = g_list_append(r,val); /* add_field_to_result_row */
}
/* add entry to list */
Index: gnue/geas/src/objectstore/postgresql.c
diff -c gnue/geas/src/objectstore/postgresql.c:1.14
gnue/geas/src/objectstore/postgresql.c:1.15
*** gnue/geas/src/objectstore/postgresql.c:1.14 Sat Dec 15 05:43:33 2001
--- gnue/geas/src/objectstore/postgresql.c Sat Dec 15 15:09:54 2001
***************
*** 20,26 ****
along with GEAS; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
! $Id: postgresql.c,v 1.14 2001/12/15 10:43:33 reinhard Exp $
*/
#include "config.h"
--- 20,26 ----
along with GEAS; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
! $Id: postgresql.c,v 1.15 2001/12/15 20:09:54 reinhard Exp $
*/
#include "config.h"
***************
*** 277,284 ****
struct query_result *result = new_query_result (); /* result pointer
*/
/* convert to actual type */
struct postgresql_connection *conn;
- odl_class *c;
- char *fieldname;
PGresult *res = NULL;
int row;
--- 277,282 ----
***************
*** 306,312 ****
debug_output (DEBUGLEVEL_HIGH, "SQL query: '%s'",
oql_query_as_sql (query, dbtype));
- c = odl_find_class (all_classes, oql_query_get_classname (query), NULL);
retry:
tries++;
/* printf( "[%s]\n" , oql_query_as_sql(query,dbtype) ); */
--- 304,309 ----
***************
*** 360,374 ****
in list) */
for (i = 0; i < result->field_count; i++)
{
! char *val = PQgetvalue (res, row, i);
! char *p = val;
! /* printf( " > '%s' " , val ); */
! while (p[strlen (p) - 1] == ' ')
! p[strlen (p) - 1] = '\0';
! /* printf( " '%s'\n" , val ); */
! fieldname = (char *) oql_query_get_field_name (query, i);
! val = oql_translate_from_read (val, c, fieldname, dbtype);
! /* add_field_to_result_row(r,val); */
r = g_list_append(r,val); /* add_field_to_result_row */
}
result->data = g_list_prepend (result->data, r);
--- 357,363 ----
in list) */
for (i = 0; i < result->field_count; i++)
{
! char *val = g_strdup (PQgetvalue (res, row, i));
r = g_list_append(r,val); /* add_field_to_result_row */
}
result->data = g_list_prepend (result->data, r);
Index: gnue/geas/src/oql/oql.c
diff -c gnue/geas/src/oql/oql.c:1.70 gnue/geas/src/oql/oql.c:1.71
*** gnue/geas/src/oql/oql.c:1.70 Mon Sep 24 12:31:33 2001
--- gnue/geas/src/oql/oql.c Sat Dec 15 15:09:54 2001
***************
*** 19,25 ****
along with GEAS; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
! $Id: oql.c,v 1.70 2001/09/24 16:31:33 ntiffin Exp $
*/
#include "config.h"
--- 19,25 ----
along with GEAS; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
! $Id: oql.c,v 1.71 2001/12/15 20:09:54 reinhard Exp $
*/
#include "config.h"
***************
*** 422,427 ****
--- 422,434 ----
char *str, *ptr, *out;
len = strlen (value);
+
+ if (!len)
+ {
+ /* Empty string means NULL */
+ return (g_strdup ("NULL"));
+ }
+
switch (db)
{
case OQL_DBTYPE_CACHEONLY:
***************
*** 513,519 ****
GList *tmp;
char *loadclass = NULL;
char *quoted;
- odl_class *cl;
if (q->classes)
loadclass = q->classes->data;
--- 520,525 ----
***************
*** 564,579 ****
char *quoted;
g_string_append (buf, " ORDER BY ");
quoted = oql_quote_column (loadclass, q->orderby, db);
g_string_append (buf, quoted);
g_free (quoted);
! /* if reverse : if descending, then sort in ascending order
! * else : if descending, then sort in descending order
! */
! cl = odl_find_class( all_classes , loadclass , NULL );
! if ( (q->reversesearch) || (!q->reversesearch) ) /* commented out code
that didn't work, which was cl->desc */
! g_string_append (buf, " DESC");
}
if (q->uselimit)
--- 570,584 ----
char *quoted;
g_string_append (buf, " ORDER BY ");
+
quoted = oql_quote_column (loadclass, q->orderby, db);
g_string_append (buf, quoted);
g_free (quoted);
! if ((q->reversesearch))
! {
! g_string_append (buf, " DESC");
! }
}
if (q->uselimit)
***************
*** 630,648 ****
oql_make_write (_QueryData * q, DBType db)
{
char *writeclass = NULL, *quoted = NULL;
! GList *tmp = NULL, *tmp2 = NULL;
GString *buf = NULL;
- odl_class *c;
- char *translated = NULL;
if (q->classes)
writeclass = q->classes->data;
else
return (NULL);
- /* get class definition */
- c = odl_find_class (all_classes, writeclass, NULL);
-
if (db == OQL_DBTYPE_MYSQL)
{
/* make REPLACE query for MySQL - inserts new data or changes old data
*/
--- 635,648 ----
oql_make_write (_QueryData * q, DBType db)
{
char *writeclass = NULL, *quoted = NULL;
! GList *tmp = NULL;
GString *buf = NULL;
if (q->classes)
writeclass = q->classes->data;
else
return (NULL);
if (db == OQL_DBTYPE_MYSQL)
{
/* make REPLACE query for MySQL - inserts new data or changes old data
*/
***************
*** 674,690 ****
/* values */
g_string_append (buf, "VALUES (");
tmp = q->values;
- tmp2 = q->fields;
while (tmp)
{
! translated = oql_translate_for_write (tmp->data, c, tmp2->data, db);
! if (translated)
! {
! quoted = oql_quote_value (translated, db);
! g_free (translated);
! }
! else
! quoted = g_strdup ("");
g_string_append (buf, quoted);
g_free (quoted);
--- 674,682 ----
/* values */
g_string_append (buf, "VALUES (");
tmp = q->values;
while (tmp)
{
! quoted = oql_quote_value (tmp->data, db);
g_string_append (buf, quoted);
g_free (quoted);
***************
*** 692,698 ****
g_string_append (buf, ",");
tmp = g_list_next (tmp);
- tmp2 = g_list_next (tmp2);
}
g_string_append (buf, ")");
}
--- 684,689 ----
***************
*** 727,743 ****
/* values */
g_string_append (buf, "VALUES (");
tmp = q->values;
- tmp2 = q->fields;
while (tmp)
{
! translated = oql_translate_for_write (tmp->data, c, tmp2->data, db);
! if (translated)
! {
! quoted = oql_quote_value (translated, db);
! g_free (translated);
! }
! else
! quoted = g_strdup ("");
g_string_append (buf, quoted);
g_free (quoted);
--- 718,726 ----
/* values */
g_string_append (buf, "VALUES (");
tmp = q->values;
while (tmp)
{
! quoted = oql_quote_value (tmp->data, db);
g_string_append (buf, quoted);
g_free (quoted);
***************
*** 745,751 ****
g_string_append (buf, ",");
tmp = g_list_next (tmp);
- tmp2 = g_list_next (tmp2);
}
g_string_append (buf, ")");
}
--- 728,733 ----
***************
*** 774,789 ****
g_string_append (buf, "=");
! /* translate from GEAS format to database format, as appropriate */
! translated = oql_translate_for_write (v->data, c, f->data, db);
! if (translated)
! {
! quoted = oql_quote_value (translated, db);
! g_free (translated);
! }
! else
! quoted = g_strdup ("");
!
g_string_append (buf, quoted);
g_free (quoted);
--- 756,762 ----
g_string_append (buf, "=");
! quoted = oql_quote_value (v->data, db);
g_string_append (buf, quoted);
g_free (quoted);
***************
*** 1844,1949 ****
g_string_append (buf, logic);
l = g_list_next (l);
}
- }
-
- /* -------------------------------------------------------------------------
*\
- * Convert a value from the GEAS internal format to a format used by the
- * database.
- \* -------------------------------------------------------------------------
*/
- char *
- oql_translate_for_write (char *value, odl_class * c, const char *fieldname,
- int database)
- {
- odl_field *f;
-
- f = odl_class_get_field (c, fieldname);
- if (!f)
- {
- abort ();
- return (g_strdup ("")); /* don't like this, much */
- }
-
- switch (odl_field_get_datatype (f))
- {
- case DT_date:
- /* if( database == OQL_DBTYPE_MYSQL ) { } else if( database ==
OQL_DBTYPE_POSTGRESQL ) { } */
- if (strlen (value) == 0)
- {
- debug_output (DEBUGLEVEL_8, "convert '%s' to '%s'", value,
- "0001-01-01");
- return (g_strdup ("0001-01-01"));
- }
- break;
- case DT_time:
- if (strlen (value) == 0)
- {
- debug_output (DEBUGLEVEL_8, "convert '%s' to '%s'", value,
- "0001-01-01");
- return (g_strdup ("00:00:00"));
- }
- break;
- case DT_datetime:
- if (strlen (value) == 0)
- {
- debug_output (DEBUGLEVEL_8, "convert '%s' to '%s'", value,
- "0001-01-01");
- return (g_strdup ("0001-01-01 00:00:00"));
- }
- break;
- default:
- break;
- }
-
- /* just passes data through */
- return g_strdup (value);
- }
-
- /* -------------------------------------------------------------------------
*\
- * Convert a value from a format used by a database to a format used by GEAS.
- \* -------------------------------------------------------------------------
*/
- char *
- oql_translate_from_read (char *value, odl_class * c, const char *fieldname,
- int database)
- {
- odl_field *f;
-
- if (c == NULL)
- return g_strdup (value);
-
- f = odl_class_get_field (c, fieldname);
- if (!f)
- {
- abort ();
- return (g_strdup ("")); /* don't like this, much */
- }
- switch (odl_field_get_datatype (f))
- {
- case DT_date:
- /* if( database == OQL_DBTYPE_MYSQL ) { } else if( database ==
OQL_DBTYPE_POSTGRESQL ) { } */
- if (strcmp (value, "0001-01-01") == 0)
- {
- debug_output (DEBUGLEVEL_8, "convert '%s' to '%s'", value, "");
- return (g_strdup (""));
- }
- break;
- case DT_time:
- if (strcmp (value, "00:00:00") == 0)
- {
- debug_output (DEBUGLEVEL_8, "convert '%s' to '%s'", value, "");
- return (g_strdup (""));
- }
- break;
- case DT_datetime:
- if (strcmp (value, "0001-01-01 00:00:00") == 0)
- {
- debug_output (DEBUGLEVEL_8, "convert '%s' to '%s'", value, "");
- return (g_strdup (""));
- }
- break;
- default:
- break;
- }
-
- /* just passes data through */
- return g_strdup (value);
}
--- 1817,1820 ----
Index: gnue/geas/src/oql/oql.h
diff -c gnue/geas/src/oql/oql.h:1.30 gnue/geas/src/oql/oql.h:1.31
*** gnue/geas/src/oql/oql.h:1.30 Fri Jun 8 18:42:43 2001
--- gnue/geas/src/oql/oql.h Sat Dec 15 15:09:54 2001
***************
*** 19,25 ****
along with GEAS; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
! $Id: oql.h,v 1.30 2001/06/08 22:42:43 reinhard Exp $
*/
#ifndef _OQL_H
--- 19,25 ----
along with GEAS; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
! $Id: oql.h,v 1.31 2001/12/15 20:09:54 reinhard Exp $
*/
#ifndef _OQL_H
***************
*** 230,239 ****
#define SQL_RESERVED TRUE
#define SQL_NOTRESERVED FALSE
-
- char *oql_translate_for_write (char *value, odl_class *c,
- const char *fieldname, int database);
- char *oql_translate_from_read (char *value, odl_class *c,
- const char *fieldname, int database);
#endif /* oql.h */
--- 230,234 ----
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue/geas/src objectstore/mysql.c objectstore/p...,
Reinhard Mueller <=