Changeset: c5f51089e9fa for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c5f51089e9fa
Removed Files:
sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.sql
sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.err
sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.out
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
clients/Tests/exports.stable.out
monetdb5/ChangeLog
monetdb5/mal/mal.c
monetdb5/mal/mal_authorize.c
monetdb5/mal/mal_authorize.h
monetdb5/mal/mal_client.c
monetdb5/mal/mal_instruction.c
monetdb5/mal/mal_instruction.h
monetdb5/mal/mal_module.c
monetdb5/mal/mal_parser.c
monetdb5/mal/mal_session.c
monetdb5/modules/atoms/batxml.c
monetdb5/modules/atoms/inet.c
monetdb5/modules/kernel/batcolor.c
monetdb5/modules/kernel/batstr.c
monetdb5/modules/mal/clients.c
sql/backends/monet5/mal_backend.c
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql.h
sql/backends/monet5/sql_cat.c
sql/backends/monet5/sql_execute.c
sql/backends/monet5/sql_gencode.c
sql/backends/monet5/sql_gencode.h
sql/backends/monet5/sql_scenario.c
sql/backends/monet5/sql_statement.c
sql/backends/monet5/sql_statement.h
sql/backends/monet5/sql_user.c
sql/backends/monet5/sqlcatalog.mal
sql/server/rel_psm.c
sql/server/rel_schema.c
sql/server/rel_sequence.c
sql/storage/store.c
sql/test/BugTracker-2009/Tests/All
sql/test/BugTracker-2010/Tests/error-truncated.Bug-2615.stable.err.Darwin
sql/test/BugTracker-2010/Tests/error-truncated.Bug-2615.stable.err.Windows
sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.32bit
tools/merovingian/daemon/controlrunner.c
tools/mserver/mserver5.c
tools/mserver/shutdowntest.c
Branch: batcalc-candidates
Log Message:
Merge with default branch.
diffs (truncated from 2532 to 300 lines):
diff --git a/clients/Tests/MAL-signatures.stable.out
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -8463,19 +8463,19 @@ Ready.
[ "sqlblob", "sqlblob", "command sqlblob.sqlblob(s:str):sqlblob ",
"BLOBsqlblob_fromstr;", "" ]
[ "sqlcatalog", "alter_add_table", "pattern
sqlcatalog.alter_add_table(sname:str, mtnme:str, psnme:str, ptnme:str,
action:int):void ", "SQLalter_add_table;", "Catalog operation
alter_add_table" ]
[ "sqlcatalog", "alter_del_table", "pattern
sqlcatalog.alter_del_table(sname:str, mtnme:str, psnme:str, ptnme:str,
action:int):void ", "SQLalter_del_table;", "Catalog operation
alter_del_table" ]
-[ "sqlcatalog", "alter_seq", "pattern
sqlcatalog.alter_seq(sname:str, seq:ptr, val:lng):void ", "SQLalter_seq;",
"Catalog operation alter_seq" ]
+[ "sqlcatalog", "alter_seq", "pattern
sqlcatalog.alter_seq(sname:str, seqname:str, seq:ptr, val:lng):void ",
"SQLalter_seq;", "Catalog operation alter_seq" ]
[ "sqlcatalog", "alter_set_table", "pattern
sqlcatalog.alter_set_table(sname:str, tnme:str, access:int):void ",
"SQLalter_set_table;", "Catalog operation alter_set_table" ]
-[ "sqlcatalog", "alter_table", "pattern
sqlcatalog.alter_table(sname:str, tbl:ptr, action:int):void ",
"SQLalter_table;", "Catalog operation alter_table" ]
+[ "sqlcatalog", "alter_table", "pattern
sqlcatalog.alter_table(sname:str, tname:str, tbl:ptr, action:int):void ",
"SQLalter_table;", "Catalog operation alter_table" ]
[ "sqlcatalog", "alter_user", "pattern
sqlcatalog.alter_user(sname:str, passwrd:str, enc:int, schema:str,
oldpasswrd:str):void ", "SQLalter_user;", "Catalog operation
alter_user" ]
-[ "sqlcatalog", "create_function", "pattern
sqlcatalog.create_function(sname:str, fcn:ptr):void ", "SQLcreate_function;",
"Catalog operation create_function" ]
+[ "sqlcatalog", "create_function", "pattern
sqlcatalog.create_function(sname:str, fname:str, fcn:ptr):void ",
"SQLcreate_function;", "Catalog operation create_function" ]
[ "sqlcatalog", "create_role", "pattern
sqlcatalog.create_role(sname:str, role:str, grator:int):void ",
"SQLcreate_role;", "Catalog operation create_role" ]
[ "sqlcatalog", "create_schema", "pattern
sqlcatalog.create_schema(sname:str, auth:str, action:int):void ",
"SQLcreate_schema;", "Catalog operation create_schema" ]
-[ "sqlcatalog", "create_seq", "pattern
sqlcatalog.create_seq(sname:str, seq:ptr, action:int):void ",
"SQLcreate_seq;", "Catalog operation create_seq" ]
-[ "sqlcatalog", "create_table", "pattern
sqlcatalog.create_table(sname:str, tbl:ptr, temp:int):void ",
"SQLcreate_table;", "Catalog operation create_table" ]
+[ "sqlcatalog", "create_seq", "pattern
sqlcatalog.create_seq(sname:str, seqname:str, seq:ptr, action:int):void ",
"SQLcreate_seq;", "Catalog operation create_seq" ]
+[ "sqlcatalog", "create_table", "pattern
sqlcatalog.create_table(sname:str, tname:str, tbl:ptr, temp:int):void ",
"SQLcreate_table;", "Catalog operation create_table" ]
[ "sqlcatalog", "create_trigger", "pattern
sqlcatalog.create_trigger(sname:str, tname:str, triggername:str, time:int,
orientation:int, event:int, old:str, new:str, cond:str, qry:str):void ",
"SQLcreate_trigger;", "Catalog operation create_trigger" ]
[ "sqlcatalog", "create_type", "pattern
sqlcatalog.create_type(sname:str, nme:str, impl:str):void ",
"SQLcreate_type;", "Catalog operation create_type" ]
[ "sqlcatalog", "create_user", "pattern
sqlcatalog.create_user(sname:str, passwrd:str, enc:int, schema:str,
fullname:str):void ", "SQLcreate_user;", "Catalog operation
create_user" ]
-[ "sqlcatalog", "create_view", "pattern
sqlcatalog.create_view(sname:str, tbl:ptr, temp:int):void ",
"SQLcreate_view;", "Catalog operation create_view" ]
+[ "sqlcatalog", "create_view", "pattern
sqlcatalog.create_view(sname:str, vname:str, tbl:ptr, temp:int):void ",
"SQLcreate_view;", "Catalog operation create_view" ]
[ "sqlcatalog", "drop_constraint", "pattern
sqlcatalog.drop_constraint(sname:str, name:str, action:int):void ",
"SQLdrop_constraint;", "Catalog operation drop_constraint" ]
[ "sqlcatalog", "drop_function", "pattern
sqlcatalog.drop_function(sname:str, fname:str, fid:int, type:int,
action:int):void ", "SQLdrop_function;", "Catalog operation drop_function"
]
[ "sqlcatalog", "drop_index", "pattern
sqlcatalog.drop_index(sname:str, iname:str, action:int):void ",
"SQLdrop_index;", "Catalog operation drop_index" ]
@@ -8654,8 +8654,6 @@ Ready.
[ "url", "url", "command url.url(s:url):url ", "URLnoop;", "Create
an URL from a string literal" ]
[ "user", "main", "function user.main():void;", "", "" ]
[ "user", "main", "function user.main():void;", "", "" ]
-[ "user", "main", "function user.main():void;", "", "" ]
-[ "user", "main", "function user.main():void;", "", "" ]
[ "user", "s2_1", "function user.s2_1():void;", "", "" ]
[ "uuid", "#cmp", "command uuid.#cmp():void ", "UUIDcompare;", ""
]
[ "uuid", "#fromstr", "command uuid.#fromstr():void ",
"UUIDfromString;", "" ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -10827,19 +10827,19 @@ Ready.
[ "sqlblob", "sqlblob", "command sqlblob.sqlblob(s:str):sqlblob ",
"BLOBsqlblob_fromstr;", "" ]
[ "sqlcatalog", "alter_add_table", "pattern
sqlcatalog.alter_add_table(sname:str, mtnme:str, psnme:str, ptnme:str,
action:int):void ", "SQLalter_add_table;", "Catalog operation
alter_add_table" ]
[ "sqlcatalog", "alter_del_table", "pattern
sqlcatalog.alter_del_table(sname:str, mtnme:str, psnme:str, ptnme:str,
action:int):void ", "SQLalter_del_table;", "Catalog operation
alter_del_table" ]
-[ "sqlcatalog", "alter_seq", "pattern
sqlcatalog.alter_seq(sname:str, seq:ptr, val:lng):void ", "SQLalter_seq;",
"Catalog operation alter_seq" ]
+[ "sqlcatalog", "alter_seq", "pattern
sqlcatalog.alter_seq(sname:str, seqname:str, seq:ptr, val:lng):void ",
"SQLalter_seq;", "Catalog operation alter_seq" ]
[ "sqlcatalog", "alter_set_table", "pattern
sqlcatalog.alter_set_table(sname:str, tnme:str, access:int):void ",
"SQLalter_set_table;", "Catalog operation alter_set_table" ]
-[ "sqlcatalog", "alter_table", "pattern
sqlcatalog.alter_table(sname:str, tbl:ptr, action:int):void ",
"SQLalter_table;", "Catalog operation alter_table" ]
+[ "sqlcatalog", "alter_table", "pattern
sqlcatalog.alter_table(sname:str, tname:str, tbl:ptr, action:int):void ",
"SQLalter_table;", "Catalog operation alter_table" ]
[ "sqlcatalog", "alter_user", "pattern
sqlcatalog.alter_user(sname:str, passwrd:str, enc:int, schema:str,
oldpasswrd:str):void ", "SQLalter_user;", "Catalog operation
alter_user" ]
-[ "sqlcatalog", "create_function", "pattern
sqlcatalog.create_function(sname:str, fcn:ptr):void ", "SQLcreate_function;",
"Catalog operation create_function" ]
+[ "sqlcatalog", "create_function", "pattern
sqlcatalog.create_function(sname:str, fname:str, fcn:ptr):void ",
"SQLcreate_function;", "Catalog operation create_function" ]
[ "sqlcatalog", "create_role", "pattern
sqlcatalog.create_role(sname:str, role:str, grator:int):void ",
"SQLcreate_role;", "Catalog operation create_role" ]
[ "sqlcatalog", "create_schema", "pattern
sqlcatalog.create_schema(sname:str, auth:str, action:int):void ",
"SQLcreate_schema;", "Catalog operation create_schema" ]
-[ "sqlcatalog", "create_seq", "pattern
sqlcatalog.create_seq(sname:str, seq:ptr, action:int):void ",
"SQLcreate_seq;", "Catalog operation create_seq" ]
-[ "sqlcatalog", "create_table", "pattern
sqlcatalog.create_table(sname:str, tbl:ptr, temp:int):void ",
"SQLcreate_table;", "Catalog operation create_table" ]
+[ "sqlcatalog", "create_seq", "pattern
sqlcatalog.create_seq(sname:str, seqname:str, seq:ptr, action:int):void ",
"SQLcreate_seq;", "Catalog operation create_seq" ]
+[ "sqlcatalog", "create_table", "pattern
sqlcatalog.create_table(sname:str, tname:str, tbl:ptr, temp:int):void ",
"SQLcreate_table;", "Catalog operation create_table" ]
[ "sqlcatalog", "create_trigger", "pattern
sqlcatalog.create_trigger(sname:str, tname:str, triggername:str, time:int,
orientation:int, event:int, old:str, new:str, cond:str, qry:str):void ",
"SQLcreate_trigger;", "Catalog operation create_trigger" ]
[ "sqlcatalog", "create_type", "pattern
sqlcatalog.create_type(sname:str, nme:str, impl:str):void ",
"SQLcreate_type;", "Catalog operation create_type" ]
[ "sqlcatalog", "create_user", "pattern
sqlcatalog.create_user(sname:str, passwrd:str, enc:int, schema:str,
fullname:str):void ", "SQLcreate_user;", "Catalog operation
create_user" ]
-[ "sqlcatalog", "create_view", "pattern
sqlcatalog.create_view(sname:str, tbl:ptr, temp:int):void ",
"SQLcreate_view;", "Catalog operation create_view" ]
+[ "sqlcatalog", "create_view", "pattern
sqlcatalog.create_view(sname:str, vname:str, tbl:ptr, temp:int):void ",
"SQLcreate_view;", "Catalog operation create_view" ]
[ "sqlcatalog", "drop_constraint", "pattern
sqlcatalog.drop_constraint(sname:str, name:str, action:int):void ",
"SQLdrop_constraint;", "Catalog operation drop_constraint" ]
[ "sqlcatalog", "drop_function", "pattern
sqlcatalog.drop_function(sname:str, fname:str, fid:int, type:int,
action:int):void ", "SQLdrop_function;", "Catalog operation drop_function"
]
[ "sqlcatalog", "drop_index", "pattern
sqlcatalog.drop_index(sname:str, iname:str, action:int):void ",
"SQLdrop_index;", "Catalog operation drop_index" ]
@@ -11019,8 +11019,6 @@ Ready.
[ "url", "url", "command url.url(s:url):url ", "URLnoop;", "Create
an URL from a string literal" ]
[ "user", "main", "function user.main():void;", "", "" ]
[ "user", "main", "function user.main():void;", "", "" ]
-[ "user", "main", "function user.main():void;", "", "" ]
-[ "user", "main", "function user.main():void;", "", "" ]
[ "user", "s2_1", "function user.s2_1():void;", "", "" ]
[ "uuid", "#cmp", "command uuid.#cmp():void ", "UUIDcompare;", ""
]
[ "uuid", "#fromstr", "command uuid.#fromstr():void ",
"UUIDfromString;", "" ]
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -740,19 +740,19 @@ str ALGunique1(bat *result, const bat *b
str ALGunique2(bat *result, const bat *bid, const bat *sid);
str ALGvariance(dbl *res, const bat *bid);
str ALGvariancep(dbl *res, const bat *bid);
-str AUTHaddUser(oid *ret, Client c, str *user, str *pass);
-str AUTHchangePassword(Client c, str *oldpass, str *passwd);
-str AUTHchangeUsername(Client c, str *olduser, str *newuser);
-str AUTHcheckCredentials(oid *ret, Client c, str *user, str *passwd, str
*challenge, str *algo);
-str AUTHgetPasswordHash(str *ret, Client c, str *username);
+str AUTHaddUser(oid *ret, Client c, const char *user, const char *pass);
+str AUTHchangePassword(Client c, const char *oldpass, const char *passwd);
+str AUTHchangeUsername(Client c, const char *olduser, const char *newuser);
+str AUTHcheckCredentials(oid *ret, Client c, const char *user, const char
*passwd, const char *challenge, const char *algo);
+str AUTHgetPasswordHash(str *ret, Client c, const char *username);
str AUTHgetUsername(str *ret, Client c);
str AUTHgetUsers(BAT **ret1, BAT **ret2, Client c);
-str AUTHinitTables(str *passwd);
-str AUTHremoveUser(Client c, str *username);
+str AUTHinitTables(const char *passwd);
+str AUTHremoveUser(Client c, const char *username);
void AUTHreset(void) __attribute__((__visibility__("hidden")));
-str AUTHresolveUser(str *ret, oid *uid);
-str AUTHsetPassword(Client c, str *username, str *passwd);
-str AUTHunlockVault(str *password);
+str AUTHresolveUser(str *ret, oid uid);
+str AUTHsetPassword(Client c, const char *username, const char *passwd);
+str AUTHunlockVault(const char *password);
str BATPCREilike(bat *ret, const bat *b, const str *pat, const str *esc);
str BATPCREilike2(bat *ret, const bat *b, const str *pat);
str BATPCRElike(bat *ret, const bat *b, const str *pat, const str *esc);
@@ -1177,7 +1177,7 @@ str INETnetmask(inet *retval, const inet
str INETnetwork(inet *retval, const inet *val);
str INETnew(inet *retval, str *in);
inet *INETnull(void);
-str INETsetmasklen(inet *retval, const inet *val, const int *mask);
+str INETsetmasklen(inet *retval, const inet *val, const int *msk);
str INETtext(str *retval, const inet *val);
int INETtoString(str *retval, int *len, const inet *handle);
str INSPECTatom_names(bat *ret);
@@ -2263,7 +2263,6 @@ MT_Lock mal_delayLock;
void mal_exit(void);
void mal_factory_reset(void) __attribute__((__visibility__("hidden")));
int mal_init(void);
-void mal_instruction_reset(void);
void mal_linker_reset(void) __attribute__((__visibility__("hidden")));
void mal_module_reset(void) __attribute__((__visibility__("hidden")));
void mal_namespace_reset(void) __attribute__((__visibility__("hidden")));
diff --git a/monetdb5/ChangeLog b/monetdb5/ChangeLog
--- a/monetdb5/ChangeLog
+++ b/monetdb5/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog file for MonetDB5
# This file is updated with Maddlog
+* Thu Jan 5 2017 Sjoerd Mullender <[email protected]>
+- Changed the interfaces of the AUTH* functions: pass values, not pointers
+ to values.
+
* Tue Dec 13 2016 Sjoerd Mullender <[email protected]>
- Removed calc.setoid().
- group.subgroup is now called group.group if it is not refining a group.
diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c
--- a/monetdb5/mal/mal.c
+++ b/monetdb5/mal/mal.c
@@ -151,12 +151,12 @@ void mserver_reset(int exit)
GDKfree(mal_clients->prompt);
GDKfree(mal_clients->username);
freeStack(mal_clients->glb);
+ freeSymbol(mal_clients->curprg);
mal_client_reset();
mal_linker_reset();
mal_resource_reset();
mal_runtime_reset();
mal_module_reset();
- mal_instruction_reset();
memset((char*)monet_cwd,0, sizeof(monet_cwd));
monet_memory = 0;
diff --git a/monetdb5/mal/mal_authorize.c b/monetdb5/mal/mal_authorize.c
--- a/monetdb5/mal/mal_authorize.c
+++ b/monetdb5/mal/mal_authorize.c
@@ -39,9 +39,9 @@
#endif
#endif
-static str AUTHdecypherValue(str *ret, str *value);
-static str AUTHcypherValue(str *ret, str *value);
-static str AUTHverifyPassword(str *passwd);
+static str AUTHdecypherValue(str *ret, const char *value);
+static str AUTHcypherValue(str *ret, const char *value);
+static str AUTHverifyPassword(const char *passwd);
static BAT *user = NULL;
static BAT *pass = NULL;
@@ -74,7 +74,7 @@ AUTHfindUser(const char *username)
if (BUNfnd(duser, &pos) == BUN_NONE)
return p;
}
- }
+ }
return BUN_NONE;
}
@@ -91,12 +91,13 @@ AUTHrequireAdmin(Client cntxt) {
id = cntxt->user;
if (id != 0) {
- char u[BUFSIZ] = "";
- str user = u;
+ str user = NULL;
str tmp;
- rethrow("requireAdmin", tmp, AUTHresolveUser(&user, &id));
- throw(INVCRED, "requireAdmin", INVCRED_ACCESS_DENIED " '%s'",
user);
+ rethrow("requireAdmin", tmp, AUTHresolveUser(&user, id));
+ tmp = createException(INVCRED, "requireAdmin",
INVCRED_ACCESS_DENIED " '%s'", user);
+ GDKfree(user);
+ return tmp;
}
return(MAL_SUCCEED);
@@ -108,20 +109,21 @@ AUTHrequireAdmin(Client cntxt) {
* InvalidCredentialsException.
*/
static str
-AUTHrequireAdminOrUser(Client cntxt, str *username) {
+AUTHrequireAdminOrUser(Client cntxt, const char *username) {
oid id = cntxt->user;
- char u[BUFSIZ] = "";
- str user = u;
+ str user = NULL;
str tmp = MAL_SUCCEED;
/* root? then all is well */
if (id == 0)
return(MAL_SUCCEED);
- rethrow("requireAdminOrUser", tmp, AUTHresolveUser(&user, &id));
- if (username == NULL || *username == NULL || strcmp(*username, user) !=
0) {
+ rethrow("requireAdminOrUser", tmp, AUTHresolveUser(&user, id));
+ if (username == NULL || strcmp(username, user) != 0) {
+ GDKfree(user);
throw(INVCRED, "requireAdminOrUser", INVCRED_ACCESS_DENIED "
'%s'", user);
}
+ GDKfree(user);
return(MAL_SUCCEED);
}
@@ -152,7 +154,7 @@ AUTHcommit(void)
* after the GDK kernel has been initialized.
*/
str
-AUTHinitTables(str *passwd) {
+AUTHinitTables(const char *passwd) {
bat bid;
int isNew = 1;
str msg = MAL_SUCCEED;
@@ -224,15 +226,14 @@ AUTHinitTables(str *passwd) {
if (isNew == 1) {
/* insert the monetdb/monetdb administrator account on a
* complete fresh and new auth tables system */
- str user = "monetdb";
- str pw = "monetdb";
+ char *pw;
oid uid;
Client c = &mal_clients[0];
- if (passwd != NULL && *passwd != NULL)
- pw = *passwd;
- pw = mcrypt_BackendSum(pw, strlen(pw));
- msg = AUTHaddUser(&uid, c, &user, &pw);
+ if (passwd == NULL)
+ passwd = "monetdb"; /* default password */
+ pw = mcrypt_BackendSum(passwd, strlen(passwd));
+ msg = AUTHaddUser(&uid, c, "monetdb", pw);
free(pw);
if (msg)
return msg;
@@ -252,10 +253,10 @@ str
AUTHcheckCredentials(
oid *uid,
Client cntxt,
- str *username,
- str *passwd,
- str *challenge,
- str *algo)
+ const char *username,
+ const char *passwd,
+ const char *challenge,
+ const char *algo)
{
str tmp;
str pwd = NULL;
@@ -267,21 +268,21 @@ AUTHcheckCredentials(
assert(user);
assert(pass);
- if (*username == NULL || strNil(*username))
+ if (username == NULL || strNil(username))
throw(INVCRED, "checkCredentials", "invalid credentials for
unknown user");
- p = AUTHfindUser(*username);
+ p = AUTHfindUser(username);
if (p == BUN_NONE) {
/* DO NOT reveal that the user doesn't exist here! */
- throw(INVCRED, "checkCredentials", INVCRED_INVALID_USER "
'%s'", *username);
+ throw(INVCRED, "checkCredentials", INVCRED_INVALID_USER "
'%s'", username);
}
/* a NULL password is impossible (since we should be dealing with
* hashes here) so we can bail out immediately
*/
- if (*passwd == NULL || strNil(*passwd)) {
+ if (passwd == NULL || strNil(passwd)) {
/* DO NOT reveal that the password is NULL here! */
- throw(INVCRED, "checkCredentials", INVCRED_INVALID_USER "
'%s'", *username);
+ throw(INVCRED, "checkCredentials", INVCRED_INVALID_USER "
'%s'", username);
}
/* find the corresponding password to the user */
@@ -289,15 +290,15 @@ AUTHcheckCredentials(
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list