Update of /cvsroot/monetdb/sql/src/common
In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv10921/src/common
Modified Files:
sql_changeset.mx sql_list.mx sql_mem.mx sql_types.mx
Log Message:
moved most of the DDL statements into mal
Index: sql_mem.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/common/sql_mem.mx,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- sql_mem.mx 7 Jan 2010 15:24:32 -0000 1.22
+++ sql_mem.mx 10 Jan 2010 15:33:34 -0000 1.23
@@ -117,6 +117,15 @@
return r;
}
+char *sa_zalloc( sql_allocator *sa, size_t sz )
+{
+ char *r = sa_alloc(sa, sz);
+
+ if (r)
+ memset(r, 0, sz);
+ return r;
+}
+
void sa_destroy( sql_allocator *sa )
{
size_t i ;
Index: sql_changeset.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/common/sql_changeset.mx,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- sql_changeset.mx 7 Jan 2010 15:24:32 -0000 1.14
+++ sql_changeset.mx 10 Jan 2010 15:33:33 -0000 1.15
@@ -24,6 +24,7 @@
void
cs_init(changeset * cs, fdestroy destroy)
{
+ cs->sa = NULL;
cs->destroy = destroy;
cs->set = NULL;
cs->dset = NULL;
@@ -31,6 +32,16 @@
}
void
+cs_new(changeset * cs, sql_allocator *sa)
+{
+ cs->sa = sa;
+ cs->destroy = NULL;
+ cs->set = NULL;
+ cs->dset = NULL;
+ cs->nelm = NULL;
+}
+
+void
cs_destroy(changeset * cs)
{
if (cs->set)
@@ -42,8 +53,12 @@
void
cs_add(changeset * cs, void *elm, int flag)
{
- if (!cs->set)
- cs->set = list_create(cs->destroy);
+ if (!cs->set) {
+ if (cs->sa)
+ cs->set = list_new(cs->sa);
+ else
+ cs->set = list_create(cs->destroy);
+ }
list_append(cs->set, elm);
if (flag == TR_NEW && !cs->nelm)
cs->nelm = cs->set->t;
@@ -63,8 +78,12 @@
cs->nelm = elm->next;
list_remove_node(cs->set, elm);
} else {
- if (!cs->dset)
- cs->dset = list_create(cs->destroy);
+ if (!cs->dset) {
+ if (cs->sa)
+ cs->dset = list_new(cs->sa);
+ else
+ cs->dset = list_create(cs->destroy);
+ }
list_move_data(cs->set, cs->dset, elm->data);
}
}
Index: sql_types.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/common/sql_types.mx,v
retrieving revision 1.133
retrieving revision 1.134
diff -u -d -r1.133 -r1.134
--- sql_types.mx 7 Jan 2010 15:24:32 -0000 1.133
+++ sql_types.mx 10 Jan 2010 15:33:34 -0000 1.134
@@ -1302,6 +1302,7 @@
t = ts;
TABLE = *t++ = sql_create_type("TABLE", 0, 0, 0, EC_TABLE, "bat");
+ *t++ = sql_create_type("PTR", 0, 0, 0, EC_TABLE, "ptr");
BIT = *t++ = sql_create_type("BOOLEAN", 1, 0, 2, EC_BIT, "bit");
sql_create_alias(BIT->sqlname, "BOOL");
Index: sql_list.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/common/sql_list.mx,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- sql_list.mx 7 Jan 2010 15:24:32 -0000 1.25
+++ sql_list.mx 10 Jan 2010 15:33:34 -0000 1.26
@@ -25,9 +25,9 @@
#include "sql_list.h"
static node *
-node_create(void *data)
+node_create(sql_allocator *sa, void *data)
{
- node *n = NEW(node);
+ node *n = (sa)?SA_NEW(sa, node):NEW(node);
n->next = NULL;
n->data = data;
@@ -39,12 +39,25 @@
{
list *l = NEW(list);
+ l->sa = NULL;
l->destroy = destroy;
l->h = l->t = NULL;
l->cnt = 0;
return l;
}
+list *
+list_new(sql_allocator *sa)
+{
+ list *l = SA_NEW(sa, list);
+
+ l->sa = sa;
+ l->destroy = NULL;
+ l->h = l->t = NULL;
+ l->cnt = 0;
+ return l;
+}
+
int
list_empty(list *l)
{
@@ -58,7 +71,8 @@
{
if (n->data && l->destroy)
l->destroy(n->data);
- _DELETE(n);
+ if (!l->sa)
+ _DELETE(n);
}
void
@@ -73,7 +87,8 @@
n = n->next;
node_destroy(l, t);
}
- _DELETE(l);
+ if (!l->sa)
+ _DELETE(l);
}
}
@@ -88,7 +103,7 @@
list *
list_append(list *l, void *data)
{
- node *n = node_create(data);
+ node *n = node_create(l->sa, data);
if (l->cnt) {
l->t->next = n;
@@ -104,7 +119,7 @@
list_append_before(list *l, node *m, void *data)
{
node *p = l->h;
- node *n = node_create(data);
+ node *n = node_create(l->sa, data);
n->next = m;
if (p == m){
@@ -121,7 +136,7 @@
list *
list_prepend(list *l, void *data)
{
- node *n = node_create(data);
+ node *n = node_create(l->sa, data);
if (!l->cnt) {
l->t = n;
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
Monetdb-sql-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins