public void Encode(object row) { var val = _getFunc(row); if (_nullable && val == null) { _builder.AppendNull(); } else { var stringVal = (string)val; _size += stringVal.Length; _builder.Append(stringVal); } }
public void Encode(object row) { var val = _getFunc(row); if (_nullable && val == null) { _builder.AppendNull(); } else { var stringVal = Enum.GetName(_enumType, val); _size += stringVal.Length; _builder.Append(stringVal); } }
public void Visit(StructType type) { // TODO: Make data from type fields. // The following can be improved with a Builder class for StructArray. StringArray.Builder resultStringBuilder = new StringArray.Builder(); Int32Array.Builder resultInt32Builder = new Int32Array.Builder(); ArrowBuffer nullBitmapBuffer = new ArrowBuffer.BitmapBuilder().Append(true).Append(true).Append(false).Build(); for (int i = 0; i < 3; i++) { resultStringBuilder.Append("joe").AppendNull().AppendNull().Append("mark"); resultInt32Builder.Append(1).Append(2).AppendNull().Append(4); StringArray stringArray = new StringArray.Builder().Append("joe").AppendNull().AppendNull().Append("mark").Build(); Int32Array intArray = new Int32Array.Builder().Append(1).Append(2).AppendNull().Append(4).Build(); List <Array> arrays = new List <Array> { stringArray, intArray }; TestTargetArrayList.Add(new StructArray(type, 3, arrays, nullBitmapBuffer, 1)); } StringArray resultStringArray = resultStringBuilder.Build(); Int32Array resultInt32Array = resultInt32Builder.Build(); ExpectedArray = new StructArray(type, 3, new List <Array> { resultStringArray, resultInt32Array }, nullBitmapBuffer, 1); }
public void Visit(StructType type) { StringArray.Builder stringBuilder = new StringArray.Builder(); for (int i = 0; i < Length; i++) { stringBuilder.Append(i.ToString()); } StringArray stringArray = stringBuilder.Build(); Int32Array.Builder intBuilder = new Int32Array.Builder(); for (int i = 0; i < Length; i++) { intBuilder.Append(i); } Int32Array intArray = intBuilder.Build(); List <Array> arrays = new List <Array>(); arrays.Add(stringArray); arrays.Add(intArray); ArrowBuffer.BitmapBuilder nullBitmap = new ArrowBuffer.BitmapBuilder(); for (int i = 0; i < Length; i++) { nullBitmap.Append(true); } Array = new StructArray(type, Length, arrays, nullBitmap.Build()); }
public void Visit(StringType type) { var str = "helloworld"; var builder = new StringArray.Builder(); for (var i = 0; i < Length; i++) { builder.Append(str); } Array = builder.Build(); }
public void Visit(DictionaryType type) { Int32Array.Builder indicesBuilder = new Int32Array.Builder().Reserve(Length); StringArray.Builder valueBuilder = new StringArray.Builder().Reserve(Length); for (int i = 0; i < Length; i++) { indicesBuilder.Append(i); valueBuilder.Append($"{i}"); } Array = new DictionaryArray(type, indicesBuilder.Build(), valueBuilder.Build()); }
public void Visit(StringType type) { StringArray.Builder resultBuilder = new StringArray.Builder().Reserve(_baseDataTotalElementCount); for (int i = 0; i < _baseDataListCount; i++) { List <int?> dataList = _baseData[i]; StringArray.Builder builder = new StringArray.Builder().Reserve(dataList.Count); foreach (string value in dataList.Select(_ => _.ToString() ?? null)) { builder.Append(value); resultBuilder.Append(value); } TestTargetArrayList.Add(builder.Build()); } ExpectedArray = resultBuilder.Build(); }
public void TestStructArray() { // The following can be improved with a Builder class for StructArray. List <Field> fields = new List <Field>(); Field.Builder fieldBuilder = new Field.Builder(); fields.Add(fieldBuilder.Name("Strings").DataType(StringType.Default).Nullable(true).Build()); fieldBuilder = new Field.Builder(); fields.Add(fieldBuilder.Name("Ints").DataType(Int32Type.Default).Nullable(true).Build()); StructType structType = new StructType(fields); StringArray.Builder stringBuilder = new StringArray.Builder(); StringArray stringArray = stringBuilder.Append("joe").AppendNull().AppendNull().Append("mark").Build(); Int32Array.Builder intBuilder = new Int32Array.Builder(); Int32Array intArray = intBuilder.Append(1).Append(2).AppendNull().Append(4).Build(); List <Array> arrays = new List <Array>(); arrays.Add(stringArray); arrays.Add(intArray); ArrowBuffer.BitmapBuilder nullBitmap = new ArrowBuffer.BitmapBuilder(); var nullBitmapBuffer = nullBitmap.Append(true).Append(true).Append(false).Append(true).Build(); StructArray structs = new StructArray(structType, 4, arrays, nullBitmapBuffer, 1); Assert.Equal(4, structs.Length); Assert.Equal(1, structs.NullCount); ArrayData[] childArrays = structs.Data.Children; // Data for StringArray and Int32Array Assert.Equal(2, childArrays.Length); for (int i = 0; i < childArrays.Length; i++) { ArrayData arrayData = childArrays[i]; Assert.Null(arrayData.Children); if (i == 0) { Assert.Equal(ArrowTypeId.String, arrayData.DataType.TypeId); Array array = new StringArray(arrayData); StringArray structStringArray = array as StringArray; Assert.NotNull(structStringArray); Assert.Equal(structs.Length, structStringArray.Length); Assert.Equal(stringArray.Length, structStringArray.Length); Assert.Equal(stringArray.NullCount, structStringArray.NullCount); for (int j = 0; j < stringArray.Length; j++) { Assert.Equal(stringArray.GetString(j), structStringArray.GetString(j)); } } if (i == 1) { Assert.Equal(ArrowTypeId.Int32, arrayData.DataType.TypeId); Array array = new Int32Array(arrayData); Int32Array structIntArray = array as Int32Array; Assert.NotNull(structIntArray); Assert.Equal(structs.Length, structIntArray.Length); Assert.Equal(intArray.Length, structIntArray.Length); Assert.Equal(intArray.NullCount, structIntArray.NullCount); for (int j = 0; j < intArray.Length; j++) { Assert.Equal(intArray.GetValue(j), structIntArray.GetValue(j)); } } } }