On 2011-08-04 15:43, Fabian Groffen wrote: > Changeset: ab7648679187 for MonetDB > URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ab7648679187 > Modified Files: > sql/backends/monet5/sql_gencode.c > Branch: Aug2011 > Log Message: > > _dumpstmt: avoid alloca by using fixed buffer like dump_header > > 512 bytes aparently is considered enough here. This may bite us > someday, since our specs define column, table and schema names each to > be 1024 bytes wide at max. > > > diffs (19 lines): > > diff --git a/sql/backends/monet5/sql_gencode.c > b/sql/backends/monet5/sql_gencode.c > --- a/sql/backends/monet5/sql_gencode.c > +++ b/sql/backends/monet5/sql_gencode.c > @@ -1778,13 +1778,9 @@ _dumpstmt(backend *sql, MalBlkPtr mb, st > char *cn = column_name(sql->mvc->sa, c); > char *ntn = sql_escape_ident(tn); > char *nsn = sql_escape_ident(sn); > - char *fqtn = alloca(sizeof(char) * > (strlen(nsn) + 1 + > - strlen(ntn) + > 1)); > + char fqtn[512]; > > - fqtn[0]=0; > - strcat(fqtn, nsn); > - strcat(fqtn, "."); > - strcat(fqtn, ntn); > + snprintf(fqtn, 512, "%s.%s", nsn, ntn);
I would use sizeof(fqtn) here so that you only need to change the value once (when you change it). > q = newStmt2(mb, sqlRef, > exportValueRef); > s->nr = getDestVar(q); > q = pushInt(mb, q, sql->mvc->type); > _______________________________________________ > Checkin-list mailing list > [email protected] > http://mail.monetdb.org/mailman/listinfo/checkin-list -- Sjoerd Mullender _______________________________________________ Checkin-list mailing list [email protected] http://mail.monetdb.org/mailman/listinfo/checkin-list
