Martin Kersten wrote:
> Update of /cvsroot/monetdb/MonetDB5/src/modules/mal
> In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv26834/mal
>
> Modified Files:
> batxml.mx clients.mx mal_init.mx tablet.mx txtsim.mx
> Log Message:
> Just move comments out of the way so they don't end up in the main program
> while loading the modules. This gives a polluted and confusing listing
> when e.g. the socket binding fails during the startup.
>
>
> U batxml.mx
> Index: batxml.mx
> ===================================================================
> RCS file: /cvsroot/monetdb/MonetDB5/src/modules/mal/batxml.mx,v
> retrieving revision 1.25
> retrieving revision 1.26
> diff -u -d -r1.25 -r1.26
> --- batxml.mx 10 Feb 2008 23:48:46 -0000 1.25
> +++ batxml.mx 18 Jun 2008 08:54:58 -0000 1.26
> @@ -71,10 +71,12 @@
> address BATXMLxquery
> comment "Execute the XQuery against the elements.";
>
> -#todo
> -#command xml.table(val:bat[:oid,:str],expr:str):bat[:oid,:xml]
> -#address BATXMLquery
> -#comment "Execute the XQuery against the elements";
> [EMAIL PROTECTED]
> +todo
> +command xml.table(val:bat[:oid,:str],expr:str):bat[:oid,:xml]
> +address BATXMLquery
> +comment "Execute the XQuery against the elements";
> [EMAIL PROTECTED]
>
> command xml.pi(operator:str, ret:bat[:oid,:xml]):bat[:oid,:xml]
> address XMLpi
>
> U clients.mx
> Index: clients.mx
> ===================================================================
> RCS file: /cvsroot/monetdb/MonetDB5/src/modules/mal/clients.mx,v
> retrieving revision 1.75
> retrieving revision 1.76
> diff -u -d -r1.75 -r1.76
> --- clients.mx 26 Apr 2008 22:39:44 -0000 1.75
> +++ clients.mx 18 Jun 2008 08:54:58 -0000 1.76
> @@ -26,7 +26,6 @@
> @mal
> module clients;
>
> -#Operations for all clients
> pattern setListing(flag:int):int
> address CLTsetListing
> comment "Turn on/off echo of MAL instructions:
> @@ -62,7 +61,9 @@
> address CLTexit
> comment "Terminate the session for a single client using a soft error.";
>
> -#Administrator operations
> [EMAIL PROTECTED]
> +Administrator operations
> [EMAIL PROTECTED]
> command getLogins( ):bat[:int,:str]
> address CLTLogin
> comment "Pseudo bat of client login time.";
>
> U txtsim.mx
> Index: txtsim.mx
> ===================================================================
> RCS file: /cvsroot/monetdb/MonetDB5/src/modules/mal/txtsim.mx,v
> retrieving revision 1.4
> retrieving revision 1.5
> diff -u -d -r1.4 -r1.5
> --- txtsim.mx 11 Jan 2008 10:41:38 -0000 1.4
> +++ txtsim.mx 18 Jun 2008 08:54:59 -0000 1.5
> @@ -1002,11 +1002,9 @@
> throw(MAL, "txtsim.qgramselfjoin", "could not realloc\n");
> }
>
> [EMAIL PROTECTED]
> -
> [EMAIL PROTECTED]
> #mil implementation
>
> -#mil implementation
> #proc str2qgrams(str s) : bat[oid,str]
> #{
> # s := qgramnormalize(s);
> @@ -1015,7 +1013,25 @@
> # var b := bat(str,void,len+4);
> # var i := 0;
> # var last := " ";
> +#
> +# b.insert("#",nil);
> +# b.insert("#",nil);
> +# while(i < len) {
> +# b.insert(s.string(i,1), nil);
> +# if (b.count() > 32764) break; # ignore suffix of >32KB strings
> +# i :+= 1;
> +# }
> +# b.insert("$",nil);
> +# b.insert("$",nil);
> +# b.reverse().seqbase([EMAIL PROTECTED]);
> +#
> +# var c0 := b.select([EMAIL PROTECTED], oid(b.count() - 3)).mark([EMAIL
> PROTECTED]).reverse();
> +# var c1 := b.select([EMAIL PROTECTED], oid(b.count() - 2)).mark([EMAIL
> PROTECTED]).reverse();
> +# var c2 := b.select([EMAIL PROTECTED], oid(b.count() - 1)).mark([EMAIL
> PROTECTED]).reverse();
> +# return [+](c0, [+](c1, c2));
> +#}
> #mal implementation
> [EMAIL PROTECTED]
> function str2qgrams(s:str):bat[:oid,:str];
> s := qgramnormalize(s);
>
> @@ -1024,16 +1040,8 @@
> b := bat.new(:str,:oid,len);
> i := 0;
> last := " ";
> -#
> -# b.insert("#",nil);
> -# b.insert("#",nil);
> bat.insert(b,"#",nil:oid);
> bat.insert(b,"#",nil:oid);
> -# while(i < len) {
> -# b.insert(s.string(i,1), nil);
> -# if (b.count() > 32764) break; # ignore suffix of >32KB strings
> -# i :+= 1;
> -# }
> cnt:= 0:int;
> id := calc.oid(cnt);
> barrier B:= i < len;
> @@ -1044,29 +1052,22 @@
> i := calc.+(i,1);
> redo B:= i < len;
> exit B;
> -# b.insert("$",nil);
> -# b.insert("$",nil);
> -# b.reverse().seqbase([EMAIL PROTECTED]);
> bat.insert(b,"$",nil:oid);
> bat.insert(b,"$",nil:oid);
> rev := bat.reverse (b);
> alg := algebra.markH(rev, [EMAIL PROTECTED]);
> -#
> -# var c0 := b.select([EMAIL PROTECTED], oid(b.count() - 3)).mark([EMAIL
> PROTECTED]).reverse();
> cnt := aggr.count(alg);
> cnt := calc.-(cnt,3);
> sel := algebra.select(b, [EMAIL PROTECTED], id);
> mrk := algebra.markT(sel, [EMAIL PROTECTED]);
> c0 := bat.reverse(mrk);
>
> -# var c1 := b.select([EMAIL PROTECTED], oid(b.count() - 2)).mark([EMAIL
> PROTECTED]).reverse();
> cnt := aggr.count(alg);
> cnt := calc.-(cnt,2);
> id := calc.oid(cnt);
> sel := algebra.select(b, [EMAIL PROTECTED], id);
> mrk := algebra.markT(sel, [EMAIL PROTECTED]);
> c1 := bat.reverse(mrk);
> -# var c2 := b.select([EMAIL PROTECTED], oid(b.count() - 1)).mark([EMAIL
> PROTECTED]).reverse();
> cnt := aggr.count(alg);
> cnt := calc.-(cnt,1);
> id := calc.oid(cnt);
> @@ -1074,8 +1075,6 @@
> mrk := algebra.markT(sel, [EMAIL PROTECTED]);
> c2 := bat.reverse(mrk);
>
> -# return [+](c0, [+](c1, c2));
> -#}
> res := batcalc.+(c1, c2);
> res := batcalc.+(c0, res);
>
>
> U tablet.mx
> Index: tablet.mx
> ===================================================================
> RCS file: /cvsroot/monetdb/MonetDB5/src/modules/mal/tablet.mx,v
> retrieving revision 1.121
> retrieving revision 1.122
> diff -u -d -r1.121 -r1.122
> --- tablet.mx 17 Jun 2008 21:58:18 -0000 1.121
> +++ tablet.mx 18 Jun 2008 08:54:58 -0000 1.122
> @@ -235,7 +235,6 @@
> The dump_format scripts dump a format file for a given set of
> to be dumped bats. These bats can be dumped with dump_data.
> @mal
> -# the major tablet shuffling routines
> module tablet;
>
> command load( names:bat[:oid,:str], seps:bat[:oid,:str],
> @@ -303,7 +302,9 @@
> address TABsetRowBracket
> comment "Format the brackets around a row";
>
> -# Set the column properties
> [EMAIL PROTECTED]
> +Set the column properties
> [EMAIL PROTECTED]
> pattern setColumn(idx:int, v:any_1)
> address TABsetColumn
> comment "Bind i-th output column to a variable";
> @@ -443,7 +444,7 @@
> Column columns[1]; /* at least one column,
> enlarged upon need */
> } Tablet;
>
> -tablet_export BAT *TABLETload(BAT *names, BAT *seps, BAT *types, char
> *datafile, size_t nr);
> +tablet_export BAT *TABLETload(Tablet *as, char *datafile);
> tablet_export BAT *TABLETinput(BAT *names, BAT *seps, BAT *types, bstream
> *s, stream *out, size_t nr, size_t est);
> tablet_export size_t TABLEToutput(BAT *order, BAT *seps, BAT *bats, stream
> *s);
> tablet_export void TABLETdump(BAT *names, BAT *seps, BAT *bats, char
> *datafile, size_t nr);
> @@ -451,7 +452,7 @@
> /* The low level routines are primarilly used by the SQL front-end.*/
> tablet_export int TABLETcreate_bats(Tablet * as, size_t est);
> tablet_export size_t TABLETassign_BATs(Tablet * as, BAT *bats);
> -tablet_export ssize_t TABLETload_file(Tablet * as, bstream *b, stream *out);
> +tablet_export ssize_t TABLETload_file(Tablet * as, bstream *b, stream *out,
> size_t col1, size_t col2);
> tablet_export BAT *TABLETcollect_bats(Tablet * as);
> tablet_export void TABLETdestroy_format(Tablet * as);
> tablet_export int TABLEToutput_file(Tablet * as, BAT *order, stream *s);
> @@ -459,7 +460,7 @@
> tablet_export ptr *TABLETstrFrStr(Column *c, char *s, char *e);
> tablet_export ptr *TABLETadt_frStr(void *extra, int type, char *s, char *e,
> char quote);
> tablet_export int TABLETadt_toStr(void *extra, char **buf, int *len, int
> type, ptr a);
> -tablet_export int insert_line(Tablet * as, char *line, ptr key);
> +tablet_export int insert_line(Tablet * as, char *line, ptr key, size_t col1,
> size_t col2 );
I do not see any changes on SQL to support these new function signatures.
It seems SQL compilation will be broken tomorrow morning:
r-statement -Wundef -Wp,-D_FORTIFY_SOURCE=2 -c sql_result.c -fPIC -DPIC
-o .libs/lib_sql_la-sql_result.o
/ufs/goncalve/MonetDB/current/sql/src/backends/monet5/sql_result.mx: In
function 'mvc_import_table':
/ufs/goncalve/MonetDB/current/sql/src/backends/monet5/sql_result.mx:478:
error: too few arguments to function 'TABLETload_file'
make[7]: *** [lib_sql_la-sql_result.lo] Error 1
Regards,
Romulo
> tablet_export int output_file_dense(Tablet * as, stream *fd);
> tablet_export int has_whitespace(char *sep);
>
> @@ -1376,7 +1377,7 @@
> }
>
> INLINE int
> -insert_line(Tablet * as, char *line, ptr key)
> +insert_line(Tablet * as, char *line, ptr key, size_t col1, size_t col2 )
> {
> int res = 0;
> Column *fmt = as->format;
> @@ -1422,7 +1423,8 @@
> if (!e && i == (as->nr_attrs-1))
> e = line;
> if (e) {
> - res |= insert_val(&fmt[i], s, e, quote, key,
> &as->error, i);
> + if (i>= col1 && i< col2)
> + res |= insert_val(&fmt[i], s, e, quote, key,
> &as->error, i);
> quote = 0;
> line = e + fmt[i].seplen;
> if (as->error && as->complaints)
> @@ -1606,7 +1608,7 @@
>
>
> ssize_t
> -TABLETload_file(Tablet * as, bstream *b, stream *out)
> +TABLETload_file(Tablet * as, bstream *b, stream *out, size_t col1, size_t
> col2)
> {
> int res = 0, done = 0;
> size_t i = 0;
> @@ -1640,7 +1642,7 @@
>
> if (e) {
> *e = '\0';
> - if (i>=offset && insert_line(as, s, NULL) < 0) {
> + if (i>=offset && insert_line(as, s, NULL,
> col1,col2) < 0) {
> s = e + seplen;
> b->pos = (s - b->buf);
> res = -1;
> @@ -1661,7 +1663,7 @@
> res = 1;
> if (b->len > b->pos &&
> i>=offset &&
> - insert_line(as, s, NULL) <
> 0 && !as->tryall) {
> + insert_line(as, s, NULL,
> col1,col2) < 0 && !as->tryall) {
>
> GDKerror(as->error);
> as->error=0;
>
> GDKerror("TABLETload_file: read error "
> @@ -1810,26 +1812,45 @@
> }
>
> BAT *
> -TABLETload(BAT *names, BAT *seps, BAT *types, char *datafile, size_t nr)
> +TABLETload(Tablet *as,char *datafile)
> {
> - BAT *res;
> - stream *s = open_rastream(datafile);
> + BAT *res= NULL;
> + stream *s = NULL;
> bstream *b = NULL;
> - size_t est = nr;
> + size_t est = as->nr;
> + size_t col,stride=1;
> + int error= FALSE;
>
> - if (s == NULL || stream_errnr(s)) {
> - GDKerror("could not open file %s\n", datafile);
> - if (s) {
> - stream_destroy(s);
> + if ( TABLETcreate_bats(as, est) < 0)
> + return NULL;
> +
> + if (as->nr == ~(size_t) 0)
> + est = estimator(datafile);
> [EMAIL PROTECTED]
> +Determine a good Stride for the table at hand. It should be based
> +on the number of records to be expected and the general system resources.
> [EMAIL PROTECTED]
> + for (col=0; col <as->nr_attrs; col += stride){
> + s = open_rastream(datafile);
> + if (s == NULL || stream_errnr(s)) {
> + GDKerror("could not open file %s\n", datafile);
> + if (s) {
> + stream_destroy(s);
> + }
> + return NULL;
> }
> - return NULL;
> + if (TABLETload_file(as, b = bstream_create(s, SIZE), NULL
> ,col,col+stride) < 0){
> + error= TRUE;
> + break;
> + }
> +
> + bstream_destroy(b);
> + stream_close(s);
> + stream_destroy(s);
> }
> - if (nr == ~(size_t) 0)
> - est = estimator(datafile);
> - res = TABLETinput(names, seps, types, b = bstream_create(s, SIZE),
> NULL, nr, est);
> - bstream_destroy(b);
> - stream_close(s);
> - stream_destroy(s);
> + if( error == FALSE)
> + res = TABLETcollect_bats(as);
> + TABLETdestroy_format(as);
> return res;
> }
>
> @@ -1841,8 +1862,9 @@
>
> as.nr_attrs = 0;
> as.nr = nr;
> - if (create_loadformat(&as, names, seps, types) != ~(size_t) 0 &&
> TABLETcreate_bats(&as, est) >= 0) {
> - if (TABLETload_file(&as, s, out) >= 0)
> + if (create_loadformat(&as, names, seps, types) != ~(size_t) 0 &&
> + TABLETcreate_bats(&as, est) >= 0) {
> + if (TABLETload_file(&as, s, out, 0, as.nr_attrs) >= 0)
> bats = TABLETcollect_bats(&as);
> }
> TABLETdestroy_format(&as);
> @@ -1917,10 +1939,15 @@
> tablet_load(BAT **bats, BAT *names, BAT *seps, BAT *types, str datafile, int
> *N)
> {
> size_t nr = ~(size_t)0;
> + Tablet as;
>
> if (*N >= 0)
> nr = *N;
> - *bats = TABLETload(names, seps, types, datafile, nr);
> + as.nr_attrs = 0;
> + as.nr = nr;
> +
> + if (create_loadformat(&as, names, seps, types) != ~(size_t) 0 )
> + *bats = TABLETload(&as, datafile);
> }
> static void
> tablet_input(BAT **bats, BAT *names, BAT *seps, BAT *types, void **s, int *N)
>
> U mal_init.mx
> Index: mal_init.mx
> ===================================================================
> RCS file: /cvsroot/monetdb/MonetDB5/src/modules/mal/mal_init.mx,v
> retrieving revision 1.131
> retrieving revision 1.132
> diff -u -d -r1.131 -r1.132
> --- mal_init.mx 2 May 2008 07:34:48 -0000 1.131
> +++ mal_init.mx 18 Jun 2008 08:54:58 -0000 1.132
> @@ -89,7 +89,9 @@
> library chopper;
> library txtsim;
>
> -#library logger;
> [EMAIL PROTECTED]
> +library logger;
> [EMAIL PROTECTED]
> library transaction;
>
> library mal_isolation;
> @@ -157,9 +159,13 @@
> include factory;
> include recycle;
>
> -# experimental
> [EMAIL PROTECTED]
> +experimental
> [EMAIL PROTECTED]
> include mat;
> -# the real partition handler
> [EMAIL PROTECTED]
> +the real partition handler
> [EMAIL PROTECTED]
> include bpm;
> include inspect;
> include manual;
> @@ -203,14 +209,20 @@
> include chopper;
> include txtsim;
>
> -#include logger;
> [EMAIL PROTECTED]
> +include logger;
> [EMAIL PROTECTED]
> include transaction;
>
> -#scheduler components
> [EMAIL PROTECTED]
> +scheduler components
> [EMAIL PROTECTED]
> include mal_isolation;
> include mal_memorun;
>
> -# Cracker schemes
> [EMAIL PROTECTED]
> + Cracker schemes
> [EMAIL PROTECTED]
> include opt_crack;
> include opt_joinselect;
> include opt_remoteQueries;
>
>
> -------------------------------------------------------------------------
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://sourceforge.net/services/buy/index.php
> _______________________________________________
> Monetdb-checkins mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/monetdb-checkins
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Monetdb-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-developers