diff --git a/pgxn/neon/extension_server.c b/pgxn/neon/extension_server.c index 597eed8db5..fbbb8fd448 100644 --- a/pgxn/neon/extension_server.c +++ b/pgxn/neon/extension_server.c @@ -29,15 +29,16 @@ static int extension_server_port = 0; static download_extension_file_hook_type prev_download_extension_file_hook = NULL; -/* to download all SQL (and data) files for an extension: */ -/* curl -X POST http://localhost:8080/extension_server/postgis */ -/* it covers two possible extension files layouts: */ -/* 1. extension_name--version--platform.sql */ -/* 2. extension_name/extension_name--version.sql */ -/* extension_name/extra_files.csv */ -/* */ -/* to download specific library file: */ -/* curl -X POST http://localhost:8080/extension_server/postgis-3.so?is_library=true */ +/* + * to download all SQL (and data) files for an extension: + * curl -X POST http://localhost:8080/extension_server/postgis + * it covers two possible extension files layouts: + * 1. extension_name--version--platform.sql + * 2. extension_name/extension_name--version.sql + * extension_name/extra_files.csv + * to download specific library file: + * curl -X POST http://localhost:8080/extension_server/postgis-3.so?is_library=true + */ static bool neon_download_extension_file_http(const char *filename, bool is_library) { diff --git a/pgxn/neon/file_cache.c b/pgxn/neon/file_cache.c index 991b553b10..54b3661e66 100644 --- a/pgxn/neon/file_cache.c +++ b/pgxn/neon/file_cache.c @@ -219,12 +219,12 @@ lfc_shmem_startup(void) lfc_lock = (LWLockId) GetNamedLWLockTranche("lfc_lock"); info.keysize = sizeof(BufferTag); info.entrysize = sizeof(FileCacheEntry); - lfc_hash = ShmemInitHash("lfc_hash", /* * lfc_size+1 because we add new element to hash table before eviction * of victim */ + lfc_hash = ShmemInitHash("lfc_hash", lfc_size + 1, lfc_size + 1, &info, HASH_ELEM | HASH_BLOBS); @@ -576,11 +576,10 @@ lfc_read(NRelFileInfo rinfo, ForkNumber forkNum, BlockNumber blkno, * If cache is full then evict some other page. */ void - lfc_write(NRelFileInfo rinfo, ForkNumber forkNum, BlockNumber blkno, #if PG_MAJORVERSION_NUM < 16 - char *buffer) +lfc_write(NRelFileInfo rinfo, ForkNumber forkNum, BlockNumber blkno, char *buffer) #else - const void *buffer) +lfc_write(NRelFileInfo rinfo, ForkNumber forkNum, BlockNumber blkno, const void *buffer) #endif { BufferTag tag; @@ -626,13 +625,19 @@ void { /* * We have two choices if all cache pages are pinned (i.e. used in IO - * operations): 1. Wait until some of this operation is completed and - * pages is unpinned 2. Allocate one more chunk, so that specified - * cache size is more recommendation than hard limit. As far as - * probability of such event (that all pages are pinned) is considered - * to be very very small: there are should be very large number of - * concurrent IO operations and them are limited by max_connections, - * we prefer not to complicate code and use second approach. + * operations): + * + * 1) Wait until some of this operation is completed and pages is + * unpinned. + * + * 2) Allocate one more chunk, so that specified cache size is more + * recommendation than hard limit. + * + * As far as probability of such event (that all pages are pinned) is + * considered to be very very small: there are should be very large + * number of concurrent IO operations and them are limited by + * max_connections, we prefer not to complicate code and use second + * approach. */ if (lfc_ctl->used >= lfc_ctl->limit && !dlist_is_empty(&lfc_ctl->lru)) { diff --git a/pgxn/neon/neon.c b/pgxn/neon/neon.c index 6a8f8cca70..b930fdb3ca 100644 --- a/pgxn/neon/neon.c +++ b/pgxn/neon/neon.c @@ -48,9 +48,11 @@ _PG_init(void) pg_init_extension_server(); - /* Important: This must happen after other parts of the extension */ - /* are loaded, otherwise any settings to GUCs that were set before */ - /* the extension was loaded will be removed. */ + /* + * Important: This must happen after other parts of the extension are + * loaded, otherwise any settings to GUCs that were set before the + * extension was loaded will be removed. + */ EmitWarningsOnPlaceholders("neon"); } diff --git a/pgxn/neon/neon_pgversioncompat.h b/pgxn/neon/neon_pgversioncompat.h index d38ef48910..f19732cbbb 100644 --- a/pgxn/neon/neon_pgversioncompat.h +++ b/pgxn/neon/neon_pgversioncompat.h @@ -109,4 +109,4 @@ #define DropRelationAllLocalBuffers DropRelationAllLocalBuffers #endif -#endif /* //NEON_PGVERSIONCOMPAT_H */ +#endif /* NEON_PGVERSIONCOMPAT_H */ diff --git a/pgxn/neon/pagestore_smgr.c b/pgxn/neon/pagestore_smgr.c index c9c41cd1cc..609d80588c 100644 --- a/pgxn/neon/pagestore_smgr.c +++ b/pgxn/neon/pagestore_smgr.c @@ -370,9 +370,8 @@ readahead_buffer_resize(int newsize, void *extra) uint64 end, nfree = newsize; PrefetchState *newPState; - Size newprfs_size = offsetof(PrefetchState, prf_buffer) + ( - sizeof(PrefetchRequest) * newsize - ); + Size newprfs_size = offsetof(PrefetchState, prf_buffer) + + (sizeof(PrefetchRequest) * newsize); /* don't try to re-initialize if we haven't initialized yet */ if (MyPState == NULL) @@ -1243,11 +1242,10 @@ PageIsEmptyHeapPage(char *buffer) } static void - neon_wallog_page(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, #if PG_MAJORVERSION_NUM < 16 - char *buffer, bool force) +neon_wallog_page(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, char *buffer, bool force) #else - const char *buffer, bool force) +neon_wallog_page(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, const char *buffer, bool force) #endif { XLogRecPtr lsn = PageGetLSN((Page) buffer); @@ -1352,9 +1350,8 @@ neon_init(void) if (MyPState != NULL) return; - prfs_size = offsetof(PrefetchState, prf_buffer) + ( - sizeof(PrefetchRequest) * readahead_buffer_size - ); + prfs_size = offsetof(PrefetchState, prf_buffer) + + sizeof(PrefetchRequest) * readahead_buffer_size; MyPState = MemoryContextAllocZero(TopMemoryContext, prfs_size); @@ -1901,8 +1898,8 @@ neon_close(SMgrRelation reln, ForkNumber forknum) bool neon_prefetch(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum) { - BufferTag tag; uint64 ring_index PG_USED_FOR_ASSERTS_ONLY; + BufferTag tag; switch (reln->smgr_relpersistence) { @@ -1921,11 +1918,9 @@ neon_prefetch(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum) if (lfc_cache_contains(InfoFromSMgrRel(reln), forknum, blocknum)) return false; - tag = (BufferTag) - { - .forkNum = forknum, - .blockNum = blocknum - }; + tag.forkNum = forknum; + tag.blockNum = blocknum; + CopyNRelFileInfoToBufTag(tag, InfoFromSMgrRel(reln)); ring_index = prefetch_register_buffer(tag, NULL, NULL); @@ -1978,26 +1973,23 @@ neon_writeback(SMgrRelation reln, ForkNumber forknum, * While function is defined in the neon extension it's used within neon_test_utils directly. * To avoid breaking tests in the runtime please keep function signature in sync. */ +void #if PG_MAJORVERSION_NUM < 16 -void PGDLLEXPORT neon_read_at_lsn(NRelFileInfo rinfo, ForkNumber forkNum, BlockNumber blkno, XLogRecPtr request_lsn, bool request_latest, char *buffer) #else -void PGDLLEXPORT neon_read_at_lsn(NRelFileInfo rinfo, ForkNumber forkNum, BlockNumber blkno, XLogRecPtr request_lsn, bool request_latest, void *buffer) #endif { NeonResponse *resp; - BufferTag buftag; uint64 ring_index; PrfHashEntry *entry; PrefetchRequest *slot; - - buftag = (BufferTag) + BufferTag buftag = { .forkNum = forkNum, - .blockNum = blkno, + .blockNum = blkno, }; CopyNRelFileInfoToBufTag(buftag, rinfo); @@ -2120,11 +2112,10 @@ neon_read_at_lsn(NRelFileInfo rinfo, ForkNumber forkNum, BlockNumber blkno, * neon_read() -- Read the specified block from a relation. */ void - neon_read(SMgrRelation reln, ForkNumber forkNum, BlockNumber blkno, #if PG_MAJORVERSION_NUM < 16 - char *buffer) +neon_read(SMgrRelation reln, ForkNumber forkNum, BlockNumber blkno, char *buffer) #else - void *buffer) +neon_read(SMgrRelation reln, ForkNumber forkNum, BlockNumber blkno, void *buffer) #endif { bool latest; @@ -2259,11 +2250,10 @@ hexdump_page(char *page) * use mdextend(). */ void - neon_write(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, #if PG_MAJORVERSION_NUM < 16 - char *buffer, bool skipFsync) +neon_write(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, char *buffer, bool skipFsync) #else - const void *buffer, bool skipFsync) +neon_write(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, const void *buffer, bool skipFsync) #endif { XLogRecPtr lsn; diff --git a/pgxn/neon/walproposer.h b/pgxn/neon/walproposer.h index ae7812e710..615018c58e 100644 --- a/pgxn/neon/walproposer.h +++ b/pgxn/neon/walproposer.h @@ -716,7 +716,7 @@ extern void WalProposerFree(WalProposer *wp); * events */ #ifdef WALPROPOSER_LIB -void WalProposerLibLog(WalProposer *wp, int elevel, char *fmt,...); +extern void WalProposerLibLog(WalProposer *wp, int elevel, char *fmt,...); #define walprop_log(elevel, ...) WalProposerLibLog(wp, elevel, __VA_ARGS__) #else #define walprop_log(elevel, ...) elog(elevel, __VA_ARGS__)