From: Tom Lane Date: Fri, 22 Oct 1999 02:08:37 +0000 (+0000) Subject: Another day, another MAX_QUERY_SIZE dependency zapped. X-Git-Tag: REL7_0~1280 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a1b25fd1555af7f4a8fd40cd35769498df13bb34;p=postgresql Another day, another MAX_QUERY_SIZE dependency zapped. --- diff --git a/src/test/regress/regress.c b/src/test/regress/regress.c index 3f3b0ede4b..0904d01d1f 100644 --- a/src/test/regress/regress.c +++ b/src/test/regress/regress.c @@ -1,5 +1,5 @@ /* - * $Header: /cvsroot/pgsql/src/test/regress/regress.c,v 1.33 1999/07/17 20:18:52 momjian Exp $ + * $Header: /cvsroot/pgsql/src/test/regress/regress.c,v 1.34 1999/10/22 02:08:37 tgl Exp $ */ #include /* faked on sunos */ @@ -317,7 +317,9 @@ funny_dup17() Relation rel; TupleDesc tupdesc; HeapTuple tuple; - char sql[MAX_QUERY_SIZE]; + char *query, + *fieldval, + *fieldtype; char *when; int inserted; int selected = 0; @@ -363,25 +365,29 @@ funny_dup17() SPI_connect(); - sprintf(sql, "insert into %s select * from %s where %s = '%s'::%s", + fieldval = SPI_getvalue(tuple, tupdesc, 1); + fieldtype = SPI_gettype(tupdesc, 1); + + query = (char *) palloc(100 + NAMEDATALEN*3 + + strlen(fieldval) + strlen(fieldtype)); + + sprintf(query, "insert into %s select * from %s where %s = '%s'::%s", SPI_getrelname(rel), SPI_getrelname(rel), SPI_fname(tupdesc, 1), - SPI_getvalue(tuple, tupdesc, 1), - SPI_gettype(tupdesc, 1)); + fieldval, fieldtype); - if ((ret = SPI_exec(sql, 0)) < 0) + if ((ret = SPI_exec(query, 0)) < 0) elog(ERROR, "funny_dup17 (fired %s) on level %3d: SPI_exec (insert ...) returned %d", when, *level, ret); inserted = SPI_processed; - sprintf(sql, "select count (*) from %s where %s = '%s'::%s", + sprintf(query, "select count (*) from %s where %s = '%s'::%s", SPI_getrelname(rel), SPI_fname(tupdesc, 1), - SPI_getvalue(tuple, tupdesc, 1), - SPI_gettype(tupdesc, 1)); + fieldval, fieldtype); - if ((ret = SPI_exec(sql, 0)) < 0) + if ((ret = SPI_exec(query, 0)) < 0) elog(ERROR, "funny_dup17 (fired %s) on level %3d: SPI_exec (select ...) returned %d", when, *level, ret); @@ -561,24 +567,25 @@ ttdummy() { void *pplan; Oid *ctypes; - char sql[MAX_QUERY_SIZE]; + char *query; - /* allocate ctypes for preparation */ + /* allocate space in preparation */ ctypes = (Oid *) palloc(natts * sizeof(Oid)); + query = (char *) palloc(100 + 16 * natts); /* * Construct query: INSERT INTO _relation_ VALUES ($1, ...) */ - sprintf(sql, "INSERT INTO %s VALUES (", relname); + sprintf(query, "INSERT INTO %s VALUES (", relname); for (i = 1; i <= natts; i++) { - sprintf(sql + strlen(sql), "$%d%s", + sprintf(query + strlen(query), "$%d%s", i, (i < natts) ? ", " : ")"); ctypes[i - 1] = SPI_gettypeid(tupdesc, i); } /* Prepare plan for query */ - pplan = SPI_prepare(sql, natts, ctypes); + pplan = SPI_prepare(query, natts, ctypes); if (pplan == NULL) elog(ERROR, "ttdummy (%s): SPI_prepare returned %d", relname, SPI_result);