[Monetdb-developers] [Monetdb-checkins] clients/src/mapiclient MapiClient.mx, , 1.73, 1.74

Martin Kersten Martin.Kersten at cwi.nl
Tue Aug 28 11:04:18 CEST 2007


Sjoerd Mullender wrote:
> Wrong on (almost) all counts.  It's amazing.
Most of it is a concurrency conflict for which I warned upfront in an
email that checkins where pending.
I only removed the conflict lines that result from your (too-quick)
actions.

Moreover, it is more than just mclient code. It is proper handling
at all levels in a situation where different readers emerged
over time.
In particular the overloaded '?' in the MAL context and debugging.
None of the check-ins proofed that testing was carried even close
to this level.

> 
> Martin Kersten wrote:
>> Update of /cvsroot/monetdb/clients/src/mapiclient
>> In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv10235
>>
>> Modified Files:
>> 	MapiClient.mx 
>> Log Message:
>> Move the mode change into one place. Set the default rendering of MAL to
> 
> This I had already done in the previous checkin, but better because more
> complete
Beginning of a debugging session can start any time, should be trapped
and was not done at all places. So be defensive.

> 
>> align with the console. Best option still is to make mclient part of
> 
> This is debatable.
> 
>> the server too. 
> 
> This has *nothing* to do with this checkin (and is debatable anyway).
It has to do with understanding of the implications of the functionality
provided.

> 
>>
>> Index: MapiClient.mx
>> ===================================================================
>> RCS file: /cvsroot/monetdb/clients/src/mapiclient/MapiClient.mx,v
>> retrieving revision 1.73
>> retrieving revision 1.74
>> diff -u -d -r1.73 -r1.74
>> --- MapiClient.mx	28 Aug 2007 07:43:07 -0000	1.73
>> +++ MapiClient.mx	28 Aug 2007 08:03:57 -0000	1.74
>> @@ -243,6 +243,15 @@
>>  }
>>  
>>  static void
>> +modeChange(char *reply){
>> +	if (strstr(reply, "mdb>#EOD")){
>> +		setPrompt();
>> +	} else
>> +	if(strncmp(reply,"mdb>",4)==0)
>> +		sprintf(promptbuf,"mdb>");
>> +}
>> +
>> +static void
>>  SQLsetSpecial(const char *command)
>>  {
>>  	if (mode == SQL && command) {
>> @@ -371,6 +380,7 @@
>>  	do {
>>  		if ((reply = fetch_line(hdl)) == NULL)
>>  			return 0;
>> +		modeChange(reply);
>>  	} while (*reply != '[' && *reply != '=');
>>  	return mapi_split_line(hdl);
>>  }
> 
> Now the change is checked twice.
modechange was there, because row-fetch-line as
called in my version. This was not marked as a conflict.
> 
>> @@ -412,7 +422,8 @@
>>  {
>>  	char *line;
>>  
>> -	while ((line = fetch_line(hdl)) != 0) {
>> +	while ((line = mapi_fetch_line(hdl)) != 0) {
>> +		modeChange(line);
>>  		if (*line == '=')
>>  			line++;
>>  		fprintf(toConsole, "%s\n", line);
> 
> Why did you undo my change which did this already?
> 
>> @@ -1310,7 +1321,7 @@
>>  					continue;
>>  				}
>>  				case '?':
>> -					if (!isspace((int) line[2]) && mode == MAL) {
>> +					if (mode==MAL ||debugMode() ){
>>  						strcpy(line, line + 1);
>>  						break;
>>  					}
> 
> This is the only part of the checkin that has merit, except a comment
> that the line with ? is sent to the server might be useful.
> 
>> @@ -1756,7 +1767,8 @@
>>  
>>  	/* default formatter depends on whether we're interactive */
>>  	if (formatter == NOformatter)
>> -		formatter = interactive && interactive_stdin && mode != XQUERY ? TABLEformatter : RAWformatter;
>> +		formatter = interactive && interactive_stdin && mode != XQUERY ?
>> +		(mode==MAL?RAWformatter: TABLEformatter) : RAWformatter;
>>  
>>  	if (command) {
>>  		/* execute from command-line */
>>
>>
> 
> If you really insist that in MAL mode the default should be RAW, then
> write it like this:
> 
> formatter = interactive && interactive_stdin && mode != XQUERY && mode
> != MAL ? TABLEformatter : RAWformatter;
> 
>> -------------------------------------------------------------------------
>> 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-checkins mailing list
>> Monetdb-checkins at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/monetdb-checkins
> 
> 
> 
> ------------------------------------------------------------------------
> 
> -------------------------------------------------------------------------
> 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-checkins mailing list
> Monetdb-checkins at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/monetdb-checkins





More information about the developers-list mailing list