aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/tsquery_cleanup.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2022-12-27 12:00:31 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2022-12-27 12:00:31 -0500
commit78212f21011449f0374831323655baa7c00f3680 (patch)
tree6ff1d8ba1c89999920225d8f6bfa2d8567a24d77 /src/backend/utils/adt/tsquery_cleanup.c
parenteb8312a22a84c33fc405ae9b497113973f552f90 (diff)
downloadpostgresql-78212f21011449f0374831323655baa7c00f3680.tar.gz
postgresql-78212f21011449f0374831323655baa7c00f3680.zip
Convert tsqueryin and tsvectorin to report errors softly.
This is slightly tedious because the adjustments cascade through a couple of levels of subroutines, but it's not very hard. I chose to avoid changing function signatures more than absolutely necessary, by passing the escontext pointer in existing structs where possible. tsquery's nuisance NOTICEs about empty queries are suppressed in soft-error mode, since they're not errors and we surely don't want them to be shown to the user anyway. Maybe that whole behavior should be reconsidered. Discussion: https://postgr.es/m/3824377.1672076822@sss.pgh.pa.us
Diffstat (limited to 'src/backend/utils/adt/tsquery_cleanup.c')
-rw-r--r--src/backend/utils/adt/tsquery_cleanup.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/backend/utils/adt/tsquery_cleanup.c b/src/backend/utils/adt/tsquery_cleanup.c
index b77a7878dc6..94030a75d57 100644
--- a/src/backend/utils/adt/tsquery_cleanup.c
+++ b/src/backend/utils/adt/tsquery_cleanup.c
@@ -383,7 +383,7 @@ calcstrlen(NODE *node)
* Remove QI_VALSTOP (stopword) nodes from TSQuery.
*/
TSQuery
-cleanup_tsquery_stopwords(TSQuery in)
+cleanup_tsquery_stopwords(TSQuery in, bool noisy)
{
int32 len,
lenstr,
@@ -403,8 +403,9 @@ cleanup_tsquery_stopwords(TSQuery in)
root = clean_stopword_intree(maketree(GETQUERY(in)), &ladd, &radd);
if (root == NULL)
{
- ereport(NOTICE,
- (errmsg("text-search query contains only stop words or doesn't contain lexemes, ignored")));
+ if (noisy)
+ ereport(NOTICE,
+ (errmsg("text-search query contains only stop words or doesn't contain lexemes, ignored")));
out = palloc(HDRSIZETQ);
out->size = 0;
SET_VARSIZE(out, HDRSIZETQ);