As suggested by Tom, this patch restricts the right-hand argument of
bytealike to TEXT. This leaves like_escape_bytea() without anything to do, but I left it in place in anticipation of the eventual bytea pattern selectivity functions. If there is agreement that this would be the best long term solution, I'll take it as a TODO for 7.4. Joe Conway
This commit is contained in:
parent
c7e7672937
commit
a334ae3f22
@ -11,7 +11,7 @@
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/like.c,v 1.49 2002/06/20 20:29:37 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/like.c,v 1.50 2002/08/22 04:45:11 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -264,7 +264,7 @@ Datum
|
||||
bytealike(PG_FUNCTION_ARGS)
|
||||
{
|
||||
bytea *str = PG_GETARG_BYTEA_P(0);
|
||||
bytea *pat = PG_GETARG_BYTEA_P(1);
|
||||
text *pat = PG_GETARG_TEXT_P(1);
|
||||
bool result;
|
||||
unsigned char *s,
|
||||
*p;
|
||||
@ -285,7 +285,7 @@ Datum
|
||||
byteanlike(PG_FUNCTION_ARGS)
|
||||
{
|
||||
bytea *str = PG_GETARG_BYTEA_P(0);
|
||||
bytea *pat = PG_GETARG_BYTEA_P(1);
|
||||
text *pat = PG_GETARG_TEXT_P(1);
|
||||
bool result;
|
||||
unsigned char *s,
|
||||
*p;
|
||||
|
@ -8,7 +8,7 @@
|
||||
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_operator.h,v 1.106 2002/07/24 19:11:12 petere Exp $
|
||||
* $Id: pg_operator.h,v 1.107 2002/08/22 04:45:11 momjian Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
@ -827,9 +827,9 @@ DATA(insert OID = 1957 ( "<" PGNSP PGUID b f 17 17 16 1959 1960 0 0 0 0
|
||||
DATA(insert OID = 1958 ( "<=" PGNSP PGUID b f 17 17 16 1960 1959 0 0 0 0 byteale scalarltsel scalarltjoinsel ));
|
||||
DATA(insert OID = 1959 ( ">" PGNSP PGUID b f 17 17 16 1957 1958 0 0 0 0 byteagt scalargtsel scalargtjoinsel ));
|
||||
DATA(insert OID = 1960 ( ">=" PGNSP PGUID b f 17 17 16 1958 1957 0 0 0 0 byteage scalargtsel scalargtjoinsel ));
|
||||
DATA(insert OID = 2016 ( "~~" PGNSP PGUID b f 17 17 16 0 2017 0 0 0 0 bytealike likesel likejoinsel ));
|
||||
DATA(insert OID = 2016 ( "~~" PGNSP PGUID b f 17 25 16 0 2017 0 0 0 0 bytealike likesel likejoinsel ));
|
||||
#define OID_BYTEA_LIKE_OP 2016
|
||||
DATA(insert OID = 2017 ( "!~~" PGNSP PGUID b f 17 17 16 0 2016 0 0 0 0 byteanlike nlikesel nlikejoinsel ));
|
||||
DATA(insert OID = 2017 ( "!~~" PGNSP PGUID b f 17 25 16 0 2016 0 0 0 0 byteanlike nlikesel nlikejoinsel ));
|
||||
DATA(insert OID = 2018 ( "||" PGNSP PGUID b f 17 17 17 0 0 0 0 0 0 byteacat - - ));
|
||||
|
||||
/* timestamp operators */
|
||||
|
@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_proc.h,v 1.262 2002/08/22 04:41:06 momjian Exp $
|
||||
* $Id: pg_proc.h,v 1.263 2002/08/22 04:45:11 momjian Exp $
|
||||
*
|
||||
* NOTES
|
||||
* The script catalog/genbki.sh reads this file and generates .bki
|
||||
@ -2773,13 +2773,13 @@ DESCR("adjust time precision");
|
||||
DATA(insert OID = 1969 ( timetz PGNSP PGUID 12 f f t f i 2 1266 "1266 23" timetz_scale - _null_ ));
|
||||
DESCR("adjust time with time zone precision");
|
||||
|
||||
DATA(insert OID = 2005 ( bytealike PGNSP PGUID 12 f f t f i 2 16 "17 17" bytealike - _null_ ));
|
||||
DATA(insert OID = 2005 ( bytealike PGNSP PGUID 12 f f t f i 2 16 "17 25" bytealike - _null_ ));
|
||||
DESCR("matches LIKE expression");
|
||||
DATA(insert OID = 2006 ( byteanlike PGNSP PGUID 12 f f t f i 2 16 "17 17" byteanlike - _null_ ));
|
||||
DATA(insert OID = 2006 ( byteanlike PGNSP PGUID 12 f f t f i 2 16 "17 25" byteanlike - _null_ ));
|
||||
DESCR("does not match LIKE expression");
|
||||
DATA(insert OID = 2007 ( like PGNSP PGUID 12 f f t f i 2 16 "17 17" bytealike - _null_ ));
|
||||
DATA(insert OID = 2007 ( like PGNSP PGUID 12 f f t f i 2 16 "17 25" bytealike - _null_ ));
|
||||
DESCR("matches LIKE expression");
|
||||
DATA(insert OID = 2008 ( notlike PGNSP PGUID 12 f f t f i 2 16 "17 17" byteanlike - _null_ ));
|
||||
DATA(insert OID = 2008 ( notlike PGNSP PGUID 12 f f t f i 2 16 "17 25" byteanlike - _null_ ));
|
||||
DESCR("does not match LIKE expression");
|
||||
DATA(insert OID = 2009 ( like_escape PGNSP PGUID 12 f f t f i 2 17 "17 17" like_escape_bytea - _null_ ));
|
||||
DESCR("convert match pattern to use backslash escapes");
|
||||
|
Loading…
x
Reference in New Issue
Block a user