pgsql: In the executor,use an array of pointers to access the rangetab
От | Tom Lane |
---|---|
Тема | pgsql: In the executor,use an array of pointers to access the rangetab |
Дата | |
Msg-id | E1g89bj-0003Wq-K5@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
In the executor, use an array of pointers to access the rangetable. Instead of doing a lot of list_nth() accesses to es_range_table, create a flattened pointer array during executor startup and index into that to get at individual RangeTblEntrys. This eliminates one source of O(N^2) behavior with lots of partitions. (I'm not exactly convinced that it's the most important source, but it's an easy one to fix.) Amit Langote and David Rowley Discussion: https://postgr.es/m/468c85d9-540e-66a2-1dde-fec2b741e688@lab.ntt.co.jp Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/d73f4c74dd34b19c19839f7ae09fb96442728509 Modified Files -------------- contrib/postgres_fdw/postgres_fdw.c | 12 ++++---- src/backend/commands/copy.c | 5 ++-- src/backend/commands/trigger.c | 2 +- src/backend/executor/execExprInterp.c | 6 ++-- src/backend/executor/execMain.c | 34 +++++++++------------- src/backend/executor/execUtils.c | 49 +++++++++++++++++++++++++++++--- src/backend/executor/nodeLockRows.c | 2 +- src/backend/replication/logical/worker.c | 3 +- src/include/executor/executor.h | 9 ++++++ src/include/nodes/execnodes.h | 7 +++-- src/include/parser/parsetree.h | 10 ------- 11 files changed, 87 insertions(+), 52 deletions(-)
В списке pgsql-committers по дате отправления: