Update of /cvsroot/monetdb/sql/src/backends/monet4
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv9416/src/backends/monet4

Modified Files:
      Tag: SQL_2-20
        sql_session.mx 
Log Message:
cleanup of global variable creation (code resembles m5 version again)
also fixed a leak (free stmt as its dupped in the set_var call)


Index: sql_session.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/backends/monet4/sql_session.mx,v
retrieving revision 1.230.2.3
retrieving revision 1.230.2.4
diff -u -d -r1.230.2.3 -r1.230.2.4
--- sql_session.mx      20 Sep 2007 08:55:14 -0000      1.230.2.3
+++ sql_session.mx      29 Oct 2007 08:05:08 -0000      1.230.2.4
@@ -712,6 +712,12 @@
        return GDK_SUCCEED;
 }
 
+#define SQLglobal(name, val) \
+       r = stmt_var(_strdup(name), &ctype, 0, 1); \
+       stack_push_var(sql, name, r, &ctype);      \
+       stmt_destroy(r);                           \
+       stack_set_var(sql, name, VALset(&src, ctype.type->localtype, val));
+
 /* initialize the global variable, ie make mvc point to these */
 static int
 global_variables(mvc *sql, char *user, char *schema)
@@ -726,63 +732,30 @@
 
        typename = "int";
        sql_find_subtype(&ctype, typename, 0, 0);
-       name = "debug";
-
-       r = stmt_var(_strdup(name), &ctype, 0, 1);
-       stack_push_var(sql, name, r, &ctype);
-       stack_set_var(sql, name, VALset(&src, ctype.type->localtype, 
&sql->debug));
+       SQLglobal("debug", &sql->debug);
 
        typename = "varchar";
        sql_find_subtype(&ctype, typename, 8, 0);
-       name = "explain";
-       r = stmt_var(_strdup(name), &ctype, 0, 1);
-       stack_push_var(sql, name, r, &ctype);
+       SQLglobal("explain", "");
+
        stack_set_var(sql, name, VALset(&src, ctype.type->localtype, ""));
 
        sql_find_subtype(&ctype, typename, 1024, 0);
-       name = "current_schema";
-       r = stmt_var(_strdup(name), &ctype, 0, 1);
-       stack_push_var(sql, name, r, &ctype);
-       stack_set_var(sql, name, VALset(&src, ctype.type->localtype, schema));
-
-       name = "current_user";
-       r = stmt_var(_strdup(name), &ctype, 0, 1);
-       stack_push_var(sql, name, r, &ctype);
-       stack_set_var(sql, name, VALset(&src, ctype.type->localtype, user));
-
-       name = "current_role";
-       r = stmt_var(_strdup(name), &ctype, 0, 1);
-       stack_push_var(sql, name, r, &ctype);
-       stack_set_var(sql, name, VALset(&src, ctype.type->localtype, user));
-
-       name = "optimizer";
-       r = stmt_var(_strdup(name), &ctype, 0, 1);
-       stack_push_var(sql, name, r, &ctype);
-       stack_set_var(sql, name, VALset(&src, ctype.type->localtype, "yes"));
+       SQLglobal("current_schema", schema);
+       SQLglobal("current_user", user);
+       SQLglobal("current_role", user);
+       SQLglobal("optimizer", "yes");
 
        typename = "sec_interval";
        sql_find_subtype(&ctype, typename, 0, 0);
-       name = "current_timezone";
+       SQLglobal("current_timezone", &sec);
        r = stmt_var(_strdup(name), &ctype, 0, 1);
-       stack_push_var(sql, name, r, &ctype);
-       stack_set_var(sql, name, VALset(&src, ctype.type->localtype, &sec));
 
        typename = "boolean";
        sql_find_subtype(&ctype, typename, 0, 0);
-       name = "cache";
-       r = stmt_var(_strdup(name), &ctype, 0, 1);
-       stack_push_var(sql, name, r, &ctype);
-       stack_set_var(sql, name, VALset(&src, ctype.type->localtype, &T));
-
-       name = "profile";
-       r = stmt_var(_strdup(name), &ctype, 0, 1);
-       stack_push_var(sql, name, r, &ctype);
-       stack_set_var(sql, name, VALset(&src, ctype.type->localtype, &F));
-
-       name = "trace";
-       r = stmt_var(_strdup(name), &ctype, 0, 1);
-       stack_push_var(sql, name, r, &ctype);
-       stack_set_var(sql, name, VALset(&src, ctype.type->localtype, &F));
+       SQLglobal("cache", &T);
+       SQLglobal("profile", &F);
+       SQLglobal("trace", &F);
        return 0;
 }
 


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Monetdb-sql-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins

Reply via email to