Update of /cvsroot/monetdb/sql/src/server
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv17226/src/server
Modified Files:
rel_select.mx rel_semantic.mx sql_env.mx sql_mvc.mx
sql_parser.mx sql_psm.mx sql_scan.mx sql_schema.mx
sql_select.mx sql_semantic.mx sql_updates.mx
Log Message:
removed 'explain' variable, ie no more set explain etc
but always use the statement modifiers debug, explain, profile
profile now only outputs the real, user and clk ticks per sec.
The old profile functionality is taken over by a new statement modifier
'record'
U sql_semantic.mx
Index: sql_semantic.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_semantic.mx,v
retrieving revision 1.180
retrieving revision 1.181
diff -u -d -r1.180 -r1.181
--- sql_semantic.mx 25 Feb 2008 19:07:43 -0000 1.180
+++ sql_semantic.mx 1 Apr 2008 17:05:01 -0000 1.181
@@ -83,7 +83,7 @@
extern stmt *fix_scale(mvc *sql, sql_subtype *ct, stmt *s, int both, int
always);
extern stmt *sum_scales(mvc *sql, sql_subfunc *f, stmt *ls, stmt *rs);
extern stmt *scale_algebra(mvc *sql, sql_subfunc *f, stmt *ls, stmt *rs);
-extern stmt *scope_sqlparse(mvc *m, scope *scp, char *query, modes_t mode);
+extern stmt *scope_sqlparse(mvc *m, scope *scp, char *query, char mode);
extern stmt *first_subset(stmt *subset);
@@ -304,7 +304,7 @@
}
stmt *
-scope_sqlparse(mvc *m, scope *scp, char *query, modes_t mode)
+scope_sqlparse(mvc *m, scope *scp, char *query, char mode)
{
mvc *o = NULL;
stmt *sq = NULL;
@@ -325,7 +325,7 @@
m->last = NULL;
m->cache = 0;
- m->mode = mode;
+ m->emode = mode;
b = (buffer*)GDKmalloc(sizeof(buffer));
n = GDKmalloc(len + 1 + 1);
@@ -445,7 +445,7 @@
if (isView(t)) {
- stmt *sq = scope_sqlparse(sql, NULL, t->query, m_execute);
+ stmt *sq = scope_sqlparse(sql, NULL, t->query, m_instantiate);
if (!sq)
return NULL;
U sql_updates.mx
Index: sql_updates.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_updates.mx,v
retrieving revision 1.135
retrieving revision 1.136
diff -u -d -r1.135 -r1.136
--- sql_updates.mx 17 Mar 2008 09:48:46 -0000 1.135
+++ sql_updates.mx 1 Apr 2008 17:05:02 -0000 1.136
@@ -450,7 +450,7 @@
if (!n) n = "new";
scope_add_inserted(scp, inserts, t, n);
- s = scope_sqlparse(sql, scp, trigger->statement,
m_execute);
+ s = scope_sqlparse(sql, scp, trigger->statement,
m_instantiate);
scope_close(scp);
@@ -765,7 +765,7 @@
if (fc->c->def) {
stmt *sq;
char *msg = sql_message( "select %s;",
fc->c->def);
- sq = scope_sqlparse(sql, NULL, msg, sql->mode);
+ sq = scope_sqlparse(sql, NULL, msg, sql->emode);
_DELETE(msg);
if (!sq || sq->type != st_list ||
list_length(sq->op1.lval) != 1) {
cleanup_stmts(new_updates, len);
@@ -834,7 +834,7 @@
if (fc->c->def) {
stmt *sq;
char *msg = sql_message( "select %s;",
fc->c->def);
- sq = scope_sqlparse(sql, NULL, msg, sql->mode);
+ sq = scope_sqlparse(sql, NULL, msg, sql->emode);
_DELETE(msg);
if (!sq || sq->type != st_list ||
list_length(sq->op1.lval) != 1) {
cleanup_stmts(new_updates, len);
@@ -1111,7 +1111,7 @@
if (!o) o = "old";
scope_add_updated(scp, updates, t, o, n);
- s = scope_sqlparse(sql, scp, trigger->statement,
m_execute);
+ s = scope_sqlparse(sql, scp, trigger->statement,
m_instantiate);
scope_close(scp);
@@ -1341,7 +1341,7 @@
if (c->def) {
stmt *sq;
char *msg = sql_message(
"select %s;", c->def);
- sq = scope_sqlparse(sql, NULL,
msg, sql->mode);
+ sq = scope_sqlparse(sql, NULL,
msg, sql->emode);
_DELETE(msg);
if (!sq || sq->type != st_list
|| list_length(sq->op1.lval) != 1) {
cond_stmt_destroy(sq);
@@ -1741,7 +1741,7 @@
if (!o) o = "old";
scope_add_deleted(scp, deletes, t, o);
- s = scope_sqlparse(sql, scp, trigger->statement,
m_execute);
+ s = scope_sqlparse(sql, scp, trigger->statement,
m_instantiate);
scope_close(scp);
U sql_select.mx
Index: sql_select.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_select.mx,v
retrieving revision 1.228
retrieving revision 1.229
diff -u -d -r1.228 -r1.229
--- sql_select.mx 21 Mar 2008 09:39:35 -0000 1.228
+++ sql_select.mx 1 Apr 2008 17:05:00 -0000 1.229
@@ -1709,7 +1709,7 @@
}
break;
case SQL_PARAMETER:{
- if (sql->mode != m_prepare)
+ if (sql->emode != m_prepare)
return sql_error(sql, 02, "SELECT: parameters ('?') not
allowed in normal queries, use PREPARE");
return stmt_varnr(se->data.ival, NULL);
}
U sql_schema.mx
Index: sql_schema.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_schema.mx,v
retrieving revision 1.139
retrieving revision 1.140
diff -u -d -r1.139 -r1.140
--- sql_schema.mx 29 Jan 2008 22:04:29 -0000 1.139
+++ sql_schema.mx 1 Apr 2008 17:04:59 -0000 1.140
@@ -528,7 +528,7 @@
char *tname = qname_table(qname);
sql_schema *ss = cur_schema(sql);
sql_table *t = NULL;
- int instantiate = (sql->mode == m_execute);
+ int instantiate = (sql->emode == m_instantiate);
dlist *columns = trigger_event->data.lval;
char *old_name = NULL, *new_name = NULL;
@@ -723,7 +723,7 @@
char *sname = qname_schema(qname);
sql_schema *s = NULL;
sql_table *t = NULL;
- int instantiate = (sql->mode == m_execute || !persistent);
+ int instantiate = (sql->emode == m_instantiate || !persistent);
if (sname && !(s = mvc_bind_schema(sql, sname)))
return sql_error(sql, 02, "CREATE VIEW: no such schema '%s'",
sname);
@@ -1269,7 +1269,7 @@
char *msg = NULL;
msg = sql_message("select %s;", cs->def);
- sq = scope_sqlparse(sql, NULL, msg, sql->mode);
+ sq = scope_sqlparse(sql, NULL, msg, sql->emode);
_DELETE(msg);
if (!sq || sq->type != st_list ||
list_length(sq->op1.lval) != 1) {
cond_stmt_destroy(sq);
@@ -1845,7 +1845,7 @@
/* TODO everything should be done via the backend language */
/*
- if (!QUERY_MODE(sql->mode))
+ if (!QUERY_MODE(sql->emode))
return sql_error(sql, 05, "Schema statements are directly
executed and therefor cannot be debugged, explained, profiled, traced or used
in a prepare statement");
*/
U rel_select.mx
Index: rel_select.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/rel_select.mx,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -d -r1.72 -r1.73
--- rel_select.mx 27 Mar 2008 12:00:00 -0000 1.72
+++ rel_select.mx 1 Apr 2008 17:04:56 -0000 1.73
@@ -1264,10 +1264,10 @@
if (tableref->data.lval->h->next->data.sym) { /* AS */
tname =
tableref->data.lval->h->next->data.sym->data.lval->h->data.sval;
}
- if (isView(t) && sql->mode != m_execute) {
+ if (isView(t) && sql->emode != m_instantiate) {
/* instantiate base view */
node *n,*m;
- sql_rel *rel = rel_parse(sql, t->query, m_execute);
+ sql_rel *rel = rel_parse(sql, t->query, m_instantiate);
if (!rel)
return rel;
@@ -3380,7 +3380,7 @@
/* turn a subquery into a tabular result */
return rel_table_func_exp(sql, rel, se->data.sym, ek);
case SQL_PARAMETER:{
- if (sql->mode != m_prepare)
+ if (sql->emode != m_prepare)
return sql_error(sql, 02, "SELECT: parameters ('?') not
allowed in normal queries, use PREPARE");
return exp_atom_ref(se->data.ival, NULL);
}
@@ -4239,8 +4239,8 @@
char *sname = qname_schema(qname);
sql_schema *s = NULL;
sql_table *t = NULL;
- int instantiate = (sql->mode == m_execute || !persistent);
- modes_t mode = sql->mode;
+ int instantiate = (sql->emode == m_instantiate || !persistent);
+ char emode = sql->emode;
(void) check; /* Stefan: unused!? */
(void)column_spec;
@@ -4269,9 +4269,9 @@
}
if (!instantiate)
- sql->mode = m_execute;
+ sql->emode = m_instantiate;
sq = rel_subquery(sql, NULL, query, ek);
- sql->mode = mode;
+ sql->emode = emode;
if (!sq)
return NULL;
U rel_semantic.mx
Index: rel_semantic.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/rel_semantic.mx,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -d -r1.25 -r1.26
--- rel_semantic.mx 28 Jan 2008 09:20:28 -0000 1.25
+++ rel_semantic.mx 1 Apr 2008 17:04:56 -0000 1.26
@@ -29,7 +29,7 @@
#include <stdarg.h>
extern sql_rel *rel_semantic(mvc *sql, symbol *sym);
-extern sql_rel *rel_parse(mvc *m, char *query, modes_t mode);
+extern sql_rel *rel_parse(mvc *m, char *query, char emode);
extern comp_type swap_compare( comp_type t );
@@ -71,7 +71,7 @@
}
sql_rel *
-rel_parse(mvc *m, char *query, modes_t mode)
+rel_parse(mvc *m, char *query, char emode)
{
mvc o = *m;
sql_rel *rel;
@@ -82,7 +82,7 @@
m->qc = NULL;
m->cache = 0;
- m->mode = mode;
+ m->emode = emode;
b = (buffer*)GDKmalloc(sizeof(buffer));
n = GDKmalloc(len + 1 + 1);
U sql_mvc.mx
Index: sql_mvc.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_mvc.mx,v
retrieving revision 1.200
retrieving revision 1.201
diff -u -d -r1.200 -r1.201
--- sql_mvc.mx 27 Mar 2008 14:02:10 -0000 1.200
+++ sql_mvc.mx 1 Apr 2008 17:04:57 -0000 1.201
@@ -42,19 +42,20 @@
#define ERRSIZE 8192
-typedef enum modes_t {
- m_normal = 0,
- m_prepare = 1,
- m_execute = 2,
- m_explain = 3,
- m_profile = 4,
- m_debug = 5,
- m_trace = 6,
- m_inplace = 7
-} modes_t;
+/* different query execution modes (emode) */
+#define m_normal 0
+#define m_inplace 1
+#define m_execute 2
+#define m_prepare 3
+#define m_instantiate 4
+#define m_explain 5
-#define CACHE_MODE(m) (m==m_normal||m==m_profile||m==m_debug||m==m_trace)
-#define QUERY_MODE(m) (m==m_normal||m==m_inplace||m==m_execute)
+/* different query execution modifiers (emod) */
+#define mod_none 0
+#define mod_profile 1
+#define mod_debug 2
+#define mod_trace 4
+#define mod_record 8
typedef struct sql_var {
struct stmt *s;
@@ -97,8 +98,8 @@
int reply_size; /* reply size */
int debug;
- modes_t mode;
- modes_t explain; /* set explain starts after that statement */
+ char emode; /* execution mode */
+ char emod; /* execution modifier */
sql_session *session;
@@ -297,7 +298,7 @@
s = m->session->schema = mvc_bind_schema(m, "tmp");
assert(m->session->schema != NULL);
- sql_create_profile(m, s);
+ sql_create_history(m, s);
if (mvc_commit(m, 0, NULL) < 0) {
fprintf(stderr, "!mvc_init: unable to commit system
tables\n");
@@ -575,8 +576,8 @@
m->timezone = 0;
m->clientid = clientid;
- m->mode = m_normal;
- m->explain = m_normal;
+ m->emode = m_normal;
+ m->emod = mod_none;
m->reply_size = 100;
m->debug = debug;
m->cache = 1;
@@ -634,10 +635,8 @@
m->sym = NULL;
m->role_id = m->user_id = m->last_id = -1;
- m->mode = m_normal;
- if (m->explain != m_normal)
- stack_set_number(m, "explain", m_normal);
- m->explain = m_normal;
+ m->emode = m_normal;
+ m->emod = mod_none;
if (m->reply_size != 100)
stack_set_number(m, "reply_size", 100);
m->reply_size = 100;
U sql_psm.mx
Index: sql_psm.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_psm.mx,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -d -r1.52 -r1.53
--- sql_psm.mx 14 Mar 2008 12:55:20 -0000 1.52
+++ sql_psm.mx 1 Apr 2008 17:04:59 -0000 1.53
@@ -536,7 +536,7 @@
list *l = list_create((fdestroy) &arg_destroy), *type_list = NULL;
list *id_func_l = NULL, *id_col_l = NULL, *view_id_l = NULL;
sql_subtype *restype = NULL;
- int instantiate = (sql->mode == m_execute);
+ int instantiate = (sql->emode == m_instantiate);
char *F = is_aggr?"AGGREGATE":(is_func?"FUNCTION":"PROCEDURE");
if (sname && !(s = mvc_bind_schema(sql, sname)))
U sql_scan.mx
Index: sql_scan.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_scan.mx,v
retrieving revision 1.133
retrieving revision 1.134
diff -u -d -r1.133 -r1.134
--- sql_scan.mx 18 Feb 2008 10:52:07 -0000 1.133
+++ sql_scan.mx 1 Apr 2008 17:04:59 -0000 1.134
@@ -42,7 +42,6 @@
int yycur; /* next char in the queue */
char yybak; /* sometimes its needed to write an EOS marker
*/
int as; /* start of query part of view's etc */
- int view_end; /* end of query part of view */
int key; /* query hash */
int started; /* found at least one token */
prot mode; /* which mode (line (1,N), blocked) */
@@ -312,6 +311,7 @@
keywords_insert("EXPLAIN", SQL_EXPLAIN);
keywords_insert("PROFILE", SQL_PROFILE);
+ keywords_insert("RECORD", SQL_RECORD);
keywords_insert("DEBUG", SQL_DEBUG);
keywords_insert("TRACE", SQL_TRACE);
keywords_insert("PREPARE", PREPARE);
@@ -402,7 +402,7 @@
s->key = 0; /* keep a hash key of the query */
s->started = 0;
- s->as = s->view_end = 0;
+ s->as = 0;
s->mode = LINE_N;
s->schema = NULL;
@@ -429,7 +429,7 @@
s->yycur = 0;
s->key = 0; /* keep a hash key of the query */
s->started = 0;
- s->as = s->view_end = 0;
+ s->as = 0;
s->schema = NULL;
}
@@ -1009,8 +1009,6 @@
lc->yycur -= prev;
assert(lc->yycur >= 0);
}
- } else if (token == WITH || token == USING) {
- lc->view_end = pos;
}
if (lc->log)
U sql_parser.mx
Index: sql_parser.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_parser.mx,v
retrieving revision 1.279
retrieving revision 1.280
diff -u -d -r1.279 -r1.280
--- sql_parser.mx 27 Mar 2008 14:02:09 -0000 1.279
+++ sql_parser.mx 1 Apr 2008 17:04:58 -0000 1.280
@@ -672,7 +672,7 @@
%token CHECK CONSTRAINT CREATE
%token TYPE PROCEDURE FUNCTION AGGREGATE RETURNS EXTERNAL sqlNAME DECLARE
%token CALL LANGUAGE
-%token SQL_EXPLAIN SQL_PROFILE SQL_DEBUG SQL_TRACE PREPARE EXECUTE
+%token SQL_EXPLAIN SQL_PROFILE SQL_RECORD SQL_DEBUG SQL_TRACE PREPARE EXECUTE
%token DEFAULT DISTINCT DROP
%token FOREIGN
%token PASSWORD GRANT REVOKE ROLE ADMIN INTO
@@ -710,7 +710,7 @@
}
| PREPARE { mvc *m = (mvc*)parm;
- m->mode = m_prepare;
+ m->emode = m_prepare;
m->scanner.as = m->scanner.yycur;
m->scanner.key = 0;
}
@@ -718,7 +718,7 @@
m->sym = $$ = $3; YYACCEPT;
}
| SQL_EXPLAIN { mvc *m = (mvc*)parm;
- m->mode = m_explain;
+ m->emode = m_explain;
m->scanner.as = m->scanner.yycur;
m->scanner.key = 0;
}
@@ -726,7 +726,11 @@
m->sym = $$ = $3; YYACCEPT;
}
| SQL_PROFILE { mvc *m = (mvc*)parm;
- m->mode = m_profile;
+ if (m->scanner.mode == LINE_1) {
+ yyerror("We do not support profiling SQL in
interactive mode");
+ YYABORT;
+ }
+ m->emod |= mod_profile;
m->scanner.as = m->scanner.yycur;
m->scanner.key = 0;
#ifdef HAVE_TIMES
@@ -734,33 +738,34 @@
#endif
m->Tstart = GDKusec();
}
- sql SCOLON { mvc *m = (mvc*)parm;
- m->sym = $$ = $3; YYACCEPT;
+ sqlstmt { $$ = $3; YYACCEPT; }
+ | SQL_RECORD { mvc *m = (mvc*)parm;
+ m->emod |= mod_record;
+ m->scanner.as = m->scanner.yycur;
+ m->scanner.key = 0;
+ m->Tparse = GDKusec();
}
+ sqlstmt { $$ = $3; YYACCEPT; }
| SQL_DEBUG { mvc *m = (mvc*)parm;
if (m->scanner.mode == LINE_1) {
yyerror("We only support debugging SQL in
interactive mode");
YYABORT;
}
- m->mode = m_debug;
+ m->emod |= mod_debug;
m->scanner.as = m->scanner.yycur;
m->scanner.key = 0;
}
- sql SCOLON { mvc *m = (mvc*)parm;
- m->sym = $$ = $3; YYACCEPT;
- }
+ sqlstmt { $$ = $3; YYACCEPT; }
| SQL_TRACE { mvc *m = (mvc*)parm;
if (m->scanner.mode == LINE_1) {
yyerror("We do not support tracing SQL in
interactive mode");
YYABORT;
}
- m->mode = m_trace;
+ m->emod |= mod_trace;
m->scanner.as = m->scanner.yycur;
m->scanner.key = 0;
}
- sql SCOLON { mvc *m = (mvc*)parm;
- m->sym = $$ = $3; YYACCEPT;
- }
+ sqlstmt { $$ = $3; YYACCEPT; }
| exec SCOLON { mvc *m = (mvc*)parm;
m->sym = $$ = $1; YYACCEPT; }
| /*empty*/ { mvc *m = (mvc*)parm;
@@ -776,17 +781,17 @@
create:
CREATE { mvc *m = (mvc*)parm;
- if (m->mode == m_normal)
- m->mode = m_inplace; }
+ if (m->emode == m_normal)
+ m->emode = m_inplace; }
set:
SET { mvc *m = (mvc*)parm;
- if (m->mode == m_normal)
- m->mode = m_inplace; }
+ if (m->emode == m_normal)
+ m->emode = m_inplace; }
declare:
DECLARE { mvc *m = (mvc*)parm;
- if (m->mode == m_normal)
- m->mode = m_inplace; }
+ if (m->emode == m_normal)
+ m->emode = m_inplace; }
/* schema definition language */
sql:
@@ -1254,11 +1259,8 @@
| RESTART { $$ = append_int(L(), 0); }
| RESTART WITH
nonzero { $$ = append_int(append_int(L(), 2), $3); }
- | RESTART WITH { mvc *m = (mvc*)parm;
- m->scanner.as = m->scanner.yycur; }
- subquery { mvc *m = (mvc*)parm;
- $$ = append_symbol(append_int(L(), 1), $4);
- m->scanner.view_end = m->scanner.yycur; }
+ | RESTART WITH
+ subquery { $$ = append_symbol(append_int(L(), 1), $3); }
;
/*
@@ -2602,7 +2604,7 @@
{
mvc *m = (mvc*)parm;
- if (CACHE_MODE(m->mode) &&
+ if (m->emode == m_normal &&
(!m->argfixed || m->argc < MAXPARAMS-2) && m->cache){
/* replace by argument */
atom *a = atom_general( sql_bind_localtype("str"), NULL, 0);
@@ -3493,7 +3495,7 @@
{
mvc *m = (mvc*)parm;
- if (CACHE_MODE(m->mode) &&
+ if (m->emode == m_normal &&
(!m->argfixed || m->argc < MAXPARAMS-2) && m->cache){
/* replace by argument */
AtomNode *an = (AtomNode*)$1;
@@ -4341,6 +4343,7 @@
| EXECUTE { $$ = sa_strdup(SA, "execute"); }
| SQL_EXPLAIN { $$ = sa_strdup(SA, "explain"); }
| SQL_PROFILE { $$ = sa_strdup(SA, "profile"); }
+| SQL_RECORD { $$ = sa_strdup(SA, "record"); }
| SQL_DEBUG { $$ = sa_strdup(SA, "debug"); }
| SQL_TRACE { $$ = sa_strdup(SA, "trace"); }
| AUTO_COMMIT { $$ = sa_strdup(SA, "auto_commit"); }
@@ -4414,7 +4417,7 @@
exec:
EXECUTE exec_ref
{ mvc *m = (mvc*)parm;
- m->mode = m_execute;
+ m->emode = m_execute;
$$ = $2; }
;
U sql_env.mx
Index: sql_env.mx
===================================================================
RCS file: /cvsroot/monetdb/sql/src/server/sql_env.mx,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -d -r1.67 -r1.68
--- sql_env.mx 11 Jan 2008 10:52:11 -0000 1.67
+++ sql_env.mx 1 Apr 2008 17:04:57 -0000 1.68
@@ -28,17 +28,10 @@
to control its behavior.
The 'debug' variable takes an integer and sets the Mserver global
debug flag. (See MonetDB documentation.)
-The 'explain' variable currently takes the values 'plan' or
-'profile'. The 'plan' qualifier produces a relational table with
-the plan derived for execution using the applicable back end and
-optimizer schemes. The 'profile' qualifier produces a performance
-trace of the SQL queries for post analysis. It is available in
-the system table called 'profile'. Omission of either qualifier merely
-results in a straight execution of the query.
By default all remaining variables are stored as strings and
any type analysis is up to the user. The can be freely used by the
-SQL programmer for inclusion in his queries. [TODO]
+SQL programmer for inclusion in his queries.
The limited number of built-in variables defined above are
strongly typed the hard way.
@@ -62,7 +55,7 @@
extern str sql_update_var(mvc *sql, char *name);
extern int sql_create_env(mvc *sql, sql_schema *s);
-extern int sql_create_profile(mvc *sql, sql_schema *tmp);
+extern int sql_create_history(mvc *sql, sql_schema *tmp);
#endif /* _SQL_ENV_H_ */
@c
@@ -106,27 +99,8 @@
}
} else if (strcmp(name, "current_timezone") == 0) {
m->timezone = stack_get_number(m, "current_timezone") / 60;
- } else if (strcmp(name, "explain") == 0) {
- char *explain = stack_get_string(m, "explain");
-
- if (!explain || strcmp(explain, "") == 0)
- m->explain = m_normal;
- else if (strcmp(explain, "plan") == 0)
- m->explain = m_explain;
- else if (strcmp(explain, "profile") == 0)
- m->explain = m_profile;
- else if (strcmp(explain, "trace") == 0)
- m->explain = m_trace;
- else {
- return sql_message( "Session variable explain can only
be set to 'plan', 'profile' or to the empty string\n");
- }
- m->mode = m_explain;
} else if (strcmp(name, "cache") == 0) {
m->cache = stack_get_number(m, "cache");
- } else if (strcmp(name,"profile") == 0){
- m->explain= stack_get_number(m, "profile")? m_profile:m_normal;
- } else if (strcmp(name,"trace") == 0){
- m->explain= stack_get_number(m, "trace")? m_trace:m_normal;
}
return NULL;
}
@@ -168,15 +142,15 @@
}
@-
-The 'profile' table contains information on the parsing, optimization,
+The 'history' table contains information on the parsing, optimization,
and execution time. More detailed information should be obtained using
-the MonetDB kernel profiler, e.g. using Mknife
+the MonetDB kernel log, e.g. using Mknife
@c
int
-sql_create_profile(mvc *m, sql_schema *s)
+sql_create_history(mvc *m, sql_schema *s)
{
- sql_table *t = mvc_create_table(m, s, "profile", 1, SQL_GLOBAL_TEMP,
CA_PRESERVE, -1);
+ sql_table *t = mvc_create_table(m, s, "history", 1, SQL_GLOBAL_TEMP,
CA_PRESERVE, -1);
mvc_create_column_(m, t, "start", "timestamp", 0);
mvc_create_column_(m, t, "query", "varchar", 2048);
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Monetdb-sql-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-sql-checkins