postgresql/src/test/regress/sql
Tom Lane a1fb4bd856 Fix ts_headline() edge cases for empty query and empty search text.
tsquery's GETQUERY() macro is only safe to apply to a tsquery
that is known non-empty; otherwise it gives a pointer to garbage.
Before commit 5a617d75d, ts_headline() avoided this pitfall, but
only in a very indirect, nonobvious way.  (hlCover could not reach
its TS_execute call, because if the query contains no lexemes
then hlFirstIndex would surely return -1.)  After that commit,
it fell into the trap, resulting in weird errors such as
"unrecognized operator" and/or valgrind complaints.  In HEAD,
fix this by not calling TS_execute_locations() at all for an
empty query.  In the back branches, add a defensive check to
hlCover() --- that's not fixing any live bug, but I judge the
code a bit too fragile as-is.

Also, both mark_hl_fragments() and mark_hl_words() were careless
about the possibility of empty search text: in the cases where
no match has been found, they'd end up telling mark_fragment() to
mark from word indexes 0 to 0 inclusive, even when there is no
word 0.  This is harmless since we over-allocated the prs->words
array, but it does annoy valgrind.  Fix so that the end index is -1
and thus mark_fragment() will do nothing in such cases.

Bottom line is that this fixes a live bug in HEAD, but in the
back branches it's only getting rid of a valgrind nitpick.
Back-patch anyway.

Per report from Alexander Lakhin.

