On Thu, Jul 27, 2023 at 11:30 PM Melih Mutlu <m.melihmu...@gmail.com> wrote: > > Hi Peter, > > Peter Smith <smithpb2...@gmail.com>, 26 Tem 2023 Çar, 07:40 tarihinde şunu > yazdı: >> >> Here are some comments for patch v22-0001. >> >> ====== >> 1. General -- naming conventions >> >> There is quite a lot of inconsistency with variable/parameter naming >> styles in this patch. I understand in most cases the names are copied >> unchanged from the original functions. Still, since this is a big >> refactor anyway, it can also be a good opportunity to clean up those >> inconsistencies instead of just propagating them to different places. >> IIUC, the usual reluctance to rename things because it would cause >> backpatch difficulties doesn't apply here (since everything is being >> refactored anyway). >> >> E.g. Consider using use snake_case names more consistently in the >> following places: > > > I can simply change the places you mentioned, that seems okay to me. > The reason why I did not change the namings in existing variables/functions > is because I did (and still do) not get what's the naming conventions in > those files. Is snake_case the convention for variables in those files (or in > general)? >
TBH, I also don't know if there is a specific Postgres coding guideline to use snake_case or not (and Chat-GPT did not know either when I asked about it). I only assumed snake_case in my previous review comment because the mentioned vars were already all lowercase. Anyway, the point was that whatever style is chosen, it ought to be used *consistently* because having a random mixture of styles in the same function (e.g. worker_slot, originname, origin_startpos, myslotname, options, server_version) seems messy. Meanwhile, I think Amit suggested [1] that for now, we only need to worry about the name consistency in new code. >> 2. SetupApplyOrSyncWorker >> >> -ApplyWorkerMain(Datum main_arg) >> +SetupApplyOrSyncWorker(int worker_slot) >> { >> - int worker_slot = DatumGetInt32(main_arg); >> - char originname[NAMEDATALEN]; >> - XLogRecPtr origin_startpos = InvalidXLogRecPtr; >> - char *myslotname = NULL; >> - WalRcvStreamOptions options; >> - int server_version; >> - >> - InitializingApplyWorker = true; >> - >> /* Attach to slot */ >> logicalrep_worker_attach(worker_slot); >> >> + Assert(am_tablesync_worker() || am_leader_apply_worker()); >> + >> >> Why is the Assert not the very first statement of this function? > > > I would also prefer to assert in the very beginning but am_tablesync_worker > and am_leader_apply_worker require MyLogicalRepWorker to be not NULL. And > MyLogicalRepWorker is assigned in logicalrep_worker_attach. I can change this > if you think there is a better way to check the worker type. > I see. In that case your Assert LGTM. ------ [1] https://www.postgresql.org/message-id/CAA4eK1%2Bh9hWDAKupsoiw556xqh7uvj_F1pjFJc4jQhL89HdGww%40mail.gmail.com Kind Regards, Peter Smith. Fujitsu Australia