Beispiel #1
0
    private ColumnSchema CheckType(int columnIndex, KuduTypeFlags typeFlags)
    {
        var columnSchema = Schema.GetColumn(columnIndex);

        KuduTypeValidation.ValidateColumnType(columnSchema, typeFlags);
        return(columnSchema);
    }
Beispiel #2
0
    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);
    }
Beispiel #3
0
    public void SetNull(int columnIndex)
    {
        ColumnSchema column = Schema.GetColumn(columnIndex);

        if (!column.IsNullable)
        {
            KuduTypeValidation.ThrowNotNullableException(column);
        }

        Set(columnIndex);
        SetToNull(columnIndex);
    }
Beispiel #4
0
    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);
        }
    }
Beispiel #5
0
    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));
    }