> 'git apply' is very picky. Use 'patch -p1' to apply your patches instead. > > Also, use 'git diff --check' or 'git log --check' before generating > patches to send, and fix any whitespace errors before submitting.
Thanks for the suggestion. I will follow these. > I see that you have made a theoretical argument for why this should be > good for performance, but it would be better to have some test results > that show that it works out in practice. Sometimes things seem like > they ought to be more efficient but turn out to be less efficient when > they are actually tried. Created a table with one column of type 'int' and partitioned by that column. Created 1 million partitions using following queries. create table t(a int) partition by list(a); select 'create table t_' || i || ' partition of t for values in (' || i || ');' from generate_series(1, 10000) i \gexec After this I tried to create 10 partitions and observed the time taken to execute. Here is the data for 'with patch'. postgres@34077=#select 'create table t_' || i || ' partition of t for postgres'# values in (' || i || ');' postgres-# from generate_series(10001, 10010) i postgres-# \gexec CREATE TABLE Time: 36.863 ms CREATE TABLE Time: 46.645 ms CREATE TABLE Time: 44.915 ms CREATE TABLE Time: 39.660 ms CREATE TABLE Time: 42.188 ms CREATE TABLE Time: 43.163 ms CREATE TABLE Time: 44.374 ms CREATE TABLE Time: 45.117 ms CREATE TABLE Time: 40.340 ms CREATE TABLE Time: 38.604 ms The data for 'without patch' looks like this. postgres@31718=#select 'create table t_' || i || ' partition of t for postgres'# values in (' || i || ');' postgres-# from generate_series(10001, 10010) i postgres-# \gexec CREATE TABLE Time: 45.917 ms CREATE TABLE Time: 46.815 ms CREATE TABLE Time: 44.180 ms CREATE TABLE Time: 48.163 ms CREATE TABLE Time: 45.884 ms CREATE TABLE Time: 48.330 ms CREATE TABLE Time: 48.614 ms CREATE TABLE Time: 48.376 ms CREATE TABLE Time: 46.380 ms CREATE TABLE Time: 48.233 ms If we observe above data, we can see the improvement with the patch. The average time taken to execute for the last 10 partitions is. With patch - 42.1869 ms Without patch - 47.0892 ms. With respect to memory usage, AFAIK the allocated memory gets cleaned during deallocation of the memory used by the memory context. So at the end of the query, we may see no difference in the memory usage but during the query execution it tries to get less memory than before. Maybe during some worst case scenario, if there is less memory available, we may see 'out of memory' errors without the patch but it may work with the patch. I have not done experiments in this angle. I am happy to do it if required. Please share your thoughts. -- Thanks & Regards, Nitin Jadhav On Tue, May 18, 2021 at 11:19 PM Robert Haas <robertmh...@gmail.com> wrote: > > On Tue, May 18, 2021 at 1:29 PM Nitin Jadhav > <nitinjadhavpostg...@gmail.com> wrote: > > > The CFBOT had no issues with the patches, so I suspect an issue on your > > > side. > > > http://cfbot.cputube.org/nitin-jadhav.html > > > > I am getting the following error when I try to apply in my machine. > > > > $ git apply > > ../patches/0001-Removed-extra-memory-allocations-from-create_list_bo.patch > > ../patches/0001-Removed-extra-memory-allocations-from-create_list_bo.patch:18: > > trailing whitespace. > > 'git apply' is very picky. Use 'patch -p1' to apply your patches instead. > > Also, use 'git diff --check' or 'git log --check' before generating > patches to send, and fix any whitespace errors before submitting. > > I see that you have made a theoretical argument for why this should be > good for performance, but it would be better to have some test results > that show that it works out in practice. Sometimes things seem like > they ought to be more efficient but turn out to be less efficient when > they are actually tried. > > -- > Robert Haas > EDB: http://www.enterprisedb.com