private ColumnSchema CheckType(int columnIndex, KuduTypeFlags typeFlags) { var columnSchema = Schema.GetColumn(columnIndex); KuduTypeValidation.ValidateColumnType(columnSchema, typeFlags); return(columnSchema); }
public void SetString(int columnIndex, string value) { var column = Schema.GetColumn(columnIndex); var type = column.Type; if (type == KuduType.String) { } else if (type == KuduType.Varchar) { int maxLength = column.TypeAttributes !.Length.GetValueOrDefault(); if (value.Length > maxLength) { value = value.Substring(0, maxLength); } } else { KuduTypeValidation.ThrowException(column, KuduTypeFlags.String | KuduTypeFlags.Varchar); } WriteString(columnIndex, value); }
public void SetNull(int columnIndex) { ColumnSchema column = Schema.GetColumn(columnIndex); if (!column.IsNullable) { KuduTypeValidation.ThrowNotNullableException(column); } Set(columnIndex); SetToNull(columnIndex); }
public void SetDateTime(int columnIndex, DateTime value) { var column = Schema.GetColumn(columnIndex); var type = column.Type; if (type == KuduType.UnixtimeMicros) { WriteDateTime(columnIndex, value); } else if (type == KuduType.Date) { WriteDate(columnIndex, value); } else { KuduTypeValidation.ThrowException(column, KuduTypeFlags.UnixtimeMicros | KuduTypeFlags.Date); } }
public DateTime GetDateTime(int columnIndex) { var column = Schema.GetColumn(columnIndex); var type = column.Type; if (type == KuduType.UnixtimeMicros) { CheckValue(columnIndex); ReadOnlySpan <byte> data = GetRowAllocColumn(columnIndex, 8); return(KuduEncoder.DecodeDateTime(data)); } else if (type == KuduType.Date) { CheckValue(columnIndex); ReadOnlySpan <byte> data = GetRowAllocColumn(columnIndex, 4); return(KuduEncoder.DecodeDate(data)); } return(KuduTypeValidation.ThrowException <DateTime>(column, KuduTypeFlags.UnixtimeMicros | KuduTypeFlags.Date)); }