From: Hou, Zhijie <houzj.f...@cn.fujitsu.com> > IMO, max_parallel_hazard() only check the parent table's default expressions, > But if the table has partitions and its partition have its own default > expressions, > max_parallel_hazard() seems does not check that. > And we seems does not check that too. > > I am not sure should we allow parallel insert for this case ?
I think we can allow parallel insert in this case, because the column value is determined according to the DEFAULT definition of the target table specified in the INSERT statement. This is described here: https://www.postgresql.org/docs/devel/sql-createtable.html "Defaults may be specified separately for each partition. But note that a partition's default value is not applied when inserting a tuple through a partitioned table." So the parallel-unsafe function should not be called. Regards Takayuki Tsunakawa