mirror of
https://github.com/postgres/postgres.git
synced 2025-10-16 17:07:43 +03:00
Mop-up for Datum conversion cleanups.
Fix a couple more places where an explicit Datum conversion
is needed (not clear how we missed these in ff89e182d
and
previous commits).
Replace the minority usage "(Datum) NULL" with "(Datum) 0".
The former depends on the assumption that Datum is the same
width as Pointer, the latter doesn't. Anyway consistency
is a good thing.
This is, I believe, the last of the notational mop-up needed
before we can consider changing Datum to uint64 everywhere.
It's also important cleanup for more aggressive ideas such
as making Datum a struct.
Discussion: https://postgr.es/m/1749799.1752797397@sss.pgh.pa.us
Discussion: https://postgr.es/m/8246d7ff-f4b7-4363-913e-827dadfeb145@eisentraut.org
This commit is contained in:
@@ -84,7 +84,7 @@ _ltree_compress(PG_FUNCTION_ARGS)
|
|||||||
entry->rel, entry->page,
|
entry->rel, entry->page,
|
||||||
entry->offset, false);
|
entry->offset, false);
|
||||||
}
|
}
|
||||||
else if (!LTG_ISALLTRUE(entry->key))
|
else if (!LTG_ISALLTRUE(DatumGetPointer(entry->key)))
|
||||||
{
|
{
|
||||||
int32 i;
|
int32 i;
|
||||||
ltree_gist *key;
|
ltree_gist *key;
|
||||||
|
@@ -654,7 +654,7 @@ AggregateCreate(const char *aggName,
|
|||||||
for (i = 0; i < Natts_pg_aggregate; i++)
|
for (i = 0; i < Natts_pg_aggregate; i++)
|
||||||
{
|
{
|
||||||
nulls[i] = false;
|
nulls[i] = false;
|
||||||
values[i] = (Datum) NULL;
|
values[i] = (Datum) 0;
|
||||||
replaces[i] = true;
|
replaces[i] = true;
|
||||||
}
|
}
|
||||||
values[Anum_pg_aggregate_aggfnoid - 1] = ObjectIdGetDatum(procOid);
|
values[Anum_pg_aggregate_aggfnoid - 1] = ObjectIdGetDatum(procOid);
|
||||||
|
@@ -179,7 +179,7 @@ CreateConstraintEntry(const char *constraintName,
|
|||||||
for (i = 0; i < Natts_pg_constraint; i++)
|
for (i = 0; i < Natts_pg_constraint; i++)
|
||||||
{
|
{
|
||||||
nulls[i] = false;
|
nulls[i] = false;
|
||||||
values[i] = (Datum) NULL;
|
values[i] = (Datum) 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
conOid = GetNewOidWithIndex(conDesc, ConstraintOidIndexId,
|
conOid = GetNewOidWithIndex(conDesc, ConstraintOidIndexId,
|
||||||
|
@@ -87,7 +87,7 @@ ConversionCreate(const char *conname, Oid connamespace,
|
|||||||
for (i = 0; i < Natts_pg_conversion; i++)
|
for (i = 0; i < Natts_pg_conversion; i++)
|
||||||
{
|
{
|
||||||
nulls[i] = false;
|
nulls[i] = false;
|
||||||
values[i] = (Datum) NULL;
|
values[i] = (Datum) 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* form a tuple */
|
/* form a tuple */
|
||||||
|
@@ -76,7 +76,7 @@ NamespaceCreate(const char *nspName, Oid ownerId, bool isTemp)
|
|||||||
for (i = 0; i < Natts_pg_namespace; i++)
|
for (i = 0; i < Natts_pg_namespace; i++)
|
||||||
{
|
{
|
||||||
nulls[i] = false;
|
nulls[i] = false;
|
||||||
values[i] = (Datum) NULL;
|
values[i] = (Datum) 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
nspoid = GetNewOidWithIndex(nspdesc, NamespaceOidIndexId,
|
nspoid = GetNewOidWithIndex(nspdesc, NamespaceOidIndexId,
|
||||||
|
@@ -225,7 +225,7 @@ OperatorShellMake(const char *operatorName,
|
|||||||
for (i = 0; i < Natts_pg_operator; ++i)
|
for (i = 0; i < Natts_pg_operator; ++i)
|
||||||
{
|
{
|
||||||
nulls[i] = false;
|
nulls[i] = false;
|
||||||
values[i] = (Datum) NULL; /* redundant, but safe */
|
values[i] = (Datum) 0; /* redundant, but safe */
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -453,7 +453,7 @@ OperatorCreate(const char *operatorName,
|
|||||||
|
|
||||||
for (i = 0; i < Natts_pg_operator; ++i)
|
for (i = 0; i < Natts_pg_operator; ++i)
|
||||||
{
|
{
|
||||||
values[i] = (Datum) NULL;
|
values[i] = (Datum) 0;
|
||||||
replaces[i] = true;
|
replaces[i] = true;
|
||||||
nulls[i] = false;
|
nulls[i] = false;
|
||||||
}
|
}
|
||||||
|
@@ -80,7 +80,7 @@ TypeShellMake(const char *typeName, Oid typeNamespace, Oid ownerId)
|
|||||||
for (i = 0; i < Natts_pg_type; ++i)
|
for (i = 0; i < Natts_pg_type; ++i)
|
||||||
{
|
{
|
||||||
nulls[i] = false;
|
nulls[i] = false;
|
||||||
values[i] = (Datum) NULL; /* redundant, but safe */
|
values[i] = (Datum) 0; /* redundant, but safe */
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -1258,7 +1258,7 @@ SPI_getbinval(HeapTuple tuple, TupleDesc tupdesc, int fnumber, bool *isnull)
|
|||||||
{
|
{
|
||||||
SPI_result = SPI_ERROR_NOATTRIBUTE;
|
SPI_result = SPI_ERROR_NOATTRIBUTE;
|
||||||
*isnull = true;
|
*isnull = true;
|
||||||
return (Datum) NULL;
|
return (Datum) 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return heap_getattr(tuple, fnumber, tupdesc, isnull);
|
return heap_getattr(tuple, fnumber, tupdesc, isnull);
|
||||||
|
@@ -630,7 +630,7 @@ readDatum(bool typbyval)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (length <= 0)
|
else if (length <= 0)
|
||||||
res = (Datum) NULL;
|
res = (Datum) 0;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
s = (char *) palloc(length);
|
s = (char *) palloc(length);
|
||||||
|
@@ -2027,7 +2027,7 @@ each_worker_jsonb(FunctionCallInfo fcinfo, const char *funcname, bool as_text)
|
|||||||
{
|
{
|
||||||
/* a json null is an sql null in text mode */
|
/* a json null is an sql null in text mode */
|
||||||
nulls[1] = true;
|
nulls[1] = true;
|
||||||
values[1] = (Datum) NULL;
|
values[1] = (Datum) 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
values[1] = PointerGetDatum(JsonbValueAsText(&v));
|
values[1] = PointerGetDatum(JsonbValueAsText(&v));
|
||||||
@@ -2266,7 +2266,7 @@ elements_worker_jsonb(FunctionCallInfo fcinfo, const char *funcname,
|
|||||||
{
|
{
|
||||||
/* a json null is an sql null in text mode */
|
/* a json null is an sql null in text mode */
|
||||||
nulls[0] = true;
|
nulls[0] = true;
|
||||||
values[0] = (Datum) NULL;
|
values[0] = (Datum) 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
values[0] = PointerGetDatum(JsonbValueAsText(&v));
|
values[0] = PointerGetDatum(JsonbValueAsText(&v));
|
||||||
@@ -2389,7 +2389,7 @@ elements_array_element_end(void *state, bool isnull)
|
|||||||
if (isnull && _state->normalize_results)
|
if (isnull && _state->normalize_results)
|
||||||
{
|
{
|
||||||
nulls[0] = true;
|
nulls[0] = true;
|
||||||
values[0] = (Datum) NULL;
|
values[0] = (Datum) 0;
|
||||||
}
|
}
|
||||||
else if (_state->next_scalar)
|
else if (_state->next_scalar)
|
||||||
{
|
{
|
||||||
|
@@ -1343,9 +1343,9 @@ range_fast_cmp(Datum a, Datum b, SortSupport ssup)
|
|||||||
cmp = range_cmp_bounds(typcache, &upper1, &upper2);
|
cmp = range_cmp_bounds(typcache, &upper1, &upper2);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((Datum) range_a != a)
|
if ((Pointer) range_a != DatumGetPointer(a))
|
||||||
pfree(range_a);
|
pfree(range_a);
|
||||||
if ((Datum) range_b != b)
|
if ((Pointer) range_b != DatumGetPointer(b))
|
||||||
pfree(range_b);
|
pfree(range_b);
|
||||||
|
|
||||||
return cmp;
|
return cmp;
|
||||||
|
@@ -884,7 +884,7 @@ fastgetattr(HeapTuple tup, int attnum, TupleDesc tupleDesc, bool *isnull)
|
|||||||
if (att_isnull(attnum - 1, tup->t_data->t_bits))
|
if (att_isnull(attnum - 1, tup->t_data->t_bits))
|
||||||
{
|
{
|
||||||
*isnull = true;
|
*isnull = true;
|
||||||
return (Datum) NULL;
|
return (Datum) 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return nocachegetattr(tup, attnum, tupleDesc);
|
return nocachegetattr(tup, attnum, tupleDesc);
|
||||||
|
@@ -154,7 +154,7 @@ index_getattr(IndexTuple tup, int attnum, TupleDesc tupleDesc, bool *isnull)
|
|||||||
if (att_isnull(attnum - 1, (bits8 *) tup + sizeof(IndexTupleData)))
|
if (att_isnull(attnum - 1, (bits8 *) tup + sizeof(IndexTupleData)))
|
||||||
{
|
{
|
||||||
*isnull = true;
|
*isnull = true;
|
||||||
return (Datum) NULL;
|
return (Datum) 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return nocache_index_getattr(tup, attnum, tupleDesc);
|
return nocache_index_getattr(tup, attnum, tupleDesc);
|
||||||
|
Reference in New Issue
Block a user