Discussion: https://postgr.es/m/c27f642d-020b-01ff-ae61-086af287c4fd@gmail.com
2023-04-06 15:52:37 -04:00
..
.gitignore Add a SECURITY LABEL command. 2010-09-27 20:55:27 -04:00
advisory_lock.sql Add transaction-level advisory locks. 2011-02-18 14:05:12 +09:00
aggregates.sql Fix failure to detect some cases of improperly-nested aggregates. 2023-03-13 12:40:28 -04:00
alter_generic.sql Fix comment in test 2020-01-02 14:41:04 +01:00
alter_operator.sql Avoid unnecessary use of pg_strcasecmp for already-downcased identifiers. 2018-01-26 18:25:14 -05:00
alter_table.sql Reject attempts to alter composite types used in indexes. 2023-03-27 15:04:02 -04:00
amutils.sql Add support for nearest-neighbor (KNN) searches to SP-GiST 2018-09-19 01:54:10 +03:00
arrays.sql Improve expression evaluation test coverage. 2017-03-11 15:41:34 -08:00
async.sql Add new function pg_notification_queue_usage. 2015-07-17 09:12:03 -04:00
bit.sql Fix integer-overflow corner cases in substring() functions. 2021-01-04 18:32:40 -05:00
bitmapops.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
boolean.sql Expand AND/OR regression tests around NULL handling. 2018-03-13 16:12:31 -07:00
box.sql Improve test coverage of geometric types 2018-09-26 10:45:21 +02:00
brin.sql Properly detoast data in brin_form_tuple 2020-11-07 00:40:40 +01:00
btree_index.sql Restore vacuum_cleanup_index_scale_factor coverage. 2021-03-11 12:52:37 -08:00
case.sql Fix interaction of CASE and ArrayCoerceExpr. 2018-10-30 15:26:11 -04:00
char.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
circle.sql Fix circle_in to accept "(x,y),r" as it's advertised to do. 2020-04-07 20:50:02 -04:00
cluster.sql Fix CLUSTER tuplesorts on abbreviated expressions. 2022-04-20 17:17:37 -07:00
collate.icu.utf8.sql Enable hash partitioning of text arrays 2020-11-04 12:46:52 +01:00
collate.linux.utf8.sql Repair assorted issues in locale data extraction. 2019-04-23 18:51:30 -04:00
collate.sql Fix old bug with coercing the result of a COLLATE expression. 2021-04-12 14:37:22 -04:00
combocid.sql Fix locking a tuple updated by an aborted (sub)transaction 2016-09-09 15:54:29 -03:00
comments.sql Implement nested block comments in the backend and in psql. 2000-07-14 15:43:57 +00:00
conversion.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
copy2.sql Allow COPY FROM to filter data using WHERE conditions 2019-01-20 00:22:14 +01:00
copydml.sql COPY (INSERT/UPDATE/DELETE .. RETURNING ..) 2015-11-27 19:11:22 +03:00
copyselect.sql Have \copy go through SendQuery 2012-01-25 18:22:00 -03:00
create_aggregate.sql Implement OR REPLACE option for CREATE AGGREGATE. 2019-03-19 01:16:50 +00:00
create_am.sql Fix rare deadlock failure in create_am regression test. 2020-09-04 12:40:28 -04:00
create_cast.sql Make CREATE TYPE print warnings if a datatype's I/O functions are volatile. 2014-11-05 11:44:06 -05:00
create_function_3.sql Fix handling of R/W expanded datums that are passed to SQL functions. 2022-08-10 13:37:25 -04:00
create_index.sql Fix memory leak in IndexScan node with reordering 2022-02-14 03:32:39 +03:00
create_index_spgist.sql Provide stable test for NULL-values in KNN SP-GiST 2019-09-20 15:35:32 +03:00
create_misc.sql ANALYZE a_star and its children to avoid plan instability in tests. 2019-09-27 11:28:25 -04:00
create_operator.sql Use factorial rather than numeric_fac in create_operator.sql. 2020-09-18 18:03:44 -04:00
create_procedure.sql Add collation assignment to CALL statement 2019-02-07 08:25:47 +01:00
create_table.sql Assign collations in partition bound expressions. 2020-09-28 14:12:38 -04:00
create_table_like.sql Ensure that expandTableLikeClause() re-examines the same table. 2020-12-01 14:02:28 -05:00
create_type.sql Fix format_type() to restore its old behavior. 2018-03-01 11:37:46 -05:00
create_view.sql Prevent pgstats from getting confused when relkind of a relation changes 2022-12-02 18:16:14 -08:00
date.sql Remove explicit error handling for obsolete date/time values 2019-06-30 10:27:35 +02:00
dbsize.sql Fix incorrect return value in pg_size_pretty(bigint) 2021-07-09 14:04:56 +12:00
delete.sql Regression tests for TOAST. 2011-04-25 09:48:10 -04:00
dependency.sql Un-hide most cascaded-drop details in regression test results. 2019-03-24 19:15:37 -04:00
domain.sql Un-break whole-row Vars referencing domain-over-composite types. 2022-06-10 10:35:57 -04:00
drop_if_exists.sql Improve error reporting for DROP FUNCTION/PROCEDURE/AGGREGATE/ROUTINE. 2019-03-21 11:52:08 -04:00
drop_operator.sql Fix DROP OPERATOR to reset oprcom/oprnegate links to the dropped operator. 2016-03-25 12:33:16 -04:00
enum.sql Relax transactional restrictions on ALTER TYPE ... ADD VALUE (redux). 2018-10-09 12:51:01 +13:00
equivclass.sql Suppress unnecessary RelabelType nodes in more cases. 2020-02-26 18:14:13 -05:00
errors.sql Reject SELECT ... GROUP BY GROUPING SETS (()) FOR UPDATE. 2021-06-01 11:12:56 -04:00
event_trigger.sql Fix DDL deparse of CREATE OPERATOR CLASS 2022-05-20 18:52:55 +02:00
expressions.sql Fix typos in comments, code and documentation 2023-01-03 16:26:37 +09:00
fast_default.sql Don't set a fast default for anything but a plain table 2021-06-18 07:46:21 -04:00
float4.sql Un-hide most cascaded-drop details in regression test results. 2019-03-24 19:15:37 -04:00
float8.sql Un-hide most cascaded-drop details in regression test results. 2019-03-24 19:15:37 -04:00
foreign_data.sql Fix unexpected error messages for various flavors of ALTER TABLE 2021-07-14 17:15:26 +09:00
foreign_key.sql Reject system columns as elements of foreign keys. 2023-03-31 11:18:49 -04:00
functional_deps.sql Recognize functional dependency on primary keys. This allows a table's 2010-08-07 02:44:09 +00:00
generated.sql Fix some more cases of missed GENERATED-column updates. 2023-03-06 18:31:16 -05:00
geometry.sql Improve test coverage of geometric types 2018-09-26 10:45:21 +02:00
gin.sql Fix bugs in gin_fuzzy_search_limit processing. 2020-04-03 13:15:30 -04:00
gist.sql Don't use_physical_tlist for an IOS with non-returnable columns. 2022-02-11 15:23:52 -05:00
groupingsets.sql Make pull_var_clause() handle GroupingFuncs exactly like Aggrefs. 2022-05-12 11:31:46 -04:00
guc.sql Give up on testing guc.c's behavior for "infinity" inputs. 2019-03-11 17:53:09 -04:00
hash_func.sql Fix portability issue in tests from commit ce773f230. 2021-09-03 10:01:02 -04:00
hash_index.sql Add more tests for reloptions 2017-10-19 14:22:05 +02:00
hash_part.sql Fix typo in test comment. 2020-05-28 12:37:42 +03:00
horology.sql Fix handling of BC years in to_date/to_timestamp. 2020-09-30 15:40:23 -04:00
hs_primary_extremes.sql Remove all references to "xlog" from SQL-callable functions in pg_proc. 2017-02-09 15:10:09 -05:00
hs_primary_setup.sql Remove all references to "xlog" from SQL-callable functions in pg_proc. 2017-02-09 15:10:09 -05:00
hs_standby_allowed.sql Allow UNLISTEN in hot-standby mode. 2019-01-25 21:14:49 -05:00
hs_standby_check.sql Allow read only connections during recovery, known as Hot Standby. 2009-12-19 01:32:45 +00:00
hs_standby_disallowed.sql Allow UNLISTEN in hot-standby mode. 2019-01-25 21:14:49 -05:00
hs_standby_functions.sql Remove all references to "xlog" from SQL-callable functions in pg_proc. 2017-02-09 15:10:09 -05:00
identity.sql Forbid marking an identity column as nullable. 2021-03-12 11:08:42 -05:00
index_including.sql Fix nbtree high key "continuescan" row compare bug. 2019-03-31 17:24:04 -07:00
index_including_gist.sql Support for INCLUDE attributes in GiST indexes 2019-03-10 11:37:17 +03:00
indexing.sql Fix subtly-incorrect matching of parent and child partitioned indexes. 2022-08-18 12:11:47 -04:00
indirect_toast.sql Clean up duplicate table and function names in regression tests. 2018-03-15 17:09:02 -04:00
inet.sql Allow extensions to generate lossy index conditions. 2019-02-11 21:26:14 -05:00
infinite_recurse.sql Paper over regression failures in infinite_recurse() on PPC64 Linux. 2020-10-13 17:44:56 -04:00
inherit.sql Fix MULTIEXPR_SUBLINK with partitioned target tables, yet again. 2023-02-25 14:44:14 -05:00
init_privs.sql Fix typos in comments. 2017-02-06 11:33:58 +02:00
insert.sql Fix typo in test comment. 2020-05-28 12:37:42 +03:00
insert_conflict.sql Don't mark partitioned indexes invalid unnecessarily 2018-12-05 13:31:51 -03:00
int2.sql Check column list length in XMLTABLE/JSON_TABLE alias 2022-05-18 20:28:31 +02:00
int4.sql Add documentation and regression tests concerning rounding of numerics. 2015-07-03 17:04:39 -04:00
int8.sql Add documentation and regression tests concerning rounding of numerics. 2015-07-03 17:04:39 -04:00
interval.sql Fix integer-overflow edge case detection in interval_mul and pgbench. 2019-11-07 11:22:59 -05:00
join.sql Remove bogus Assert and dead code in remove_useless_results_recurse(). 2022-11-29 10:52:44 -05:00
join_hash.sql Fix representation of hash keys in Hash/HashJoin nodes. 2019-08-02 00:02:49 -07:00
json.sql Restore json{b}_populate_record{set}'s ability to take type info from AS. 2019-08-19 18:00:57 -04:00
json_encoding.sql Fix whitespace 2015-10-11 21:44:27 -04:00
jsonb.sql Remove "invalid concatenation of jsonb objects" error case. 2020-12-21 13:11:29 -05:00
jsonb_jsonpath.sql Fix jsonpath existense checking of missing variables 2023-01-12 18:19:19 +03:00
jsonpath.sql Fix some minor spec-compliance issues in jsonpath lexer. 2019-09-20 14:22:58 -04:00
jsonpath_encoding.sql Fix some minor spec-compliance issues in jsonpath lexer. 2019-09-20 14:22:58 -04:00
limit.sql Add regression tests exercising more code paths in nodeLimit.c. 2017-08-11 17:28:01 -04:00
line.sql Improve test coverage of geometric types 2018-09-26 10:45:21 +02:00
lock.sql Revert "Accept relations of any kind in LOCK TABLE". 2020-11-06 16:17:57 -05:00
lseg.sql Improve test coverage of geometric types 2018-09-26 10:45:21 +02:00
macaddr.sql Allow input format xxxx-xxxx-xxxx for macaddr type 2014-10-21 16:16:39 -04:00
macaddr8.sql Add support for EUI-64 MAC addresses as macaddr8 2017-03-15 11:16:25 -04:00
matview.sql Really fix the ambiguity in REFRESH MATERIALIZED VIEW CONCURRENTLY. 2021-08-07 13:29:32 -04:00
misc_functions.sql Avoid holding a directory FD open across assorted SRF calls. 2020-03-16 21:05:53 -04:00
misc_sanity.sql Remove WITH OIDS support, change oid catalog column visibility. 2018-11-20 16:00:17 -08:00
money.sql Fix loss of fractional digits for large values in cash_numeric(). 2019-07-26 11:59:00 -04:00
name.sql Introduce parse_ident() 2016-03-18 18:16:14 +03:00
namespace.sql Clean up duplicate role and schema names in regression tests. 2018-03-15 14:00:31 -04:00
numeric.sql Fix corner case bug in numeric to_char() some more. 2023-03-14 19:17:31 -04:00
numeric_big.sql Fix corner-case loss of precision in numeric pow() calculation 2016-05-05 11:16:17 +01:00
numerology.sql Remove extra newlines at end and beginning of files, add missing newlines 2010-08-19 05:57:36 +00:00
object_address.sql Fix regression tests to use only global names beginning with "regress_". 2019-06-29 11:09:03 -04:00
oid.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
oidjoins.sql Rework the pg_statistic_ext catalog 2019-06-16 01:20:31 +02:00
opr_sanity.sql Straighten out leakproofness markings on text comparison functions. 2019-09-21 16:56:30 -04:00
partition_aggregate.sql Avoid crash in partitionwise join planning under GEQO. 2019-03-30 12:48:32 -04:00
partition_info.sql Fix crash with pg_partition_root 2019-03-22 17:27:38 +09:00
partition_join.sql Fix bitmap AND/OR scans on the inside of a nestloop partition-wise join. 2020-07-14 18:56:49 -04:00
partition_prune.sql Fix hash partition pruning with asymmetric partition sets. 2021-01-28 13:41:55 -05:00
password.sql Fix buffer overflow when parsing SCRAM verifiers in backend 2019-06-17 21:48:17 +09:00
path.sql Improve test coverage of geometric types 2018-09-26 10:45:21 +02:00
pg_lsn.sql Tweak new regression test case for better portability. 2014-06-04 21:31:41 -04:00
plancache.sql Add plan_cache_mode setting 2018-07-16 13:35:41 +02:00
plpgsql.sql Move plpgsql error-trapping tests to a new module-specific test file. 2019-04-11 15:09:28 -04:00
point.sql Change floating-point output format for improved performance. 2019-02-13 15:20:33 +00:00
polygon.sql Fix double-word typos 2019-06-13 10:03:56 -04:00
polymorphism.sql Work around cross-version-upgrade issues created by commit 9e38c2bb5. 2020-11-10 18:32:36 -05:00
portals.sql Fix some anomalies with NO SCROLL cursors. 2021-09-10 13:18:32 -04:00
portals_p2.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
prepare.sql Add more tests for CREATE TABLE AS with WITH NO DATA 2019-02-07 09:21:57 +09:00
prepared_xacts.sql Fix check for conflicting session- vs transaction-level locks. 2021-07-24 18:35:52 -04:00
privileges.sql In REFRESH MATERIALIZED VIEW, set user ID before running user code. 2022-05-09 08:35:12 -07:00
psql.sql Ignore attempts to \gset into specially treated variables. 2020-11-09 07:32:13 -08:00
psql_crosstab.sql Fix incorrect error reporting for duplicate data in \crosstabview. 2016-12-25 16:04:45 -05:00
publication.sql Flush table's relcache during ALTER TABLE ADD PRIMARY KEY USING INDEX. 2022-01-22 13:32:40 -05:00
random.sql Remove extra newlines at end and beginning of files, add missing newlines 2010-08-19 05:57:36 +00:00
rangefuncs.sql Fix improper interaction of FULL JOINs with lateral references. 2019-04-08 16:09:26 -04:00
rangetypes.sql Restructure polymorphic-type resolution in funcapi.c. 2020-03-14 14:42:22 -04:00
regex.linux.utf8.sql Make locale-dependent regex character classes work for large char codes. 2016-09-05 17:06:29 -04:00
regex.sql Fix regexp misbehavior with capturing parens inside "{0}". 2021-08-24 16:37:27 -04:00
regproc.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
reindex_catalog.sql Remove reindex_catalog test from test schedules. 2019-05-10 12:44:31 -07:00
reloptions.sql Try to stabilize reloptions test, again. 2022-01-20 23:33:19 +13:00
replica_identity.sql Allow REPLICA IDENTITY to be set on an index that's not (yet) valid. 2023-01-21 13:10:30 -05:00
returning.sql Add support for INSERT ... ON CONFLICT DO NOTHING/UPDATE. 2015-05-08 05:43:10 +02:00
roleattributes.sql Remove WITH OIDS support, change oid catalog column visibility. 2018-11-20 16:00:17 -08:00
rowsecurity.sql Ensure COPY TO on an RLS-enabled table copies no more than it should. 2023-03-10 13:52:28 -05:00
rowtypes.sql Revert applying column aliases to the output of whole-row Vars. 2022-03-17 18:18:05 -04:00
rules.sql Fix mishandling of OLD/NEW references in subqueries in rule actions. 2023-02-25 14:47:03 +00:00
sanity_check.sql Don't create relfilenode for relations without storage 2019-01-04 14:51:17 -03:00
security_label.sql Establish conventions about global object names used in regression tests. 2016-07-17 18:42:43 -04:00
select.sql Fix core dump in transformValuesClause when there are no columns. 2022-05-09 14:15:37 -04:00
select_distinct.sql Disable physical tlist if any Var would need multiple sortgroupref labels. 2016-05-26 14:52:30 -04:00
select_distinct_on.sql Fix assertion failure when a SELECT DISTINCT ON expression is volatile. 2009-09-12 00:04:59 +00:00
select_having.sql Make the behavior of HAVING without GROUP BY conform to the SQL spec. 2005-03-10 23:21:26 +00:00
select_implicit.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
select_into.sql Add more tests for CREATE TABLE AS with WITH NO DATA 2019-02-07 09:21:57 +09:00
select_parallel.sql Avoid lockup of a parallel worker when reporting a long error message. 2020-09-03 16:52:09 -04:00
select_views.sql Avoid locale-dependent output in select_views regression test. 2017-05-28 14:52:18 -04:00
sequence.sql psql: Update \d sequence display 2017-09-29 13:37:30 -04:00
spgist.sql Repair double-free in SP-GIST rescan (bug #15378) 2018-09-11 18:14:19 +01:00
stats.sql Revert "Insert temporary debugging output in regression tests." 2019-07-01 19:46:04 -04:00
stats_ext.sql Build inherited extended stats on partitioned tables 2022-01-15 19:02:58 +01:00
strings.sql Avoid fetching one past the end of translate()'s "to" parameter. 2023-03-01 11:30:17 -05:00
subscription.sql Fix error handling in libpqrcv_connect() 2023-01-23 18:27:55 -08:00
subselect.sql Be more careful about the shape of hashable subplan clauses. 2020-08-14 22:14:03 -04:00
sysviews.sql Invent pg_hba_file_rules view to show the content of pg_hba.conf. 2017-01-30 18:00:26 -05:00
tablesample.sql Make tablesample work with partitioned tables. 2017-02-24 12:23:28 +05:30
temp.sql Fix misbehavior with expression indexes on ON COMMIT DELETE ROWS tables. 2019-12-01 13:09:26 -05:00
text.sql Move checking an explicit VARIADIC "any" argument into the parser. 2013-07-18 11:52:12 -04:00
tid.sql Fix crashes with currtid() and currtid2() 2020-06-01 10:32:53 +09:00
tidscan.sql Fix bug in Tid scan. 2020-02-07 22:07:44 +09:00
time.sql Reject "23:59:60.nnn" in datetime input. 2020-06-04 16:42:08 -04:00
timestamp.sql Revert "Disallow infinite endpoints in generate_series() for timestamps." 2022-05-09 11:40:41 -04:00
timestamptz.sql Revert "Disallow infinite endpoints in generate_series() for timestamps." 2022-05-09 11:40:41 -04:00
timetz.sql Stabilize timetz test across DST transitions. 2020-10-29 15:28:35 -04:00
transactions.sql Fix bug in COMMIT AND CHAIN command. 2021-02-19 21:59:26 +09:00
triggers.sql Fix tupdesc lifespan bug with AfterTriggersTableData.storeslot. 2022-09-25 17:10:58 -04:00
truncate.sql Fix TRUNCATE .. CASCADE on partitions 2020-02-07 17:09:36 -03:00
tsdicts.sql Validate ispell dictionaries more carefully. 2019-11-02 16:45:32 -04:00
tsearch.sql Fix ts_headline() edge cases for empty query and empty search text. 2023-04-06 15:52:37 -04:00
tsrf.sql Fix handling of targetlist SRFs when scan/join relation is known empty. 2019-03-07 14:22:13 -05:00
tstypes.sql Fix YA text phrase search bug. 2020-05-07 15:59:51 -04:00
txid.sql Add a txid_status function. 2017-03-24 12:00:53 -04:00
type_sanity.sql Fix quoting of ACL item in table for upgrade binary compatibility checks 2021-11-18 12:53:06 +09:00
typed_table.sql Suppress less info in regression tests using DROP CASCADE. 2017-08-01 16:49:23 -04:00
union.sql Repair issues with faulty generation of merge-append plans. 2019-05-09 16:53:05 -04:00
updatable_views.sql Fix multi-row DEFAULT handling for INSERT ... SELECT rules. 2023-02-23 10:57:46 +00:00
update.sql Fix mishandling of resjunk columns in ON CONFLICT ... UPDATE tlists. 2021-05-10 11:02:29 -04:00
uuid.sql Fix whitespace issues found by git diff --check, add gitattributes 2013-11-10 14:48:29 -05:00
vacuum.sql Try to stabilize vacuum test. 2022-03-23 15:08:20 +13:00
varchar.sql Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
window.sql Selectively include window frames in expression walks/mutates. 2019-10-03 11:12:39 +01:00
with.sql Check column list length in XMLTABLE/JSON_TABLE alias 2022-05-18 20:28:31 +02:00
write_parallel.sql Allow DML commands that create tables to use parallel query. 2017-10-05 11:40:48 -04:00
xml.sql Check column list length in XMLTABLE/JSON_TABLE alias 2022-05-18 20:28:31 +02:00
xmlmap.sql Fix incorrect xmlschema output for types timetz and timestamptz. 2022-03-18 16:01:42 -04:00