mirror of
https://github.com/postgres/postgres.git
synced 2025-09-02 04:21:28 +03:00
Support fls().
The immediate impetus for this is that Noah Misch's patch to elide unnecessary table and index rebuilds when changing typmod for temporal types uses it; and this is extracted from that patch, with some further commentary by me. But it seems logically separate from the remainder of the patch, so I'm committing it separately; this is not the first time someone has wanted fls() in the backend and probably won't be the last. If we end up using this in more performance-critical spots it may be worthwhile to add some architecture-specific optimizations to our src/port version of fls() - e.g. any x86 platform can implement this using the assembly instruction BSRL. But performance won't matter a bit for assessing typmod changes, so I'm not worried about that right now.
This commit is contained in:
@@ -396,6 +396,10 @@ extern double pg_erand48(unsigned short xseed[3]);
|
||||
extern long pg_lrand48(void);
|
||||
extern void pg_srand48(long seed);
|
||||
|
||||
#ifndef HAVE_FLS
|
||||
extern int fls(int mask);
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_FSEEKO
|
||||
#define fseeko(a, b, c) fseek(a, b, c)
|
||||
#define ftello(a) ftell(a)
|
||||
|
Reference in New Issue
Block a user