BUG #18363: Assert !ReindexIsProcessingIndex falsified with expression index over select from table
От | PG Bug reporting form |
---|---|
Тема | BUG #18363: Assert !ReindexIsProcessingIndex falsified with expression index over select from table |
Дата | |
Msg-id | 18363-e3598a5a572d0699@postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #18363: Assert !ReindexIsProcessingIndex falsified with expression index over select from table
|
Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 18363 Logged by: Alexander Lakhin Email address: exclusion@gmail.com PostgreSQL version: 16.2 Operating system: Ubuntu 22.04 Description: The following script: CREATE TABLE t(i INT PRIMARY KEY); CREATE FUNCTION f(i int) RETURNS int IMMUTABLE LANGUAGE SQL RETURN (SELECT i FROM t WHERE i = $1); CREATE INDEX ON t(f(i)); INSERT INTO t VALUES (1); REINDEX INDEX t_f_idx; triggers an assertion failure with the stack trace: TRAP: failed Assert("!ReindexIsProcessingIndex(RelationGetRelid(indexRelation))"), File: "indexam.c", Line: 778, PID: 1339223 ExceptionalCondition at assert.c:52:13 index_getprocid at indexam.c:817:1 get_relation_info at plancat.c:272:24 build_simple_rel at relnode.c:379:5 add_base_rels_to_query at initsplan.c:166:10 add_base_rels_to_query at initsplan.c:173:3 query_planner at planmain.c:180:2 grouping_planner at planner.c:1495:17 subquery_planner at planner.c:1070:2 make_subplan at subselect.c:221:12 process_sublinks_mutator at subselect.c:1950:10 expression_tree_mutator_impl at nodeFuncs.c:3302:5 process_sublinks_mutator at subselect.c:2052:9 expression_tree_mutator_impl at nodeFuncs.c:3389:12 process_sublinks_mutator at subselect.c:2052:9 SS_process_sublinks at subselect.c:1924:1 preprocess_expression at planner.c:1171:10 subquery_planner at planner.c:810:20 standard_planner at planner.c:413:9 planner at planner.c:282:9 pg_plan_query at postgres.c:904:9 init_execution_state at functions.c:497:12 init_sql_fcache at functions.c:797:21 fmgr_sql at functions.c:1097:40 ExecInterpExpr at execExprInterp.c:735:7 ExecInterpExprStillValid at execExprInterp.c:1871:1 MemoryContextSwitchTo at palloc.h:142:23 (inlined by) ExecEvalExprSwitchContext at executor.h:356:2 (inlined by) FormIndexDatum at index.c:2774:13 heapam_index_build_range_scan at heapam_handler.c:1660:7 table_index_build_scan at tableam.h:1781:9 (inlined by) _bt_spools_heapscan at nbtsort.c:483:15 btbuild at nbtsort.c:329:14 index_build at index.c:3042:10 reindex_index at index.c:3763:2 ReindexIndex at indexcmds.c:2793:1 ExecReindex at indexcmds.c:2741:1 standard_ProcessUtility at utility.c:965:4 ProcessUtility at utility.c:530:3 PortalRunUtility at pquery.c:1168:2 PortalRunMulti at pquery.c:1315:5 PortalRun at pquery.c:795:5 exec_simple_query at postgres.c:1282:3 PostgresMain at postgres.c:4641:27 report_fork_failure_to_client at postmaster.c:4242:1 BackendStartup at postmaster.c:4199:22 ServerLoop at postmaster.c:1788:6 BackgroundWorkerInitializeConnection at postmaster.c:5604:1 main at main.c:185:3 With a non-assertion-enabled build it fails with: ERROR: could not read block 0 in file "base/16384/16392": read only 0 of 8192 bytes CONTEXT: SQL function "f" during startup Surely, such an index will not work correctly anyway, but may be it makes sense to replace that Assert with ereport(ERROR).
В списке pgsql-bugs по дате отправления: