aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dunstan <andrew@dunslane.net>2007-11-25 15:37:11 +0000
committerAndrew Dunstan <andrew@dunslane.net>2007-11-25 15:37:11 +0000
commit3de1f0daac2772d01086ad9a06a428c36648dd02 (patch)
tree22403c3390a3c8341c19cfb2b35033c64fde5561
parenta999ff63ffaece8e612f52e50f1ca658d6628fa0 (diff)
downloadpostgresql-3de1f0daac2772d01086ad9a06a428c36648dd02.tar.gz
postgresql-3de1f0daac2772d01086ad9a06a428c36648dd02.zip
Fix XML tag namespace change inadvertantly missed from previous fix. Add
regression test for XML names and numeric entities.
-rw-r--r--src/backend/tsearch/wparser_def.c11
-rw-r--r--src/test/regress/expected/tsearch.out15
-rw-r--r--src/test/regress/sql/tsearch.sql4
3 files changed, 27 insertions, 3 deletions
diff --git a/src/backend/tsearch/wparser_def.c b/src/backend/tsearch/wparser_def.c
index b80175456d2..df32e285f07 100644
--- a/src/backend/tsearch/wparser_def.c
+++ b/src/backend/tsearch/wparser_def.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/tsearch/wparser_def.c,v 1.11 2007/11/20 02:25:22 adunstan Exp $
+ * $PostgreSQL: pgsql/src/backend/tsearch/wparser_def.c,v 1.12 2007/11/25 15:37:11 adunstan Exp $
*
*-------------------------------------------------------------------------
*/
@@ -827,7 +827,6 @@ static const TParserStateActionItem actionTPS_InXMLEntity[] = {
{p_isalnum, 0, A_NEXT, TPS_InXMLEntity, 0, NULL},
{p_iseqC, ':', A_NEXT, TPS_InXMLEntity, 0, NULL},
{p_iseqC, '_', A_NEXT, TPS_InXMLEntity, 0, NULL},
- {p_iseqC, ':', A_NEXT, TPS_InXMLEntity, 0, NULL},
{p_iseqC, '.', A_NEXT, TPS_InXMLEntity, 0, NULL},
{p_iseqC, '-', A_NEXT, TPS_InXMLEntity, 0, NULL},
{p_iseqC, ';', A_NEXT, TPS_InXMLEntityEnd, 0, NULL},
@@ -871,6 +870,8 @@ static const TParserStateActionItem actionTPS_InTagFirst[] = {
{p_iseqC, '!', A_PUSH, TPS_InCommentFirst, 0, NULL},
{p_iseqC, '?', A_PUSH, TPS_InXMLBegin, 0, NULL},
{p_isasclet, 0, A_PUSH, TPS_InTagName, 0, NULL},
+ {p_iseqC, ':', A_PUSH, TPS_InTagName, 0, NULL},
+ {p_iseqC, '_', A_PUSH, TPS_InTagName, 0, NULL},
{NULL, 0, A_POP, TPS_Null, 0, NULL}
};
@@ -894,7 +895,11 @@ static const TParserStateActionItem actionTPS_InTagName[] = {
{p_iseqC, '/', A_NEXT, TPS_InTagBeginEnd, 0, NULL},
{p_iseqC, '>', A_NEXT, TPS_InTagEnd, 0, SpecialTags},
{p_isspace, 0, A_NEXT, TPS_InTag, 0, SpecialTags},
- {p_isasclet, 0, A_NEXT, TPS_Null, 0, NULL},
+ {p_isalnum, 0, A_NEXT, TPS_Null, 0, NULL},
+ {p_iseqC, ':', A_NEXT, TPS_Null, 0, NULL},
+ {p_iseqC, '_', A_NEXT, TPS_Null, 0, NULL},
+ {p_iseqC, '.', A_NEXT, TPS_Null, 0, NULL},
+ {p_iseqC, '-', A_NEXT, TPS_Null, 0, NULL},
{NULL, 0, A_POP, TPS_Null, 0, NULL}
};
diff --git a/src/test/regress/expected/tsearch.out b/src/test/regress/expected/tsearch.out
index eb004020758..50656de9ae9 100644
--- a/src/test/regress/expected/tsearch.out
+++ b/src/test/regress/expected/tsearch.out
@@ -391,6 +391,21 @@ SELECT length(to_tsvector('english', '345 qwe@efd.r '' http://www.com/ http://ae
51
(1 row)
+-- ts_debug
+SELECT * from ts_debug('<myns:foo-bar_baz.blurfl>abc&nm1;def&#xa9;ghi&#245;jkl</myns:foo-bar_baz.blurfl>');
+ alias | description | token | dictionaries | dictionary | lexemes
+-----------+-----------------+----------------------------+----------------+--------------+---------
+ tag | XML tag | <myns:foo-bar_baz.blurfl> | {} | |
+ asciiword | Word, all ASCII | abc | {english_stem} | english_stem | {abc}
+ entity | XML entity | &nm1; | {} | |
+ asciiword | Word, all ASCII | def | {english_stem} | english_stem | {def}
+ entity | XML entity | &#xa9; | {} | |
+ asciiword | Word, all ASCII | ghi | {english_stem} | english_stem | {ghi}
+ entity | XML entity | &#245; | {} | |
+ asciiword | Word, all ASCII | jkl | {english_stem} | english_stem | {jkl}
+ tag | XML tag | </myns:foo-bar_baz.blurfl> | {} | |
+(9 rows)
+
-- to_tsquery
SELECT to_tsquery('english', 'qwe & sKies ');
to_tsquery
diff --git a/src/test/regress/sql/tsearch.sql b/src/test/regress/sql/tsearch.sql
index 5f3e21b72a1..9b37a51391e 100644
--- a/src/test/regress/sql/tsearch.sql
+++ b/src/test/regress/sql/tsearch.sql
@@ -98,6 +98,10 @@ SELECT length(to_tsvector('english', '345 qwe@efd.r '' http://www.com/ http://ae
/usr/local/fff /awdf/dwqe/4325 rewt/ewr wefjn /wqe-324/ewr gist.h gist.h.c gist.c. readline 4.2 4.2. 4.2, readline-4.2 readline-4.2. 234
<i <b> wow < jqw <> qwerty'));
+-- ts_debug
+
+SELECT * from ts_debug('<myns:foo-bar_baz.blurfl>abc&nm1;def&#xa9;ghi&#245;jkl</myns:foo-bar_baz.blurfl>');
+
-- to_tsquery
SELECT to_tsquery('english', 'qwe & sKies ');