Skip to content

Commit 901be0f

Browse files
committed
Remove all the special-case code for INT64_IS_BUSTED, per decision that
we're not going to support that anymore. I did keep the 64-bit-CRC-with-32-bit-arithmetic code, since it has a performance excuse to live. It's a bit moot since that's all ifdef'd out, of course.
1 parent c282b36 commit 901be0f

File tree

16 files changed

+45
-203
lines changed

16 files changed

+45
-203
lines changed

contrib/btree_gin/btree_gin.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* $PostgreSQL: pgsql/contrib/btree_gin/btree_gin.c,v 1.3 2009/08/04 18:49:50 tgl Exp $
2+
* $PostgreSQL: pgsql/contrib/btree_gin/btree_gin.c,v 1.4 2010/01/07 04:53:34 tgl Exp $
33
*/
44
#include "postgres.h"
55

@@ -214,8 +214,7 @@ static Datum
214214
leftmostvalue_int8(void)
215215
{
216216
/*
217-
* Use sequence's definition to keep compatibility. Another way may make a
218-
* problem with INT64_IS_BUSTED
217+
* Use sequence's definition to keep compatibility.
219218
*/
220219
return Int64GetDatum(SEQ_MINVALUE);
221220
}
@@ -245,8 +244,7 @@ static Datum
245244
leftmostvalue_money(void)
246245
{
247246
/*
248-
* Use sequence's definition to keep compatibility. Another way may make a
249-
* problem with INT64_IS_BUSTED
247+
* Use sequence's definition to keep compatibility.
250248
*/
251249
return Int64GetDatum(SEQ_MINVALUE);
252250
}

src/backend/access/hash/hashfunc.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $PostgreSQL: pgsql/src/backend/access/hash/hashfunc.c,v 1.61 2010/01/02 16:57:34 momjian Exp $
11+
* $PostgreSQL: pgsql/src/backend/access/hash/hashfunc.c,v 1.62 2010/01/07 04:53:34 tgl Exp $
1212
*
1313
* NOTES
1414
* These functions are stored in pg_amproc. For each operator class
@@ -59,18 +59,13 @@ hashint8(PG_FUNCTION_ARGS)
5959
* value if the sign is positive, or the complement of the high half when
6060
* the sign is negative.
6161
*/
62-
#ifndef INT64_IS_BUSTED
6362
int64 val = PG_GETARG_INT64(0);
6463
uint32 lohalf = (uint32) val;
6564
uint32 hihalf = (uint32) (val >> 32);
6665

6766
lohalf ^= (val >= 0) ? hihalf : ~hihalf;
6867

6968
return hash_uint32(lohalf);
70-
#else
71-
/* here if we can't count on "x >> 32" to work sanely */
72-
return hash_uint32((int32) PG_GETARG_INT64(0));
73-
#endif
7469
}
7570

7671
Datum

src/backend/libpq/pqformat.c

Lines changed: 1 addition & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
* Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group
2525
* Portions Copyright (c) 1994, Regents of the University of California
2626
*
27-
* $PostgreSQL: pgsql/src/backend/libpq/pqformat.c,v 1.51 2010/01/02 16:57:45 momjian Exp $
27+
* $PostgreSQL: pgsql/src/backend/libpq/pqformat.c,v 1.52 2010/01/07 04:53:34 tgl Exp $
2828
*
2929
*-------------------------------------------------------------------------
3030
*/
@@ -272,12 +272,7 @@ pq_sendint64(StringInfo buf, int64 i)
272272
uint32 n32;
273273

274274
/* High order half first, since we're doing MSB-first */
275-
#ifdef INT64_IS_BUSTED
276-
/* don't try a right shift of 32 on a 32-bit word */
277-
n32 = (i < 0) ? -1 : 0;
278-
#else
279275
n32 = (uint32) (i >> 32);
280-
#endif
281276
n32 = htonl(n32);
282277
appendBinaryStringInfo(buf, (char *) &n32, 4);
283278

