diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2022-12-27 12:00:31 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2022-12-27 12:00:31 -0500 |
commit | 78212f21011449f0374831323655baa7c00f3680 (patch) | |
tree | 6ff1d8ba1c89999920225d8f6bfa2d8567a24d77 /src/backend/utils/adt/tsquery_cleanup.c | |
parent | eb8312a22a84c33fc405ae9b497113973f552f90 (diff) | |
download | postgresql-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.c | 7 |
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); |