This is an automated email from the ASF dual-hosted git repository.
jgemignani pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/age.git
The following commit(s) were added to refs/heads/master by this push:
new 33095fa3 Update files causing warning messages in DockerHub builds
(#1095)
33095fa3 is described below
commit 33095fa3385d8ed7f6a3920c77fb4c7fae7ab590
Author: John Gemignani <[email protected]>
AuthorDate: Tue Jul 25 15:15:02 2023 -0700
Update files causing warning messages in DockerHub builds (#1095)
Updated the following files which were generating warning
messages in the DockerHub builds -
modified: src/backend/parser/cypher_analyze.c
modified: src/backend/parser/cypher_clause.c
modified: src/backend/utils/adt/agtype.c
modified: src/backend/utils/graph_generation.c
Updated the following Docker file that has the wrong
PostgreSQL version information -
modified: docker/Dockerfile.dev
---
docker/Dockerfile.dev | 2 +-
src/backend/parser/cypher_analyze.c | 8 +++++
src/backend/parser/cypher_clause.c | 18 ++++++++++++
src/backend/utils/adt/agtype.c | 57 +++++++++++++++++++++++++++++-------
src/backend/utils/graph_generation.c | 2 +-
5 files changed, 75 insertions(+), 12 deletions(-)
diff --git a/docker/Dockerfile.dev b/docker/Dockerfile.dev
index 5e47d49b..812aafd2 100644
--- a/docker/Dockerfile.dev
+++ b/docker/Dockerfile.dev
@@ -17,7 +17,7 @@
#
-FROM postgres:14-buster
+FROM postgres:14
RUN apt-get update
RUN apt-get install --assume-yes --no-install-recommends --no-install-suggests
\
diff --git a/src/backend/parser/cypher_analyze.c
b/src/backend/parser/cypher_analyze.c
index f1c481c8..ea9a0889 100644
--- a/src/backend/parser/cypher_analyze.c
+++ b/src/backend/parser/cypher_analyze.c
@@ -756,8 +756,16 @@ static Query *analyze_cypher_and_coerce(List *stmt,
RangeTblFunction *rtfunc,
pnsi = addRangeTableEntryForSubquery(pstate, subquery, makeAlias("_", NIL),
lateral, true);
+
rtindex = list_length(pstate->p_rtable);
Assert(rtindex == 1); // rte is the only RangeTblEntry in pstate
+ if (rtindex !=1 )
+ {
+ ereport(ERROR,
+ (errcode(ERRCODE_DATATYPE_MISMATCH),
+ errmsg("invalid value for rtindex")));
+ }
+
addNSItemToQuery(pstate, pnsi, true, true, true);
query->targetList = expandNSItemAttrs(pstate, pnsi, 0, -1);
diff --git a/src/backend/parser/cypher_clause.c
b/src/backend/parser/cypher_clause.c
index cb1c48bf..df1a4348 100644
--- a/src/backend/parser/cypher_clause.c
+++ b/src/backend/parser/cypher_clause.c
@@ -2311,6 +2311,12 @@ static Query
*transform_cypher_clause_with_where(cypher_parsestate *cpstate,
Assert(pnsi != NULL);
rtindex = list_length(pstate->p_rtable);
Assert(rtindex == 1); // rte is the only RangeTblEntry in pstate
+ if (rtindex != 1)
+ {
+ ereport(ERROR,
+ (errcode(ERRCODE_DATATYPE_MISMATCH),
+ errmsg("invalid value for rtindex")));
+ }
/*
* add all the target entries in pnsi to the current target list to
pass
@@ -2585,6 +2591,12 @@ static Query
*transform_cypher_match_pattern(cypher_parsestate *cpstate,
rte = pnsi->p_rte;
rtindex = list_length(pstate->p_rtable);
Assert(rtindex == 1); // rte is the first RangeTblEntry in pstate
+ if (rtindex != 1)
+ {
+ ereport(ERROR,
+ (errcode(ERRCODE_DATATYPE_MISMATCH),
+ errmsg("invalid value for rtindex")));
+ }
/*
* add all the target entries in rte to the current target list to
pass
@@ -6775,6 +6787,12 @@ static void handle_prev_clause(cypher_parsestate
*cpstate, Query *query,
if (first_rte)
{
Assert(rtindex == 1);
+ if (rtindex != 1)
+ {
+ ereport(ERROR,
+ (errcode(ERRCODE_DATATYPE_MISMATCH),
+ errmsg("invalid value for rtindex")));
+ }
}
// add all the rte's attributes to the current queries targetlist
diff --git a/src/backend/utils/adt/agtype.c b/src/backend/utils/adt/agtype.c
index 376137ab..f60f85ee 100644
--- a/src/backend/utils/adt/agtype.c
+++ b/src/backend/utils/adt/agtype.c
@@ -182,7 +182,7 @@ static int extract_variadic_args_min(FunctionCallInfo
fcinfo,
int variadic_start, bool convert_unknown,
Datum **args, Oid **types, bool **nulls,
int min_num_args);
-static agtype_value* agtype_build_map_as_agtype_value(FunctionCallInfo fcinfo);
+static agtype_value *agtype_build_map_as_agtype_value(FunctionCallInfo fcinfo);
agtype_value *agtype_composite_to_agtype_value_binary(agtype *a);
/* global storage of OID for agtype and _agtype */
@@ -2364,7 +2364,7 @@ Datum make_edge(Datum id, Datum startid, Datum endid,
Datum label,
properties);
}
-static agtype_value* agtype_build_map_as_agtype_value(FunctionCallInfo fcinfo)
+static agtype_value *agtype_build_map_as_agtype_value(FunctionCallInfo fcinfo)
{
int nargs;
int i;
@@ -2377,7 +2377,9 @@ static agtype_value*
agtype_build_map_as_agtype_value(FunctionCallInfo fcinfo)
nargs = extract_variadic_args(fcinfo, 0, true, &args, &types, &nulls);
if (nargs < 0)
- PG_RETURN_NULL();
+ {
+ return NULL;
+ }
if (nargs % 2 != 0)
{
@@ -2420,7 +2422,14 @@ PG_FUNCTION_INFO_V1(agtype_build_map);
*/
Datum agtype_build_map(PG_FUNCTION_ARGS)
{
- agtype_value *result= agtype_build_map_as_agtype_value(fcinfo);
+ agtype_value *result = NULL;
+
+ result = agtype_build_map_as_agtype_value(fcinfo);
+ if (result == NULL)
+ {
+ PG_RETURN_NULL();
+ }
+
PG_RETURN_POINTER(agtype_value_to_agtype(result));
}
@@ -2448,8 +2457,16 @@ PG_FUNCTION_INFO_V1(agtype_build_map_nonull);
*/
Datum agtype_build_map_nonull(PG_FUNCTION_ARGS)
{
- agtype_value *result= agtype_build_map_as_agtype_value(fcinfo);
+ agtype_value *result = NULL;
+
+ result = agtype_build_map_as_agtype_value(fcinfo);
+ if (result == NULL)
+ {
+ PG_RETURN_NULL();
+ }
+
remove_null_from_agtype_object(result);
+
PG_RETURN_POINTER(agtype_value_to_agtype(result));
}
@@ -5446,18 +5463,26 @@ Datum age_tointeger(PG_FUNCTION_ARGS)
if (type != AGTYPEOID)
{
if (type == INT2OID)
+ {
result = (int64) DatumGetInt16(arg);
+ }
else if (type == INT4OID)
+ {
result = (int64) DatumGetInt32(arg);
+ }
else if (type == INT8OID)
+ {
result = (int64) DatumGetInt64(arg);
+ }
else if (type == FLOAT4OID)
{
float4 f = DatumGetFloat4(arg);
if (isnan(f) || isinf(f) ||
- f < PG_INT64_MIN || f > PG_INT64_MAX)
+ f < (float4)PG_INT64_MIN || f > (float4)PG_INT64_MAX)
+ {
PG_RETURN_NULL();
+ }
result = (int64) f;
}
@@ -5466,8 +5491,10 @@ Datum age_tointeger(PG_FUNCTION_ARGS)
float8 f = DatumGetFloat8(arg);
if (isnan(f) || isinf(f) ||
- f < PG_INT64_MIN || f > PG_INT64_MAX)
+ f < (float8)PG_INT64_MIN || f > (float8)PG_INT64_MAX)
+ {
PG_RETURN_NULL();
+ }
result = (int64) f;
}
@@ -5479,17 +5506,23 @@ Datum age_tointeger(PG_FUNCTION_ARGS)
numeric_float8_no_overflow, arg));
if (isnan(f) || isinf(f) ||
- f < PG_INT64_MIN || f > PG_INT64_MAX)
+ f < (float8)PG_INT64_MIN || f > (float8)PG_INT64_MAX)
+ {
PG_RETURN_NULL();
+ }
result = (int64) f;
}
else if (type == CSTRINGOID || type == TEXTOID)
{
if (type == CSTRINGOID)
+ {
string = DatumGetCString(arg);
+ }
else
+ {
string = text_to_cstring(DatumGetTextPP(arg));
+ }
/* convert it if it is a regular integer string */
is_valid = scanint8(string, true, &result);
@@ -5499,7 +5532,7 @@ Datum age_tointeger(PG_FUNCTION_ARGS)
*/
if (!is_valid)
{
- float f;
+ float8 f;
f = float8in_internal_null(string, NULL, "double precision",
string, &is_valid);
@@ -5508,16 +5541,20 @@ Datum age_tointeger(PG_FUNCTION_ARGS)
* return null.
*/
if (!is_valid || isnan(f) || isinf(f) ||
- f < PG_INT64_MIN || f > PG_INT64_MAX)
+ f < (float8)PG_INT64_MIN || f > (float8)PG_INT64_MAX)
+ {
PG_RETURN_NULL();
+ }
result = (int64) f;
}
}
else
+ {
ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
errmsg("toInteger() unsupported argument type %d",
type)));
+ }
}
else
{
diff --git a/src/backend/utils/graph_generation.c
b/src/backend/utils/graph_generation.c
index 9b507e11..0f58fbc3 100644
--- a/src/backend/utils/graph_generation.c
+++ b/src/backend/utils/graph_generation.c
@@ -83,7 +83,7 @@ Datum create_complete_graph(PG_FUNCTION_ARGS)
int64 no_vertices;
int64 i,j,vid = 1, eid, start_vid, end_vid;
- Name vtx_label_name;
+ Name vtx_label_name = NULL;
Name edge_label_name;
int32 vtx_label_id;
int32 edge_label_id;