avro-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bru...@apache.org
Subject svn commit: r1057667 - in /avro/trunk: CHANGES.txt lang/c/src/avro.h lang/c/src/datum.c lang/c/tests/test_avro_data.c
Date Tue, 11 Jan 2011 14:48:26 GMT
Author: brucem
Date: Tue Jan 11 14:48:26 2011
New Revision: 1057667

URL: http://svn.apache.org/viewvc?rev=1057667&view=rev
Log:
AVRO-630. Size accessors for array and map data.

Modified:
    avro/trunk/CHANGES.txt
    avro/trunk/lang/c/src/avro.h
    avro/trunk/lang/c/src/datum.c
    avro/trunk/lang/c/tests/test_avro_data.c

Modified: avro/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/avro/trunk/CHANGES.txt?rev=1057667&r1=1057666&r2=1057667&view=diff
==============================================================================
--- avro/trunk/CHANGES.txt (original)
+++ avro/trunk/CHANGES.txt Tue Jan 11 14:48:26 2011
@@ -91,6 +91,9 @@ Avro 1.5.0 (unreleased)
     AVRO-725. C: avro_schema_get_subschema function. (Douglas Creager via
     brucem)
 
+    AVRO-630. C: Add size accessors for map and list data. (Douglas Creager
+    via brucem)
+
   BUG FIXES
 
     AVRO-675. C: Bytes and fixed setters don't update datum size.

Modified: avro/trunk/lang/c/src/avro.h
URL: http://svn.apache.org/viewvc/avro/trunk/lang/c/src/avro.h?rev=1057667&r1=1057666&r2=1057667&view=diff
==============================================================================
--- avro/trunk/lang/c/src/avro.h (original)
+++ avro/trunk/lang/c/src/avro.h Tue Jan 11 14:48:26 2011
@@ -212,7 +212,9 @@ int avro_record_get(const avro_datum_t r
 		    avro_datum_t * value);
 int avro_map_get(const avro_datum_t datum, const char *key,
 		 avro_datum_t * value);
+size_t avro_map_size(const avro_datum_t datum);
 int avro_array_get(const avro_datum_t datum, int64_t index, avro_datum_t * value);
+size_t avro_array_size(const avro_datum_t datum);
 
 /* setters */
 int avro_string_set(avro_datum_t datum, const char *p);

Modified: avro/trunk/lang/c/src/datum.c
URL: http://svn.apache.org/viewvc/avro/trunk/lang/c/src/datum.c?rev=1057667&r1=1057666&r2=1057667&view=diff
==============================================================================
--- avro/trunk/lang/c/src/datum.c (original)
+++ avro/trunk/lang/c/src/datum.c Tue Jan 11 14:48:26 2011
@@ -621,6 +621,13 @@ avro_datum_t avro_map(void)
 	return &datum->obj;
 }
 
+size_t
+avro_map_size(const avro_datum_t datum)
+{
+	const struct avro_map_datum_t  *map = avro_datum_to_map(datum);
+	return map->map->num_entries;
+}
+
 int
 avro_map_get(const avro_datum_t datum, const char *key, avro_datum_t * value)
 {
@@ -704,6 +711,13 @@ avro_array_get(const avro_datum_t array_
     return EINVAL;
 }
 
+size_t
+avro_array_size(const avro_datum_t datum)
+{
+	const struct avro_array_datum_t  *array = avro_datum_to_array(datum);
+	return array->els->num_entries;
+}
+
 int
 avro_array_append_datum(const avro_datum_t array_datum,
 			const avro_datum_t datum)

Modified: avro/trunk/lang/c/tests/test_avro_data.c
URL: http://svn.apache.org/viewvc/avro/trunk/lang/c/tests/test_avro_data.c?rev=1057667&r1=1057666&r2=1057667&view=diff
==============================================================================
--- avro/trunk/lang/c/tests/test_avro_data.c (original)
+++ avro/trunk/lang/c/tests/test_avro_data.c Tue Jan 11 14:48:26 2011
@@ -279,6 +279,11 @@ static int test_array(void)
 		}
 	}
 
+	if (avro_array_size(datum) != 10) {
+		fprintf(stderr, "Unexpected array size");
+		exit(EXIT_FAILURE);
+	}
+
 	write_read_check(schema, NULL, datum, "array");
 	avro_datum_decref(datum);
 	avro_schema_decref(schema);
@@ -298,6 +303,12 @@ static int test_map(void)
 		avro_datum_decref(i_datum);
 		i++;
 	}
+
+	if (avro_array_size(datum) != 7) {
+		fprintf(stderr, "Unexpected array size");
+		exit(EXIT_FAILURE);
+	}
+
 	write_read_check(schema, NULL, datum, "map");
 	avro_datum_decref(datum);
 	avro_schema_decref(schema);



Mime
View raw message