Changeset: 798985dc04ad for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=798985dc04ad
Modified Files:
Branch: default
Log Message:
Merged from Aug2011
diffs (162 lines):
diff --git a/clients/mapiclient/Tests/mclient--help.stable.err.Windows
b/clients/mapiclient/Tests/mclient--help.stable.err.Windows
--- a/clients/mapiclient/Tests/mclient--help.stable.err.Windows
+++ b/clients/mapiclient/Tests/mclient--help.stable.err.Windows
@@ -26,6 +26,7 @@ Options are:
-L logfile | --log=logfile save client/server interaction
-s stmt | --statement=stmt run single statement
-X | --Xdebug trace mapi network interaction
+ -z | --timezone do not tell server our timezone
-? | --help show this usage message
SQL specific opions
diff --git a/clients/odbc/driver/SQLProcedures.c
b/clients/odbc/driver/SQLProcedures.c
--- a/clients/odbc/driver/SQLProcedures.c
+++ b/clients/odbc/driver/SQLProcedures.c
@@ -90,19 +90,20 @@ SQLProcedures_(ODBCStmt *stmt,
query_end = query;
snprintf(query_end, 1000,
- "select "
- "cast(null as varchar(1)) as \"procedure_cat\", "
- "\"s\".\"name\" as \"procedure_schem\", "
- "\"p\".\"name\" as \"procedure_name\", "
- "0 as \"num_input_params\", "
- "0 as \"num_output_params\", "
- "0 as \"num_result_sets\", "
- "cast('' as varchar(1)) as \"remarks\", "
- "cast(%d as smallint) as \"procedure_type\" "
- "from sys.\"functions\" as \"p\", sys.\"schemas\" as \"s\" "
- "where \"p\".\"schema_id\" = \"s\".\"id\" "
- "and \"p\".\"sql\" = true ",
- SQL_PT_UNKNOWN);
+ "select cast(null as varchar(1)) as \"procedure_cat\","
+ " \"s\".\"name\" as \"procedure_schem\","
+ " \"p\".\"name\" as \"procedure_name\","
+ " 0 as \"num_input_params\","
+ " 0 as \"num_output_params\","
+ " 0 as \"num_result_sets\","
+ " cast('' as varchar(1)) as \"remarks\","
+ " cast(case when \"a\".\"name\" is null then %d else %d
end as smallint) as \"procedure_type\""
+ "from \"sys\".\"schemas\" as \"s\","
+ " \"sys\".\"functions\" as \"p\" left outer join
\"sys\".\"args\" as \"a\""
+ " on \"p\".\"id\" = \"a\".\"func_id\" and
\"a\".\"name\" = 'result'"
+ "where \"p\".\"schema_id\" = \"s\".\"id\" and"
+ " \"p\".\"sql\" = true",
+ SQL_PT_PROCEDURE, SQL_PT_FUNCTION);
query_end += strlen(query_end);
/* Construct the selection condition query part */
@@ -175,7 +176,7 @@ SQLProcedures_(ODBCStmt *stmt,
/* add the ordering */
strcpy(query_end,
- "order by \"procedure_cat\", \"procedure_schem\",
\"procedure_name\"");
+ " order by \"procedure_cat\", \"procedure_schem\",
\"procedure_name\"");
query_end += strlen(query_end);
/* query the MonetDB data dictionary tables */
diff --git a/tools/merovingian/ChangeLog.Aug2011
b/tools/merovingian/ChangeLog.Aug2011
--- a/tools/merovingian/ChangeLog.Aug2011
+++ b/tools/merovingian/ChangeLog.Aug2011
@@ -1,6 +1,14 @@
# ChangeLog file for sql/src/backends/monet5/merovingian
# This file is updated with mchangelog
+* Fri Aug 19 2011 Fabian Groffen <[email protected]>
+- The path to the mserver5 binary is no longer returned for the mserver
+ property with monetdbd get for a dbfarm which is currently served by
+ a monetdbd. Since the called monetdbd needs not to be the same as
+ the running monetdbd, the reported mserver5 binary may be incorrect,
+ and obviously lead to confusing situations. Refer to the running
+ monetdbd's logfile to determine the mserver5 binary location instead.
+
* Wed Aug 17 2011 Fabian Groffen <[email protected]>
- Added -n option to monetdbd start command, which prevents monetdbd
from forking into the background.
diff --git a/tools/merovingian/daemon/argvcmds.c
b/tools/merovingian/daemon/argvcmds.c
--- a/tools/merovingian/daemon/argvcmds.c
+++ b/tools/merovingian/daemon/argvcmds.c
@@ -153,6 +153,7 @@ command_get(confkeyval *ckv, int argc, c
char buf[512];
char vbuf[512];
confkeyval *kv;
+ int meropid = -1;
if (argc < 2 || argc > 3) {
command_help(2, &argv[-1]);
@@ -194,13 +195,40 @@ command_get(confkeyval *ckv, int argc, c
return(1);
}
+ if (strstr(property, "status") != NULL ||
+ strstr(property, "mserver") != NULL)
+ {
+ /* check if there is a merovingian serving this dbfarm */
+ int ret;
+ if ((ret = MT_lockf(".merovingian_lock", F_TLOCK, 4, 1)) == -1)
{
+ /* locking failed, merovingian is running */
+ FILE *pf;
+ char *pfile = getConfVal(ckv, "pidfile");
+
+ if (pfile != NULL && (pf = fopen(pfile, "r")) != NULL &&
+ fgets(buf, sizeof(buf), pf) != NULL)
+ {
+ meropid = atoi(buf);
+ }
+ } else {
+ if (ret >= 0)
+ close(ret); /* release a possible lock */
+ meropid = 0;
+ }
+ }
+
printf(" property value\n");
while ((p = strtok(property, ",")) != NULL) {
property = NULL;
if (strcmp(p, "dbfarm") == 0) {
value = dbfarm;
} else if (strcmp(p, "mserver") == 0) {
- value = _mero_mserver;
+ if (meropid == 0) {
+ value = _mero_mserver;
+ } else {
+ value = "binary in use cannot be determined "
+ "for a running monetdbd";
+ }
} else if (strcmp(p, "hostname") == 0) {
value = _mero_hostname;
} else if (strcmp(p, "mapisock") == 0) {
@@ -218,26 +246,14 @@ command_get(confkeyval *ckv, int argc, c
value, kv->ival);
value = buf;
} else if (strcmp(p, "status") == 0) {
- /* check if there is a merovingian serving this dbfarm
*/
- int ret;
- if ((ret = MT_lockf(".merovingian_lock", F_TLOCK, 4,
1)) == -1) {
- /* locking failed, merovingian is running */
- FILE *pf;
- char *pfile = getConfVal(ckv, "pidfile");
-
- if (pfile != NULL && (pf = fopen(pfile, "r"))
!= NULL &&
- fgets(buf, sizeof(buf), pf) !=
NULL)
- {
- int meropid = atoi(buf);
- snprintf(buf, sizeof(buf),
"monetdbd[%d] is serving this dbfarm", meropid);
- value = buf;
- } else {
- value = "a monetdbd is serving this
dbfarm, "
- "but a pidfile was not found/is
corrupt";
- }
+ if (meropid > 0) {
+ snprintf(buf, sizeof(buf),
+ "monetdbd[%d] is serving this
dbfarm", meropid);
+ value = buf;
+ } else if (meropid < 0) {
+ value = "a monetdbd is serving this dbfarm, "
+ "but a pidfile was not found/is
corrupt";
} else {
- if (ret >= 0)
- close(ret); /* release a possible lock
*/
value = "no monetdbd is serving this dbfarm";
}
} else {
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list