|
3 | 3 | * procedural language
|
4 | 4 | *
|
5 | 5 | * IDENTIFICATION
|
6 |
| - * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_funcs.c,v 1.17 2001/11/15 23:31:09 tgl Exp $ |
| 6 | + * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_funcs.c,v 1.18 2002/05/05 17:38:26 tgl Exp $ |
7 | 7 | *
|
8 | 8 | * This software is copyrighted by Jan Wieck - Hamburg.
|
9 | 9 | *
|
@@ -64,6 +64,7 @@ plpgsql_dstring_init(PLpgSQL_dstring * ds)
|
64 | 64 | {
|
65 | 65 | ds->value=palloc(ds->alloc=512);
|
66 | 66 | ds->used=0;
|
| 67 | +ds->value[0]='\0'; |
67 | 68 | }
|
68 | 69 |
|
69 | 70 |
|
|
86 | 87 | plpgsql_dstring_append(PLpgSQL_dstring*ds,char*str)
|
87 | 88 | {
|
88 | 89 | intlen=strlen(str);
|
| 90 | +intneeded=ds->used+len+1; |
89 | 91 |
|
90 |
| -if (ds->used+len+1>ds->alloc) |
| 92 | +if (needed>ds->alloc) |
91 | 93 | {
|
92 |
| -ds->alloc *=2; |
| 94 | +/* might have to double more than once, if len is large */ |
| 95 | +do { |
| 96 | +ds->alloc *=2; |
| 97 | +}while (needed>ds->alloc); |
93 | 98 | ds->value=repalloc(ds->value,ds->alloc);
|
94 | 99 | }
|
95 | 100 |
|
|