@@ -327,27 +322,6 @@ pq_sendfloat4(StringInfo buf, float4 f)
327322
void
328323
pq_sendfloat8(StringInfo buf, float8 f)
329324
{
330-
#ifdef INT64_IS_BUSTED
331-
union
332-
{
333-
float8 f;
334-
uint32 h[2];
335-
} swap;
336-
337-
swap.f = f;
338-
swap.h[0] = htonl(swap.h[0]);
339-
swap.h[1] = htonl(swap.h[1]);
340-
341-
#ifdef WORDS_BIGENDIAN
342-
/* machine seems to be big-endian, send h[0] first */
343-
appendBinaryStringInfo(buf, (char *) &swap.h[0], 4);
344-
appendBinaryStringInfo(buf, (char *) &swap.h[1], 4);
345-
#else
346-
/* machine seems to be little-endian, send h[1] first */
347-
appendBinaryStringInfo(buf, (char *) &swap.h[1], 4);
348-
appendBinaryStringInfo(buf, (char *) &swap.h[0], 4);
349-
#endif
350-
#else /* INT64 works */
351325
union
352326
{
353327
float8 f;
@@ -356,7 +330,6 @@ pq_sendfloat8(StringInfo buf, float8 f)
356330

357331
swap.f = f;
358332
pq_sendint64(buf, swap.i);
359-
#endif
360333
}
361334

362335
/* --------------------------------
@@ -520,18 +493,9 @@ pq_getmsgint64(StringInfo msg)
520493
h32 = ntohl(h32);
521494
l32 = ntohl(l32);
522495

523-
#ifdef INT64_IS_BUSTED
524-
/* error out if incoming value is wider than 32 bits */
525-
result = l32;
526-
if ((result < 0) ? (h32 != -1) : (h32 != 0))
527-
ereport(ERROR,
528-
(errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE),
529-
errmsg("binary value is out of range for type bigint")));
530-
#else
531496
result = h32;
532497
result <<= 32;
533498
result |= l32;
534-
#endif
535499

