Hi hackers, When I was reading postgres code, I found there is a wierd type cast. I'm pondering if it is necessary.
``` /* Allocate a new typmod number. This will be wasted if we error out. */ typmod = (int) pg_atomic_fetch_add_u32(&CurrentSession->shared_typmod_registry->next_typmod, 1); ``` typmod has u32 type, but we cast it to int first. And I also have some confusion about why `NextRecordTypmod` and `TupleDescData.tdtypmod` has type of int32, but `SharedTypmodTableEntry.typmod` has type of uint32. Best regard, Qinghao Huang