You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by ma...@apache.org on 2010/04/04 17:35:09 UTC
svn commit: r930704 - in /hadoop/avro/trunk: CHANGES.txt lang/c/src/avro.h
lang/c/src/datum.c
Author: massie
Date: Sun Apr 4 15:35:08 2010
New Revision: 930704
URL: http://svn.apache.org/viewvc?rev=930704&view=rev
Log:
AVRO-501. missing function in C api to access array elements after decoding an array. Contributed by Bruce Mitchener.
Modified:
hadoop/avro/trunk/CHANGES.txt
hadoop/avro/trunk/lang/c/src/avro.h
hadoop/avro/trunk/lang/c/src/datum.c
Modified: hadoop/avro/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/avro/trunk/CHANGES.txt?rev=930704&r1=930703&r2=930704&view=diff
==============================================================================
--- hadoop/avro/trunk/CHANGES.txt (original)
+++ hadoop/avro/trunk/CHANGES.txt Sun Apr 4 15:35:08 2010
@@ -13,6 +13,9 @@ Avro 1.4.0 (unreleased)
AVRO-491. Doing doubles and floats better in the ruby impl. (jmhodges)
+ AVRO-501. missing function in C api to access array elements after
+ decoding an array. (Bruce Mitchener via massie)
+
BUG FIXES
AVRO-461. Skipping primitives in the ruby side (jmhodges)
Modified: hadoop/avro/trunk/lang/c/src/avro.h
URL: http://svn.apache.org/viewvc/hadoop/avro/trunk/lang/c/src/avro.h?rev=930704&r1=930703&r2=930704&view=diff
==============================================================================
--- hadoop/avro/trunk/lang/c/src/avro.h (original)
+++ hadoop/avro/trunk/lang/c/src/avro.h Sun Apr 4 15:35:08 2010
@@ -209,6 +209,7 @@ 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);
+int avro_array_get(const avro_datum_t datum, int64_t index, avro_datum_t * value);
/* setters */
int avro_string_set(avro_datum_t datum, const char *p);
Modified: hadoop/avro/trunk/lang/c/src/datum.c
URL: http://svn.apache.org/viewvc/hadoop/avro/trunk/lang/c/src/datum.c?rev=930704&r1=930703&r2=930704&view=diff
==============================================================================
--- hadoop/avro/trunk/lang/c/src/datum.c (original)
+++ hadoop/avro/trunk/lang/c/src/datum.c Sun Apr 4 15:35:08 2010
@@ -686,6 +686,23 @@ avro_datum_t avro_array(void)
}
int
+avro_array_get(const avro_datum_t array_datum, int64_t index, avro_datum_t * value)
+{
+ union {
+ st_data_t data;
+ avro_datum_t datum;
+ } val;
+ if (is_avro_datum(array_datum) && is_avro_array(array_datum)) {
+ const struct avro_array_datum_t * array = avro_datum_to_array(array_datum);
+ if (st_lookup(array->els, index, &val.data)) {
+ *value = val.datum;
+ return 0;
+ }
+ }
+ return EINVAL;
+}
+
+int
avro_array_append_datum(const avro_datum_t array_datum,
const avro_datum_t datum)
{