You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sn...@apache.org on 2015/07/09 18:30:59 UTC
[2/3] cassandra git commit: hashCode in UDFunction broken
hashCode in UDFunction broken
patch by Robert Stupp; reviewed by Aleksey Yeschenko for CASSANDRA-9750
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/af1c6584
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/af1c6584
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/af1c6584
Branch: refs/heads/trunk
Commit: af1c65843efbcbd14ab8e1fefda7ec8650e71074
Parents: bf0328f
Author: Robert Stupp <sn...@snazy.de>
Authored: Thu Jul 9 23:27:31 2015 +0700
Committer: Robert Stupp <sn...@snazy.de>
Committed: Thu Jul 9 23:27:31 2015 +0700
----------------------------------------------------------------------
.../org/apache/cassandra/cql3/functions/Functions.java | 13 +++++++++++++
.../apache/cassandra/cql3/functions/UDAggregate.java | 2 +-
.../apache/cassandra/cql3/functions/UDFunction.java | 2 +-
3 files changed, 15 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af1c6584/src/java/org/apache/cassandra/cql3/functions/Functions.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/functions/Functions.java b/src/java/org/apache/cassandra/cql3/functions/Functions.java
index 018c35c..85f2817 100644
--- a/src/java/org/apache/cassandra/cql3/functions/Functions.java
+++ b/src/java/org/apache/cassandra/cql3/functions/Functions.java
@@ -375,6 +375,19 @@ public abstract class Functions
return true;
}
+ public static int typeHashCode(AbstractType<?> t)
+ {
+ return t.asCQL3Type().toString().hashCode();
+ }
+
+ public static int typeHashCode(List<AbstractType<?>> types)
+ {
+ int h = 0;
+ for (AbstractType<?> type : types)
+ h = h * 31 + typeHashCode(type);
+ return h;
+ }
+
private static class FunctionsMigrationListener extends MigrationListener
{
public void onUpdateUserType(String ksName, String typeName) {
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af1c6584/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java b/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java
index f153aed..c9fbbaa 100644
--- a/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java
+++ b/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java
@@ -210,6 +210,6 @@ public class UDAggregate extends AbstractFunction implements AggregateFunction
@Override
public int hashCode()
{
- return Objects.hashCode(name, argTypes, returnType, stateFunction, finalFunction, stateType, initcond);
+ return Objects.hashCode(name, Functions.typeHashCode(argTypes), Functions.typeHashCode(returnType), stateFunction, finalFunction, stateType, initcond);
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/af1c6584/src/java/org/apache/cassandra/cql3/functions/UDFunction.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/functions/UDFunction.java b/src/java/org/apache/cassandra/cql3/functions/UDFunction.java
index aa6d555..ab92232 100644
--- a/src/java/org/apache/cassandra/cql3/functions/UDFunction.java
+++ b/src/java/org/apache/cassandra/cql3/functions/UDFunction.java
@@ -276,7 +276,7 @@ public abstract class UDFunction extends AbstractFunction implements ScalarFunct
@Override
public int hashCode()
{
- return Objects.hashCode(name, argNames, argTypes, returnType, language, body);
+ return Objects.hashCode(name, Functions.typeHashCode(argTypes), Functions.typeHashCode(returnType), returnType, language, body);
}
public void userTypeUpdated(String ksName, String typeName)