From 78212f21011449f0374831323655baa7c00f3680 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 27 Dec 2022 12:00:31 -0500 Subject: 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 --- src/backend/utils/adt/tsquery_cleanup.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/backend/utils/adt/tsquery_cleanup.c') 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); -- cgit v1.2.3