Changeset: e43ef2096b48 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e43ef2096b48
Modified Files:
sql/server/sql_atom.c
Branch: Aug2011
Log Message:
fixed crash in atom2sql, see bug 2877
diffs (34 lines):
diff --git a/sql/server/sql_atom.c b/sql/server/sql_atom.c
--- a/sql/server/sql_atom.c
+++ b/sql/server/sql_atom.c
@@ -314,10 +314,13 @@ atom2string(sql_allocator *sa, atom *a)
char *
atom2sql(atom *a)
{
+ int ec = a->tpe.type->eclass;
char buf[BUFSIZ];
+ if (a->data.vtype == TYPE_str && ec == EC_INTERVAL)
+ ec = EC_STRING;
/* todo handle NULL's early */
- switch (a->tpe.type->eclass) {
+ switch (ec) {
case EC_BIT:
assert( a->data.vtype == TYPE_bit);
if (a->data.val.cval[0])
@@ -325,7 +328,6 @@ atom2sql(atom *a)
return _strdup("false");
case EC_CHAR:
case EC_STRING:
- case EC_INTERVAL:
assert (a->data.vtype == TYPE_str);
if (a->data.val.sval)
sprintf(buf, "'%s'", a->data.val.sval);
@@ -335,6 +337,7 @@ atom2sql(atom *a)
case EC_BLOB:
/* TODO atom to string */
break;
+ case EC_INTERVAL:
case EC_NUM:
switch (a->data.vtype) {
case TYPE_lng:
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list