From 5e6955a8c594534c15fea9359bf55360fd7a12b3 Mon Sep 17 00:00:00 2001 From: Chapman Flack Date: Thu, 19 Nov 2020 22:05:35 -0500 Subject: [PATCH 1/2] Fix copy-pasto in Operator annotation checking and add a regression test. Addresses #330. --- .../pljava/annotation/processing/DDRProcessor.java | 2 +- .../pljava/example/annotation/ComplexScalar.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/pljava-api/src/main/java/org/postgresql/pljava/annotation/processing/DDRProcessor.java b/pljava-api/src/main/java/org/postgresql/pljava/annotation/processing/DDRProcessor.java index 2a0b155ab..a087ab71a 100644 --- a/pljava-api/src/main/java/org/postgresql/pljava/annotation/processing/DDRProcessor.java +++ b/pljava-api/src/main/java/org/postgresql/pljava/annotation/processing/DDRProcessor.java @@ -3681,7 +3681,7 @@ else if ( ! funcName.equals(fn) && ! isSynthetic ) long explicit = Arrays.stream(operands).filter(Objects::nonNull).count(); - if ( 0 != explicit && ! isSynthetic ) + if ( 0 != explicit && isSynthetic ) { msg(Kind.ERROR, m_targetElement, m_origin, "@Operator with synthetic= must not specify " + diff --git a/pljava-examples/src/main/java/org/postgresql/pljava/example/annotation/ComplexScalar.java b/pljava-examples/src/main/java/org/postgresql/pljava/example/annotation/ComplexScalar.java index d664e0145..064bbea62 100644 --- a/pljava-examples/src/main/java/org/postgresql/pljava/example/annotation/ComplexScalar.java +++ b/pljava-examples/src/main/java/org/postgresql/pljava/example/annotation/ComplexScalar.java @@ -98,9 +98,16 @@ public class ComplexScalar implements SQLData { /** * Return the same 'complex' passed in, logging its contents at level INFO. + *

+ * Also create an unnecessary {@code <<} operator for this, with an equally + * unnecessary explicit operand type, simply as a regression test + * of issue #330. * @param cpl any instance of this UDT * @return the same instance passed in */ + @Operator( + name = "javatest.<<", right = "javatest.complex" + ) @Function( schema="javatest", name="logcomplex", effects=IMMUTABLE, onNullInput=RETURNS_NULL) From 165fe6f6f654805c158b59406b5d5ce73cfe74f2 Mon Sep 17 00:00:00 2001 From: Chapman Flack Date: Fri, 20 Nov 2020 20:08:35 -0500 Subject: [PATCH 2/2] Fix a lint warning --- .../postgresql/pljava/annotation/processing/DDRProcessor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pljava-api/src/main/java/org/postgresql/pljava/annotation/processing/DDRProcessor.java b/pljava-api/src/main/java/org/postgresql/pljava/annotation/processing/DDRProcessor.java index a087ab71a..a2f9fcd44 100644 --- a/pljava-api/src/main/java/org/postgresql/pljava/annotation/processing/DDRProcessor.java +++ b/pljava-api/src/main/java/org/postgresql/pljava/annotation/processing/DDRProcessor.java @@ -4442,7 +4442,7 @@ else if ( null == _plan.stateType ) .skip(1) // skip the state argument .map(pi -> (Map.Entry) - new AbstractMap.SimpleImmutableEntry( + new AbstractMap.SimpleImmutableEntry<>( Identifier.Simple.fromJava( pi.name() ),