536500
return result;
537501
}
@@ -564,24 +528,6 @@ pq_getmsgfloat4(StringInfo msg)
564528
float8
565529
pq_getmsgfloat8(StringInfo msg)
566530
{
567-
#ifdef INT64_IS_BUSTED
568-
union
569-
{
570-
float8 f;
571-
uint32 h[2];
572-
} swap;
573-
574-
#ifdef WORDS_BIGENDIAN
575-
/* machine seems to be big-endian, receive h[0] first */
576-
swap.h[0] = pq_getmsgint(msg, 4);
577-
swap.h[1] = pq_getmsgint(msg, 4);
578-
#else
579-
/* machine seems to be little-endian, receive h[1] first */
580-
swap.h[1] = pq_getmsgint(msg, 4);
581-
swap.h[0] = pq_getmsgint(msg, 4);
582-
#endif
583-
return swap.f;
584-
#else /* INT64 works */
585531
union
586532
{
587533
float8 f;
@@ -590,7 +536,6 @@ pq_getmsgfloat8(StringInfo msg)
590536

591537
swap.i = pq_getmsgint64(msg);
592538
return swap.f;
593-
#endif
594539
}
595540

596541
/* --------------------------------

src/backend/utils/adt/int8.c

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* Portions Copyright (c) 1994, Regents of the University of California
88
*
99
* IDENTIFICATION
10-
* $PostgreSQL: pgsql/src/backend/utils/adt/int8.c,v 1.76 2010/01/02 16:57:54 momjian Exp $
10+
* $PostgreSQL: pgsql/src/backend/utils/adt/int8.c,v 1.77 2010/01/07 04:53:34 tgl Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -76,15 +76,12 @@ scanint8(const char *str, bool errorOK, int64 *result)
7676
* Do an explicit check for INT64_MIN. Ugly though this is, it's
7777
* cleaner than trying to get the loop below to handle it portably.
7878
*/
79-
#ifndef INT64_IS_BUSTED
8079
if (strncmp(ptr, "9223372036854775808", 19) == 0)
8180
{
8281
tmp = -INT64CONST(0x7fffffffffffffff) - 1;
8382
ptr += 19;
8483
goto gotdigits;
8584
}
86-
#endif
87-
8885
sign = -1;
8986
}
9087
else if (*ptr == '+')
@@ -575,12 +572,9 @@ int8mul(PG_FUNCTION_ARGS)
575572
* Since the division is likely much more expensive than the actual
576573
* multiplication, we'd like to skip it where possible. The best bang for
577574
* the buck seems to be to check whether both inputs are in the int32
578-
* range; if so, no overflow is possible. (But that only works if we
579-
* really have a 64-bit int64 datatype...)
575+
* range; if so, no overflow is possible.
580576
*/
581-
#ifndef INT64_IS_BUSTED
582577
if (arg1 != (int64) ((int32) arg1) || arg2 != (int64) ((int32) arg2))
583-
#endif
584578
{
585579
if (arg2 != 0 &&
586580
(result / arg2 != arg1 || (arg2 == -1 && arg1 < 0 && result < 0)))

src/backend/utils/adt/numeric.c

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* Copyright (c) 1998-2010, PostgreSQL Global Development Group
1515
*
1616
* IDENTIFICATION
17-
* $PostgreSQL: pgsql/src/backend/utils/adt/numeric.c,v 1.120 2010/01/02 16:57:54 momjian Exp $
17+
* $PostgreSQL: pgsql/src/backend/utils/adt/numeric.c,v 1.121 2010/01/07 04:53:34 tgl Exp $
1818
*
1919
*-------------------------------------------------------------------------
2020
*/
@@ -2808,16 +2808,8 @@ int8_sum(PG_FUNCTION_ARGS)
28082808

28092809
typedef struct Int8TransTypeData
28102810
{
2811-
#ifndef INT64_IS_BUSTED
28122811
int64 count;
28132812
int64 sum;
2814-
#else
2815-
/* "int64" isn't really 64 bits, so fake up properly-aligned fields */
2816-
int32 count;
2817-
int32 pad1;
2818-
int32 sum;
2819-
int32 pad2;
2820-
#endif
28212813
} Int8TransTypeData;
28222814

28232815
Datum

src/backend/utils/adt/txid.c

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* Author: Jan Wieck, Afilias USA INC.
1515
* 64-bit txids: Marko Kreen, Skype Technologies
1616
*
17-
* $PostgreSQL: pgsql/src/backend/utils/adt/txid.c,v 1.10 2010/01/02 16:57:55 momjian Exp $
17+
* $PostgreSQL: pgsql/src/backend/utils/adt/txid.c,v 1.11 2010/01/07 04:53:34 tgl Exp $
1818
*
1919
*-------------------------------------------------------------------------
2020
*/
@@ -30,13 +30,8 @@
3030
#include "utils/snapmgr.h"
3131

3232

33-
#ifndef INT64_IS_BUSTED
3433
/* txid will be signed int8 in database, so must limit to 63 bits */
3534
#define MAX_TXID UINT64CONST(0x7FFFFFFFFFFFFFFF)
36-
#else
37-
/* we only really have 32 bits to work with :-( */
38-
#define MAX_TXID UINT64CONST(0x7FFFFFFF)
39-
#endif
4035

4136
/* Use unsigned variant internally */
4237
typedef uint64 txid;
@@ -97,7 +92,6 @@ load_xid_epoch(TxidEpoch *state)
9792
static txid
9893
convert_xid(TransactionId xid, const TxidEpoch *state)
9994
{
100-
#ifndef INT64_IS_BUSTED
10195
uint64 epoch;
10296

10397
/* return special xid's as-is */
@@ -114,10 +108,6 @@ convert_xid(TransactionId xid, const TxidEpoch *state)
114108
epoch++;
115109

116110
return (epoch << 32) | xid;
117-
#else /* INT64_IS_BUSTED */
118-
/* we can't do anything with the epoch, so ignore it */
119-
return (txid) xid & MAX_TXID;
120-
#endif /* INT64_IS_BUSTED */
121111
}
122112

123113
/*

src/backend/utils/adt/varbit.c

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
* Portions Copyright (c) 1994, Regents of the University of California
1010
*
1111
* IDENTIFICATION
12-
* $PostgreSQL: pgsql/src/backend/utils/adt/varbit.c,v 1.60 2010/01/02 16:57:55 momjian Exp $
12+
* $PostgreSQL: pgsql/src/backend/utils/adt/varbit.c,v 1.61 2010/01/07 04:53:34 tgl Exp $
1313
*
1414
*-------------------------------------------------------------------------
1515
*/
@@ -1414,11 +1414,7 @@ bitfromint8(PG_FUNCTION_ARGS)
14141414

14151415
r = VARBITS(result);
14161416
destbitsleft = typmod;
1417-
#ifndef INT64_IS_BUSTED
14181417
srcbitsleft = 64;
1419-
#else
1420-
srcbitsleft = 32; /* don't try to shift more than 32 */
1421-
#endif
14221418
/* drop any input bits that don't fit */
14231419
srcbitsleft = Min(srcbitsleft, destbitsleft);
14241420
/* sign-fill any excess bytes in output */

src/backend/utils/fmgr/fmgr.c

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $PostgreSQL: pgsql/src/backend/utils/fmgr/fmgr.c,v 1.128 2010/01/02 16:57:56 momjian Exp $
11+
* $PostgreSQL: pgsql/src/backend/utils/fmgr/fmgr.c,v 1.129 2010/01/07 04:53:34 tgl Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -2112,24 +2112,10 @@ fmgr(Oid procedureId,...)
21122112
Datum
21132113
Int64GetDatum(int64 X)
21142114
{
2115-
#ifndef INT64_IS_BUSTED
21162115
int64 *retval = (int64 *) palloc(sizeof(int64));
21172116

21182117
*retval = X;
21192118
return PointerGetDatum(retval);
2120-
#else /* INT64_IS_BUSTED */
2121-
2122-
/*
2123-
* On a machine with no 64-bit-int C datatype, sizeof(int64) will not be
2124-
* 8, but we want Int64GetDatum to return an 8-byte object anyway, with
2125-
* zeroes in the unused bits. This is needed so that, for example, hash
2126-
* join of int8 will behave properly.
2127-
*/
2128-
int64 *retval = (int64 *) palloc0(Max(sizeof(int64), 8));
2129-
2130-
*retval = X;
2131-
return PointerGetDatum(retval);
2132-
#endif /* INT64_IS_BUSTED */
21332119
}
21342120
#endif /* USE_FLOAT8_BYVAL */
21352121

src/backend/utils/hash/pg_crc.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
*
2020
*
2121
* IDENTIFICATION
22-
* $PostgreSQL: pgsql/src/backend/utils/hash/pg_crc.c,v 1.22 2010/01/02 16:57:56 momjian Exp $
22+
* $PostgreSQL: pgsql/src/backend/utils/hash/pg_crc.c,v 1.23 2010/01/07 04:53:34 tgl Exp $
2323
*
2424
*-------------------------------------------------------------------------
2525
*/
@@ -115,7 +115,7 @@ const uint32 pg_crc32_table[256] = {
115115
* (ECMA-182, available from http://www.ecma.ch/ecma1/STAND/ECMA-182.HTM)
116116
*/
117117

118-
#ifdef INT64_IS_BUSTED
118+
#if SIZEOF_VOID_P < 8 /* this test must match the one in pg_crc.h */
119119

120120
const uint32 pg_crc64_table0[256] = {
121121
0x00000000, 0xA9EA3693,
@@ -378,7 +378,8 @@ const uint32 pg_crc64_table1[256] = {
378378
0x5DEDC41A, 0x1F1D25F1,
379379
0xD80C07CD, 0x9AFCE626
380380
};
381-
#else /* int64 works */
381+
382+
#else /* use int64 implementation */
382383

383384
const uint64 pg_crc64_table[256] = {
384385
UINT64CONST(0x0000000000000000), UINT64CONST(0x42F0E1EBA9EA3693),
@@ -510,6 +511,6 @@ const uint64 pg_crc64_table[256] = {
510511
UINT64CONST(0x5DEDC41A34BBEEB2), UINT64CONST(0x1F1D25F19D51D821),
511512
UINT64CONST(0xD80C07CD676F8394), UINT64CONST(0x9AFCE626CE85B507)
512513
};
513-
#endif /* INT64_IS_BUSTED */
514+
#endif /* SIZEOF_VOID_P < 8 */
514515

515516
#endif /* PROVIDE_64BIT_CRC */

src/backend/utils/misc/guc.c

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
* Written by Peter Eisentraut <peter_e@gmx.net>.
1111
*
1212
* IDENTIFICATION
13-
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.531 2010/01/02 16:57:58 momjian Exp $
13+
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.532 2010/01/07 04:53:35 tgl Exp $
1414
*
1515
*--------------------------------------------------------------------
1616
*/
@@ -4240,10 +4240,6 @@ parse_int(const char *value, int *result, int flags, const char **hintmsg)
42404240
/*
42414241
* Note: the multiple-switch coding technique here is a bit tedious,
42424242
* but seems necessary to avoid intermediate-value overflows.
4243-
*
4244-
* If INT64_IS_BUSTED (ie, it's really int32) we will fail to detect
4245-
* overflow due to units conversion, but there are few enough such
4246-
* machines that it does not seem worth trying to be smarter.
42474243
*/
42484244
if (flags & GUC_UNIT_MEMORY)
42494245
{
@@ -6627,10 +6623,7 @@ _ShowOption(struct config_generic * record, bool use_units)
66276623
{
66286624
/*
66296625
* Use int64 arithmetic to avoid overflows in units
6630-
* conversion. If INT64_IS_BUSTED we might overflow
6631-
* anyway and print bogus answers, but there are few
6632-
* enough such machines that it doesn't seem worth trying
6633-
* harder.
6626+
* conversion.
66346627
*/
66356628
int64 result = *conf->variable;
66366629
const char *unit;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy