Update of /cvsroot/monetdb/sql/src/server
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv27299/src/server
Modified Files:
sql_atom.mx sql_mvc.mx sql_select.mx sql_statement.mx
sql_updates.mx
Log Message:
count now returns wrd
U sql_mvc.mx
Index: sql_mvc.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_mvc.mx,v
retrieving revision 1.209
retrieving revision 1.210
diff -u -d -r1.209 -r1.210
--- sql_mvc.mx 29 Aug 2008 17:03:46 -0000 1.209
+++ sql_mvc.mx 7 Sep 2008 14:27:59 -0000 1.210
@@ -558,7 +558,7 @@
int i;
mvc *m;
- m = NEW(mvc);
+ m = ZNEW(mvc);
if (mvc_debug)
fprintf(stderr, "mvc_create\n");
U sql_atom.mx
Index: sql_atom.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_atom.mx,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -d -r1.60 -r1.61
--- sql_atom.mx 29 Aug 2008 17:03:46 -0000 1.60
+++ sql_atom.mx 7 Sep 2008 14:27:58 -0000 1.61
@@ -117,6 +117,9 @@
case TYPE_int:
a->data.val.ival = (int) val;
break;
+ case TYPE_wrd:
+ a->data.val.wval = (wrd) val;
+ break;
case TYPE_lng:
a->data.val.lval = val;
break;
@@ -270,6 +273,9 @@
case TYPE_lng:
sprintf(buf, LLFMT, a->data.val.lval);
break;
+ case TYPE_wrd:
+ sprintf(buf, SZFMT, a->data.val.wval);
+ break;
case TYPE_int:
sprintf(buf, "%d", a->data.val.ival);
break;
U sql_statement.mx
Index: sql_statement.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_statement.mx,v
retrieving revision 1.169
retrieving revision 1.170
diff -u -d -r1.169 -r1.170
--- sql_statement.mx 17 Jul 2008 13:29:20 -0000 1.169
+++ sql_statement.mx 7 Sep 2008 14:28:00 -0000 1.170
@@ -229,6 +229,7 @@
extern stmt *stmt_atom_string(char *s);
extern stmt *stmt_atom_clob(char *S);
extern stmt *stmt_atom_int(int i);
+extern stmt *stmt_atom_wrd(wrd i);
extern stmt *stmt_atom_lng(lng l);
extern stmt *stmt_bool(int b);
extern stmt *stmt_filter(stmt *sel);
@@ -462,6 +463,18 @@
}
stmt *
+stmt_atom_wrd(wrd i)
+{
+ sql_subtype t;
+
+ if (sizeof(wrd) == sizeof(int))
+ sql_find_subtype(&t, "wrd", 32, 0);
+ else
+ sql_find_subtype(&t, "wrd", 64, 0);
+ return stmt_atom(atom_int(&t, i));
+}
+
+stmt *
stmt_atom_lng(lng l)
{
sql_subtype t;
U sql_select.mx
Index: sql_select.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_select.mx,v
retrieving revision 1.244
retrieving revision 1.245
diff -u -d -r1.244 -r1.245
--- sql_select.mx 6 Sep 2008 20:02:48 -0000 1.244
+++ sql_select.mx 7 Sep 2008 14:28:00 -0000 1.245
@@ -3489,7 +3489,7 @@
stmt *res, *s = ls->op1.lval->h->data;
sql_subaggr *cnt;
sql_subtype *bt = sql_bind_localtype("bit");
- sql_subtype *it = sql_bind_localtype("int");
+ sql_subtype *it = sql_bind_localtype("wrd");
if (s->nrcols == 0) {
s = stmt_append(stmt_temp(tail_type(s)),
stmt_dup(s));
@@ -3500,11 +3500,11 @@
if (sc->token == SQL_EXISTS) {
sql_subfunc *ne =
sql_bind_func_result(sql->session->schema, "<>", it, it, bt);
- res = stmt_binop(res, stmt_atom_int(0), ne);
+ res = stmt_binop(res, stmt_atom_wrd(0), ne);
} else { /* NOT EXISTS */
sql_subfunc *e =
sql_bind_func_result(sql->session->schema, "=", it, it, bt);
- res = stmt_binop(res, stmt_atom_int(0), e);
+ res = stmt_binop(res, stmt_atom_wrd(0), e);
}
stmt_destroy(ls);
return res;
U sql_updates.mx
Index: sql_updates.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_updates.mx,v
retrieving revision 1.144
retrieving revision 1.145
diff -u -d -r1.144 -r1.145
--- sql_updates.mx 6 Sep 2008 20:02:50 -0000 1.144
+++ sql_updates.mx 7 Sep 2008 14:28:00 -0000 1.145
@@ -123,7 +123,7 @@
stmt_releqjoin_fill(s, stmt_bat(c->c,
stmt_dup(ts), RDONLY), stmt_dup(inserts[c->c->colnr]->op2.stval));
}
}
- s = stmt_binop(stmt_aggr(s, NULL, cnt, 1), stmt_atom_int(0),
ne);
+ s = stmt_binop(stmt_aggr(s, NULL, cnt, 1), stmt_atom_wrd(0),
ne);
/* 2e stage: find out if inserted are unique */
if (idx_inserts->nrcols) { /* insert columns not atoms */
@@ -168,7 +168,7 @@
s = stmt_aggr(s, NULL, cnt, 1);
}
/* s should be empty */
- s = stmt_binop(s, stmt_atom_int(0), ne);
+ s = stmt_binop(s, stmt_atom_wrd(0), ne);
} else {
s = stmt_bool(0);
}
@@ -187,7 +187,7 @@
/* (count(ss) <> sum(ss)) */
sum = sql_bind_aggr(sql->session->schema, "sum",
tail_type(ss));
ssum = stmt_aggr(ss, NULL, sum, 1);
- ssum = sql_Nop_(sql, "ifthenelse", sql_unop_(sql, NULL,
"isnull", ssum), stmt_atom_lng(0), stmt_dup(ssum), NULL);
+ ssum = sql_Nop_(sql, "ifthenelse", sql_unop_(sql, NULL,
"isnull", ssum), stmt_atom_wrd(0), stmt_dup(ssum), NULL);
count_sum = stmt_binop(check_types(sql,
tail_type(ssum), stmt_aggr(stmt_dup(ss), NULL, sql_dup_aggr(cnt), 1),
type_equal), ssum, sql_dup_func(ne));
/* combine results */
@@ -217,7 +217,7 @@
(void) sql; /* unused! */
if (s->key && s->nrcols == 0) {
- s = stmt_binop(stmt_aggr(stmt_dup(idx_inserts), NULL, cnt, 1),
stmt_atom_int(1), ne);
+ s = stmt_binop(stmt_aggr(stmt_dup(idx_inserts), NULL, cnt, 1),
stmt_atom_wrd(1), ne);
} else {
/* releqjoin.count <> inserts[col1].count */
stmt *ins = stmt_dup(inserts[0]->op2.stval);
@@ -578,7 +578,7 @@
stmt_releqjoin_fill(s, l, upd);
}
- s = stmt_binop(stmt_aggr(s, NULL, cnt, 1), stmt_atom_int(0),
ne);
+ s = stmt_binop(stmt_aggr(s, NULL, cnt, 1), stmt_atom_wrd(0),
ne);
/* 2e stage: find out if the updated are unique */
if (idx_updates->nrcols) { /* update columns not atoms */
@@ -608,7 +608,7 @@
/* (count(ss) <> sum(ss)) */
sum = sql_bind_aggr(sql->session->schema, "sum",
tail_type(ss));
ssum = stmt_aggr(ss, NULL, sum, 1);
- ssum = sql_Nop_(sql, "ifthenelse", sql_unop_(sql, NULL,
"isnull", ssum), stmt_atom_lng(0), stmt_dup(ssum), NULL);
+ ssum = sql_Nop_(sql, "ifthenelse", sql_unop_(sql, NULL,
"isnull", ssum), stmt_atom_wrd(0), stmt_dup(ssum), NULL);
count_sum = stmt_binop(stmt_aggr(stmt_dup(ss), NULL,
sql_dup_aggr(cnt), 1), check_types(sql, it, ssum, type_equal),
sql_dup_func(ne));
/* combine results */
@@ -629,7 +629,7 @@
stmt *s = stmt_join(o, stmt_reverse(h), cmp_equal);
/* s should be empty */
- s = stmt_binop(stmt_aggr(s, NULL, cnt, 1), stmt_atom_int(0),
ne);
+ s = stmt_binop(stmt_aggr(s, NULL, cnt, 1), stmt_atom_wrd(0),
ne);
/* 2e stage: find out if updated are unique */
if (h->nrcols) { /* update columns not atoms */
@@ -645,7 +645,7 @@
/* (count(ss) <> sum(ss)) */
sum = sql_bind_aggr(sql->session->schema, "sum",
tail_type(ss));
ssum = stmt_aggr(ss, NULL, sum, 1);
- ssum = sql_Nop_(sql, "ifthenelse", sql_unop_(sql, NULL,
"isnull", ssum), stmt_atom_lng(0), stmt_dup(ssum), NULL);
+ ssum = sql_Nop_(sql, "ifthenelse", sql_unop_(sql, NULL,
"isnull", ssum), stmt_atom_wrd(0), stmt_dup(ssum), NULL);
count_sum = stmt_binop(check_types(sql,
tail_type(ssum), stmt_aggr(stmt_dup(ss), NULL, sql_dup_aggr(cnt), 1),
type_equal), ssum, sql_dup_func(ne));
/* combine results */
@@ -1177,7 +1177,7 @@
if (output) {
if (inserts[0]->op2.stval->nrcols == 0) {
- s = stmt_atom_int(1);
+ s = stmt_atom_wrd(1);
} else {
s = stmt_aggr(stmt_dup(inserts[0]->op2.stval), NULL,
sql_bind_aggr(sql->session->schema, "count", NULL), 1);
}
@@ -1469,7 +1469,7 @@
stmt *cnt = stmt_aggr(stmt_dup(s->op1.lval->h->data), NULL,
sql_bind_aggr(sql->session->schema, "count", NULL), 1);
list_append(slist, stmt_affected_rows(cnt));
} else {
- list_append(slist, stmt_affected_rows(stmt_atom_int(1)));
+ list_append(slist, stmt_affected_rows(stmt_atom_wrd(1)));
}
return stmt_list(slist);
}
@@ -1794,7 +1794,7 @@
break;
default: /*RESTRICT*/
/* The overlap between deleted
primaries and foreign should be empty */
- s = stmt_binop(stmt_aggr(s, NULL, cnt,
1), stmt_atom_int(0), ne);
+ s = stmt_binop(stmt_aggr(s, NULL, cnt,
1), stmt_atom_wrd(0), ne);
msg = sql_message( "DELETE: FOREIGN KEY
constraint '%s.%s' violated", k->t->base.name, k->base.name);
s = stmt_exception(s, msg, 00001);
list_prepend(l, s);
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Monetdb-sql-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins