[
https://issues.apache.org/jira/browse/IGNITE-2294?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15534499#comment-15534499
]
Alexander Paschenko edited comment on IGNITE-2294 at 9/30/16 12:16 AM:
-----------------------------------------------------------------------
Following this discussion on dev list:
http://apache-ignite-developers.2346864.n4.nabble.com/Default-hash-code-generation-strategy-for-new-binary-objects-td11433.html
Here's how probably should look interface for hash code resolver:
{code:java}
interface BinaryObjectHashCodeResolver {
int hash(BinaryObject obj);
}
{code}
And here's proposed example of cache query engine configuration - without
classes for key and value, only described by the list of fields. Please note
that this example specifically addresses case when there's no class for the key
and pay attention to "affinityKey" and "hashCodeResolverClass" properties.
{code:xml}
<property name="queryEntities">
<list>
<bean class="org.apache.ignite.cache.QueryEntity">
<property name="keyType" value="TestKey"/>
<property name="valueType" value="TestType"/>
<property name="hashCodeResolverClass"
value="com.corp.ignite.HashCodeResolver"/>
<property name="fields">
<map>
<entry key="i32Field" value="java.lang.Integer"/>
<entry key="strField" value="java.lang.String"/>
<entry key="boolField" value="java.lang.Boolean"/>
<entry key="timestampField" value="java.sql.Timestamp"/>
</map>
</property>
<property name="keyFields">
<set>
<value>strField</value>
<value>i32Field</value>
</set>
</property>
<property name="affinityKey" value="i32Field"/>
<property name="indexes">
<list>
<bean class="org.apache.ignite.cache.QueryIndex">
<constructor-arg value="i32Field"/>
</bean>
<bean class="org.apache.ignite.cache.QueryIndex">
<constructor-arg value="timestampField"/>
</bean>
</list>
</property>
</bean>
</list>
</property>
{code}
was (Author: al.psc):
Following this discussion on dev list:
http://apache-ignite-developers.2346864.n4.nabble.com/Default-hash-code-generation-strategy-for-new-binary-objects-td11433.html
Here's how probably should look interface for hash code resolver:
{code:java}
interface BinaryObjectHashCodeResolver {
int hash(BinaryObject obj);
}
{code}
And here's proposed example of cache query engine configuration - without
classes for key and value, only described by the list of fields. Please note
that this example specifically addresses case when there's no class for the key
and pay attention to "affinityKey" and "hashCodeResolverClass" properties.
{code:xml}
<property name="queryEntities">
<list>
<bean class="org.apache.ignite.cache.QueryEntity">
<property name="keyType" value="TestKey"/>
<property name="valueType" value="TestType"/>
<property name="hashCodeResolverClass"
value="com.corp.ignite.HashCodeResolver"/>
<property name="fields">
<map>
<entry key="i32Field" value="java.lang.Integer"/>
<entry key="strField" value="java.lang.String"/>
<entry key="boolField" value="java.lang.Boolean"/>
<entry key="timestampField" value="java.sql.Timestamp"/>
</map>
</property>
<property name="keyFields">
<set>
<value>strField</value>
<value>i32Field</value>
</set>
</property>
<property name="affinityKey" value="i32Field"/>
<property name="indexes">
<list>
<bean class="org.apache.ignite.cache.QueryIndex">
<constructor-arg value="i32Field"/>
</bean>
<bean class="org.apache.ignite.cache.QueryIndex">
<constructor-arg value="i64Field"/>
</bean>
</list>
</property>
</bean>
</list>
</property>
{code}
> Implement SQL DML (insert, update, delete) clauses.
> ---------------------------------------------------
>
> Key: IGNITE-2294
> URL: https://issues.apache.org/jira/browse/IGNITE-2294
> Project: Ignite
> Issue Type: Wish
> Reporter: Sergi Vladykin
> Assignee: Alexander Paschenko
> Labels: important
> Fix For: 2.0
>
>
> We need to add parsing for all the listed SQL commands and translate them
> into respective cache operations (putIfAbstent, put, remove).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)