diff options
author | Teodor Sigaev <teodor@sigaev.ru> | 2007-11-16 15:05:59 +0000 |
---|---|---|
committer | Teodor Sigaev <teodor@sigaev.ru> | 2007-11-16 15:05:59 +0000 |
commit | a867b40cf45fa564810fedf892fcfbcae46a2009 (patch) | |
tree | 599c97c3c35e32f18b7da7735669fb3488a10938 /src/backend/utils/adt | |
parent | 2f1e7ffb76f7478f56aa511f6a0439a6169cbdda (diff) | |
download | postgresql-a867b40cf45fa564810fedf892fcfbcae46a2009.tar.gz postgresql-a867b40cf45fa564810fedf892fcfbcae46a2009.zip |
Fix tsvectorout() and tsqueryout() to escape backslesh, add test of that.
Patch by Bruce Momjian <bruce@momjian.us>
Backpatch is needed, but it's impossible to apply it directly
Diffstat (limited to 'src/backend/utils/adt')
-rw-r--r-- | src/backend/utils/adt/tsquery.c | 7 | ||||
-rw-r--r-- | src/backend/utils/adt/tsvector.c | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/backend/utils/adt/tsquery.c b/src/backend/utils/adt/tsquery.c index e591b9622f9..509998c5102 100644 --- a/src/backend/utils/adt/tsquery.c +++ b/src/backend/utils/adt/tsquery.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/tsquery.c,v 1.10 2007/11/15 22:25:16 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/tsquery.c,v 1.11 2007/11/16 15:05:59 teodor Exp $ * *------------------------------------------------------------------------- */ @@ -614,6 +614,11 @@ infix(INFIX *in, bool first) *(in->cur) = '\''; in->cur++; } + else if (t_iseq(op, '\\')) + { + *(in->cur) = '\\'; + in->cur++; + } COPYCHAR(in->cur, op); clen = pg_mblen(op); diff --git a/src/backend/utils/adt/tsvector.c b/src/backend/utils/adt/tsvector.c index a82c6bb44d7..fb44c1224f8 100644 --- a/src/backend/utils/adt/tsvector.c +++ b/src/backend/utils/adt/tsvector.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/tsvector.c,v 1.8 2007/11/15 22:25:16 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/tsvector.c,v 1.9 2007/11/16 15:05:59 teodor Exp $ * *------------------------------------------------------------------------- */ @@ -345,6 +345,8 @@ tsvectorout(PG_FUNCTION_ARGS) if (t_iseq(curin, '\'')) *curout++ = '\''; + else if (t_iseq(curin, '\\')) + *curout++ = '\\'; while (len--) *curout++ = *curin++; |