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..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 @@ -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 " + @@ -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() ), 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)