Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc0e9dc1

Browse files
committed
plpgsql_dstring_append was broken for long strings.
1 parent846429e commitc0e9dc1

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

‎src/pl/plpgsql/src/pl_funcs.c

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* procedural language
44
*
55
* 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 $
77
*
88
* This software is copyrighted by Jan Wieck - Hamburg.
99
*
@@ -64,6 +64,7 @@ plpgsql_dstring_init(PLpgSQL_dstring * ds)
6464
{
6565
ds->value=palloc(ds->alloc=512);
6666
ds->used=0;
67+
ds->value[0]='\0';
6768
}
6869

6970

@@ -86,10 +87,14 @@ void
8687
plpgsql_dstring_append(PLpgSQL_dstring*ds,char*str)
8788
{
8889
intlen=strlen(str);
90+
intneeded=ds->used+len+1;
8991

90-
if (ds->used+len+1>ds->alloc)
92+
if (needed>ds->alloc)
9193
{
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);
9398
ds->value=repalloc(ds->value,ds->alloc);
9499
}
95100

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp