commit-gnue
[Top][All Lists]
Advanced

[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 ----



reply via email to

[Prev in Thread] Current Thread [Next in Thread]