Changeset: 6c003427f7c6 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6c003427f7c6
Modified Files:
        clients/mapilib/mapi.c
        sql/server/rel_bin.c
Branch: default
Log Message:

Merged from Apr2012


diffs (63 lines):

diff --git a/clients/mapilib/mapi.c b/clients/mapilib/mapi.c
--- a/clients/mapilib/mapi.c
+++ b/clients/mapilib/mapi.c
@@ -1036,6 +1036,7 @@ static int mapi_slice_row(struct MapiRes
 static void mapi_store_bind(struct MapiResultSet *result, int cr);
 static void parse_uri_query(Mapi mid, char *uri);
 static void set_uri(Mapi mid);
+static MapiMsg connect_to_server(Mapi mid);
 
 static int mapi_initialized = 0;
 
@@ -2047,10 +2048,11 @@ mapi_mapi(const char *host, int port, co
                                                tmid = mapi_mapi("/tmp", 
socks[i], "mero", "mero",
                                                                lang, dbname);
                                                tmid->redirmax = 0;
-                                               if (mapi_reconnect(tmid) == MOK 
||
-                                                               
*tmid->redirects != NULL ||
-                                                               (tmid->errorstr 
!= NULL &&
-                                                                
strstr(tmid->errorstr, "under maintenance") != NULL))
+                                               if (connect_to_server(tmid) == 
MOK &&
+                                                               
(mapi_start_talking(tmid) == MOK ||
+                                                                
*tmid->redirects != NULL ||
+                                                                
(tmid->errorstr != NULL &&
+                                                                 
strstr(tmid->errorstr, "under maintenance") != NULL)))
                                                {
                                                        host = buf;
                                                        port = socks[i];
@@ -2070,10 +2072,11 @@ mapi_mapi(const char *host, int port, co
                                                tmid = mapi_mapi("/tmp", 
socks[i], "mero", "mero",
                                                                lang, dbname);
                                                tmid->redirmax = 0;
-                                               if (mapi_reconnect(tmid) == MOK 
||
-                                                               
*tmid->redirects != NULL ||
-                                                               (tmid->errorstr 
!= NULL &&
-                                                                
strstr(tmid->errorstr, "under maintenance") != NULL))
+                                               if (connect_to_server(tmid) == 
MOK &&
+                                                               
(mapi_start_talking(tmid) == MOK ||
+                                                                
*tmid->redirects != NULL ||
+                                                                
(tmid->errorstr != NULL &&
+                                                                 
strstr(tmid->errorstr, "under maintenance") != NULL)))
                                                {
                                                        host = buf;
                                                        port = socks[i];
diff --git a/sql/server/rel_bin.c b/sql/server/rel_bin.c
--- a/sql/server/rel_bin.c
+++ b/sql/server/rel_bin.c
@@ -322,12 +322,14 @@ exp_list( mvc *sql, list *exps, stmt *l,
        node *n;
        list *nl = sa_list(sql->sa);
 
-       /* create bat append values */
        for( n = exps->h; n; n = n->next) {
                sql_exp *e = n->data;
                stmt *i = exp_bin(sql, e, l, r, grp, sel);
                
-               append(nl, i);
+               if (n->next && i && i->type == st_table) /* relational 
statement */
+                       l = i->op1;
+               else
+                       append(nl, i);
        }
        return stmt_list(sql->sa, nl);
 }
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to