Skip to content

Commit a1b25fd

Browse files
committed
Another day, another MAX_QUERY_SIZE dependency zapped.
1 parent 768064d commit a1b25fd

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
Relation rel;
318318
TupleDesc tupdesc;
319319
HeapTuple tuple;
320-
char sql[MAX_QUERY_SIZE];
320+
char *query,
321+
*fieldval,
322+
*fieldtype;
321323
char *when;
322324
int inserted;
323325
int selected = 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-
char sql[MAX_QUERY_SIZE];
570+
char *query;
565571

566-
/* allocate ctypes for preparation */
572+
/* allocate space 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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy