Fixes: Using LIKE or ~ operator on text type files which are null valued

causes segmentation fault.

Thanks to: Salvador Ortiz Garcia, Robert Patrick, Paul 'Shag' Walmsley,
           and James Cooper for finding and fixing the problem.
This commit is contained in:
Marc G. Fournier 1996-07-09 06:39:19 +00:00
parent 25bb71835f
commit 950b6ab022
2 changed files with 8 additions and 2 deletions

View File

@ -120,6 +120,7 @@ char16nlike(char *s, struct varlena *p)
bool
namelike(NameData *n, struct varlena *p)
{
if (!n) return FALSE;
return (fixedlen_like(n->data, p, NAMEDATALEN));
}
@ -132,6 +133,7 @@ namenlike(NameData *s, struct varlena *p)
bool
textlike(struct varlena *s, struct varlena *p)
{
if (!s) return FALSE;
return (fixedlen_like(VARDATA(s), p, VARSIZE(s) - VARHDRSZ));
}
@ -141,7 +143,7 @@ bool textnlike(struct varlena *s, struct varlena *p)
}
/* $Revision: 1.1.1.1 $
/* $Revision: 1.2 $
** "like.c" A first attempt at a LIKE operator for Postgres95.
**
** Originally written by Rich $alz, mirror!rs, Wed Nov 26 19:03:17 EST 1986.

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/regexp.c,v 1.1.1.1 1996/07/09 06:22:05 scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/adt/regexp.c,v 1.2 1996/07/09 06:39:19 scrappy Exp $
*
* Alistair Crooks added the code for the regex caching
* agc - cached the regular expressions used - there's a good chance
@ -240,6 +240,7 @@ char16regexne(char *s, struct varlena *p)
bool
nameregexeq(NameData *n, struct varlena *p)
{
if (!n) return FALSE;
return (fixedlen_regexeq(n->data, p, NAMEDATALEN, REG_EXTENDED));
}
bool
@ -251,6 +252,7 @@ nameregexne(NameData *s, struct varlena *p)
bool
textregexeq(struct varlena *s, struct varlena *p)
{
if (!s) return (FALSE);
return (fixedlen_regexeq(VARDATA(s), p, VARSIZE(s) - VARHDRSZ, REG_EXTENDED));
}
@ -319,6 +321,7 @@ char16icregexne(char *s, struct varlena *p)
bool
texticregexeq(struct varlena *s, struct varlena *p)
{
if (!s) return FALSE;
return (fixedlen_regexeq(VARDATA(s), p, VARSIZE(s) - VARHDRSZ,
REG_ICASE | REG_EXTENDED));
}
@ -332,6 +335,7 @@ texticregexne(struct varlena *s, struct varlena *p)
bool
nameicregexeq(NameData *n, struct varlena *p)
{
if (!n) return FALSE;
return (fixedlen_regexeq(n->data, p, NAMEDATALEN,
REG_ICASE | REG_EXTENDED));
}