aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>1999-09-07 00:13:27 +0000
committerTom Lane <tgl@sss.pgh.pa.us>1999-09-07 00:13:27 +0000
commit85712da90db24d508ceff878f31590223d344d7b (patch)
treeb331532ffeb9370613a237da9ba07756a13585ed
parentf1de4f9532f82ab9aaf9219c96b33910810614a6 (diff)
downloadpostgresql-85712da90db24d508ceff878f31590223d344d7b.tar.gz
postgresql-85712da90db24d508ceff878f31590223d344d7b.zip
Mike Ansley's fixes for long queries. This change just
corrects flex myinput() routine so that it doesn't assume there is only one bufferload of data. We still have the issue of getting rid of YY_USES_REJECT so that the scanner can cope with tokens larger than its initial buffer size.
-rw-r--r--src/backend/parser/scan.l28
1 files changed, 11 insertions, 17 deletions
diff --git a/src/backend/parser/scan.l b/src/backend/parser/scan.l
index 35d42356bb4..ece71b489fd 100644
--- a/src/backend/parser/scan.l
+++ b/src/backend/parser/scan.l
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.52 1999/07/17 20:17:26 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.53 1999/09/07 00:13:27 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -491,11 +491,8 @@ int
input()
{
if (parseCh == NULL)
- {
parseCh = parseString;
- return(*parseCh++);
- }
- else if (*parseCh == '\0')
+ if (*parseCh == '\0')
return(0);
else
return(*parseCh++);
@@ -520,20 +517,17 @@ myinput(char* buf, int max)
int len, copylen;
if (parseCh == NULL)
- {
- len = strlen(parseString);
- if (len >= max)
- copylen = max - 1;
- else
- copylen = len;
- if (copylen > 0)
- memcpy(buf, parseString, copylen);
- buf[copylen] = '\0';
parseCh = parseString;
- return copylen;
- }
+ len = strlen(parseCh); /* remaining data available */
+ if (len >= max)
+ copylen = max - 1;
else
- return 0; /* end of string */
+ copylen = len;
+ if (copylen > 0)
+ memcpy(buf, parseCh, copylen);
+ buf[copylen] = '\0';
+ parseCh += copylen;
+ return copylen;
}
#endif /* FLEX_SCANNER */