You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gora.apache.org by rm...@apache.org on 2014/03/20 10:41:16 UTC
svn commit: r1579577 - in
/gora/branches/GORA_94/gora-cassandra/src/main/java/org/apache/gora/cassandra/store:
CassandraClient.java CassandraStore.java
Author: rmarroquin
Date: Thu Mar 20 09:41:15 2014
New Revision: 1579577
URL: http://svn.apache.org/r1579577
Log:
GORA-245. Fixes updated
Modified:
gora/branches/GORA_94/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraClient.java
gora/branches/GORA_94/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java
Modified: gora/branches/GORA_94/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraClient.java
URL: http://svn.apache.org/viewvc/gora/branches/GORA_94/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraClient.java?rev=1579577&r1=1579576&r2=1579577&view=diff
==============================================================================
--- gora/branches/GORA_94/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraClient.java (original)
+++ gora/branches/GORA_94/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraClient.java Thu Mar 20 09:41:15 2014
@@ -297,6 +297,10 @@ public class CassandraClient<K, T extend
}
}
+ public void deleteGenericArray(K key, String fieldName) {
+ //TODO Verify this. Everything that goes inside a genericArray will go inside a column so let's just delete that.
+ deleteColumn(key, cassandraMapping.getFamily(fieldName), toByteBuffer(fieldName));
+ }
public void addGenericArray(K key, String fieldName, GenericArray<?> array) {
if (isSuper( cassandraMapping.getFamily(fieldName) )) {
int i= 0;
@@ -321,6 +325,14 @@ public class CassandraClient<K, T extend
}
}
+ public void deleteStatefulHashMap(K key, String fieldName) {
+ if (isSuper( cassandraMapping.getFamily(fieldName) )) {
+ deleteSubColumn(key, fieldName);
+ } else {
+ deleteColumn(key, cassandraMapping.getFamily(fieldName), toByteBuffer(fieldName));
+ }
+ }
+
public void addStatefulHashMap(K key, String fieldName, Map<CharSequence,Object> map) {
if (isSuper( cassandraMapping.getFamily(fieldName) )) {
// as we don't know what has changed inside the map or If it's an empty map, then delete its content.
Modified: gora/branches/GORA_94/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java
URL: http://svn.apache.org/viewvc/gora/branches/GORA_94/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java?rev=1579577&r1=1579576&r2=1579577&view=diff
==============================================================================
--- gora/branches/GORA_94/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java (original)
+++ gora/branches/GORA_94/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java Thu Mar 20 09:41:15 2014
@@ -509,6 +509,10 @@ public class CassandraStore<K, T extends
} else {
LOG.warn("Record with value: " + value.toString() + " not supported for field: " + field.name());
}
+ } else {
+ LOG.warn("Setting content of: " + field.name() + " to null.");
+ String familyName = this.cassandraClient.getCassandraMapping().getFamily(field.name());
+ this.cassandraClient.deleteColumn(key, familyName, this.cassandraClient.toByteBuffer(field.name()));
}
break;
case MAP:
@@ -544,6 +548,10 @@ public class CassandraStore<K, T extends
} else {
LOG.warn("Map with value: " + value.toString() + " not supported for field: " + field.name());
}
+ } else {
+ // delete map
+ LOG.warn("Setting content of: " + field.name() + " to null.");
+ this.cassandraClient.deleteStatefulHashMap(key, field.name());
}
break;
case ARRAY:
@@ -558,15 +566,18 @@ public class CassandraStore<K, T extends
} else {
LOG.warn("Array with value: " + value.toString() + " not supported for field: " + field.name());
}
+ } else {
+ LOG.warn("Setting content of: " + field.name() + " to null.");
+ this.cassandraClient.deleteGenericArray(key, field.name());
}
break;
case UNION:
+ // adding union schema index
+ String columnName = field.name() + UNION_COL_SUFIX;
+ String familyName = this.cassandraClient.getCassandraMapping().getFamily(field.name());
if(value != null) {
int schemaPos = getUnionSchema(value, schema);
LOG.debug("Union with value: " + value.toString() + " at index: " + schemaPos + " supported for field: " + field.name());
- // adding union schema index
- String columnName = field.name() + UNION_COL_SUFIX;
- String familyName = this.cassandraClient.getCassandraMapping().getFamily(field.name());
this.cassandraClient.getCassandraMapping().addColumn(familyName, columnName, columnName);
if (this.cassandraClient.isSuper( familyName )){
this.cassandraClient.addSubColumn(key, columnName, columnName, schemaPos);
@@ -574,14 +585,18 @@ public class CassandraStore<K, T extends
this.cassandraClient.addColumn(key, columnName, schemaPos);
}
-// this.cassandraClient.getCassandraMapping().addColumn(familyName, columnName, columnName);
+ //this.cassandraClient.getCassandraMapping().addColumn(familyName, columnName, columnName);
// adding union value
Schema unionSchema = schema.getTypes().get(schemaPos);
addOrUpdateField(key, field, unionSchema, value);
//this.cassandraClient.addColumn(key, field.name(), value);
} else {
LOG.warn("Setting content of: " + field.name() + " to null.");
- delete(key);
+ if (this.cassandraClient.isSuper( familyName )){
+ this.cassandraClient.deleteSubColumn(key, field.name());
+ } else {
+ this.cassandraClient.deleteColumn(key, familyName, this.cassandraClient.toByteBuffer(field.name()));
+ }
}
break;
default: