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

Commita1b25fd

Browse files
committed
Another day, another MAX_QUERY_SIZE dependency zapped.
1 parent768064d commita1b25fd

File tree

1 file changed

+22
-15
lines changed

1 file changed

+22
-15
lines changed

‎src/test/regress/regress.c

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* $Header: /cvsroot/pgsql/src/test/regress/regress.c,v 1.33 1999/07/17 20:18:52 momjian Exp $
2+
* $Header: /cvsroot/pgsql/src/test/regress/regress.c,v 1.34 1999/10/22 02:08:37 tgl Exp $
33
*/
44

55
#include<float.h>/* faked on sunos */
@@ -317,7 +317,9 @@ funny_dup17()
317317
Relationrel;
318318
TupleDesctupdesc;
319319
HeapTupletuple;
320-
charsql[MAX_QUERY_SIZE];
320+
char*query,
321+
*fieldval,
322+
*fieldtype;
321323
char*when;
322324
intinserted;
323325
intselected=0;
@@ -363,25 +365,29 @@ funny_dup17()
363365

364366
SPI_connect();
365367

366-
sprintf(sql,"insert into %s select * from %s where %s = '%s'::%s",
368+
fieldval=SPI_getvalue(tuple,tupdesc,1);
369+
fieldtype=SPI_gettype(tupdesc,1);
370+
371+
query= (char*)palloc(100+NAMEDATALEN*3+
372+
strlen(fieldval)+strlen(fieldtype));
373+
374+
sprintf(query,"insert into %s select * from %s where %s = '%s'::%s",
367375
SPI_getrelname(rel),SPI_getrelname(rel),
368376
SPI_fname(tupdesc,1),
369-
SPI_getvalue(tuple,tupdesc,1),
370-
SPI_gettype(tupdesc,1));
377+
fieldval,fieldtype);
371378

372-
if ((ret=SPI_exec(sql,0))<0)
379+
if ((ret=SPI_exec(query,0))<0)
373380
elog(ERROR,"funny_dup17 (fired %s) on level %3d: SPI_exec (insert ...) returned %d",
374381
when,*level,ret);
375382

376383
inserted=SPI_processed;
377384

378-
sprintf(sql,"select count (*) from %s where %s = '%s'::%s",
385+
sprintf(query,"select count (*) from %s where %s = '%s'::%s",
379386
SPI_getrelname(rel),
380387
SPI_fname(tupdesc,1),
381-
SPI_getvalue(tuple,tupdesc,1),
382-
SPI_gettype(tupdesc,1));
388+
fieldval,fieldtype);
383389

384-
if ((ret=SPI_exec(sql,0))<0)
390+
if ((ret=SPI_exec(query,0))<0)
385391
elog(ERROR,"funny_dup17 (fired %s) on level %3d: SPI_exec (select ...) returned %d",
386392
when,*level,ret);
387393

@@ -561,24 +567,25 @@ ttdummy()
561567
{
562568
void*pplan;
563569
Oid*ctypes;
564-
charsql[MAX_QUERY_SIZE];
570+
char*query;
565571

566-
/* allocatectypes for preparation */
572+
/* allocatespace in preparation */
567573
ctypes= (Oid*)palloc(natts*sizeof(Oid));
574+
query= (char*)palloc(100+16*natts);
568575

569576
/*
570577
* Construct query: INSERT INTO _relation_ VALUES ($1, ...)
571578
*/
572-
sprintf(sql,"INSERT INTO %s VALUES (",relname);
579+
sprintf(query,"INSERT INTO %s VALUES (",relname);
573580
for (i=1;i <=natts;i++)
574581
{
575-
sprintf(sql+strlen(sql),"$%d%s",
582+
sprintf(query+strlen(query),"$%d%s",
576583
i, (i<natts) ?", " :")");
577584
ctypes[i-1]=SPI_gettypeid(tupdesc,i);
578585
}
579586

580587
/* Prepare plan for query */
581-
pplan=SPI_prepare(sql,natts,ctypes);
588+
pplan=SPI_prepare(query,natts,ctypes);
582589
if (pplan==NULL)
583590
elog(ERROR,"ttdummy (%s): SPI_prepare returned %d",relname,SPI_result);
584591

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp