gratuitous casting away const

Поиск
Список
Период
Сортировка
От Mark Dilger
Тема gratuitous casting away const
Дата
Msg-id ACF3A030-E3D5-4E68-B744-184E11DE68F3@gmail.com
обсуждение исходный текст
Ответы Re: gratuitous casting away const  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Friends,

There are places in the code that cast away const for no apparent
reason, fixed like such:



diff --git a/src/backend/executor/nodeIndexscan.c b/src/backend/executor/nodeIndexscan.c
index 3143bd9..fe2cfc2 100644
--- a/src/backend/executor/nodeIndexscan.c
+++ b/src/backend/executor/nodeIndexscan.c
@@ -409,8 +409,8 @@ static intreorderqueue_cmp(const pairingheap_node *a, const pairingheap_node *b,
           void *arg){ 
-       ReorderTuple *rta = (ReorderTuple *) a;
-       ReorderTuple *rtb = (ReorderTuple *) b;
+       const ReorderTuple *rta = (const ReorderTuple *) a;
+       const ReorderTuple *rtb = (const ReorderTuple *) b;       IndexScanState *node = (IndexScanState *) arg;
return-cmp_orderbyvals(rta->orderbyvals, rta->orderbynulls, 



There are also places which appear to cast away const due to using
typedefs that don't include const, which make for a more messy fix,
like such:



diff --git a/src/backend/storage/page/bufpage.c b/src/backend/storage/page/bufpage.c
index 73aa0c0..9e157a3 100644
--- a/src/backend/storage/page/bufpage.c
+++ b/src/backend/storage/page/bufpage.c
@@ -1037,7 +1037,7 @@ PageIndexTupleDeleteNoCompact(Page page, OffsetNumber offnum) */boolPageIndexTupleOverwrite(Page
page,OffsetNumber offnum, 
-                                               Item newtup, Size newsize)
+                                               const char *newtup, Size newsize){       PageHeader      phdr =
(PageHeader)page;       ItemId          tupid; 
diff --git a/src/include/storage/bufpage.h b/src/include/storage/bufpage.h
index ad4ab5f..cd97a1a 100644
--- a/src/include/storage/bufpage.h
+++ b/src/include/storage/bufpage.h
@@ -431,7 +431,7 @@ extern void PageIndexTupleDelete(Page page, OffsetNumber offset);extern void
PageIndexMultiDelete(Pagepage, OffsetNumber *itemnos, int nitems);extern void PageIndexTupleDeleteNoCompact(Page page,
OffsetNumberoffset);extern bool PageIndexTupleOverwrite(Page page, OffsetNumber offnum, 
-                                               Item newtup, Size newsize);
+                                               const char *newtup, Size newsize);extern char *PageSetChecksumCopy(Page
page,BlockNumber blkno);extern void PageSetChecksumInplace(Page page, BlockNumber blkno); 



Are these castings away of const consistent with the project's coding standards?
Would patches to not cast away const be considered?

Thanks,

Mark Dilger


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: Rename max_parallel_degree?
Следующее
От: Robert Haas
Дата:
Сообщение: Re: increasing the default WAL segment size