mirror of https://github.com/jackc/pgx.git
parent
d6cd3b1962
commit
425fbe1c88
|
@ -12,6 +12,8 @@ func TestInt4rangeTranscode(t *testing.T) {
|
|||
&pgtype.Int4range{LowerType: pgtype.Empty, UpperType: pgtype.Empty, Status: pgtype.Present},
|
||||
&pgtype.Int4range{Lower: pgtype.Int4{Int: 1, Status: pgtype.Present}, Upper: pgtype.Int4{Int: 10, Status: pgtype.Present}, LowerType: pgtype.Inclusive, UpperType: pgtype.Exclusive, Status: pgtype.Present},
|
||||
&pgtype.Int4range{Lower: pgtype.Int4{Int: -42, Status: pgtype.Present}, Upper: pgtype.Int4{Int: -5, Status: pgtype.Present}, LowerType: pgtype.Inclusive, UpperType: pgtype.Exclusive, Status: pgtype.Present},
|
||||
&pgtype.Int4range{Lower: pgtype.Int4{Int: 1, Status: pgtype.Present}, LowerType: pgtype.Inclusive, UpperType: pgtype.Unbounded, Status: pgtype.Present},
|
||||
&pgtype.Int4range{Upper: pgtype.Int4{Int: 1, Status: pgtype.Present}, LowerType: pgtype.Unbounded, UpperType: pgtype.Exclusive, Status: pgtype.Present},
|
||||
&pgtype.Int4range{Status: pgtype.Null},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -12,6 +12,8 @@ func TestInt8rangeTranscode(t *testing.T) {
|
|||
&pgtype.Int8range{LowerType: pgtype.Empty, UpperType: pgtype.Empty, Status: pgtype.Present},
|
||||
&pgtype.Int8range{Lower: pgtype.Int8{Int: 1, Status: pgtype.Present}, Upper: pgtype.Int8{Int: 10, Status: pgtype.Present}, LowerType: pgtype.Inclusive, UpperType: pgtype.Exclusive, Status: pgtype.Present},
|
||||
&pgtype.Int8range{Lower: pgtype.Int8{Int: -42, Status: pgtype.Present}, Upper: pgtype.Int8{Int: -5, Status: pgtype.Present}, LowerType: pgtype.Inclusive, UpperType: pgtype.Exclusive, Status: pgtype.Present},
|
||||
&pgtype.Int8range{Lower: pgtype.Int8{Int: 1, Status: pgtype.Present}, LowerType: pgtype.Inclusive, UpperType: pgtype.Unbounded, Status: pgtype.Present},
|
||||
&pgtype.Int8range{Upper: pgtype.Int8{Int: 1, Status: pgtype.Present}, LowerType: pgtype.Unbounded, UpperType: pgtype.Exclusive, Status: pgtype.Present},
|
||||
&pgtype.Int8range{Status: pgtype.Null},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -29,6 +29,18 @@ func TestNumrangeTranscode(t *testing.T) {
|
|||
UpperType: pgtype.Exclusive,
|
||||
Status: pgtype.Present,
|
||||
},
|
||||
&pgtype.Numrange{
|
||||
Lower: pgtype.Numeric{Int: big.NewInt(-42), Exp: 1, Status: pgtype.Present},
|
||||
LowerType: pgtype.Inclusive,
|
||||
UpperType: pgtype.Unbounded,
|
||||
Status: pgtype.Present,
|
||||
},
|
||||
&pgtype.Numrange{
|
||||
Upper: pgtype.Numeric{Int: big.NewInt(-42), Exp: 1, Status: pgtype.Present},
|
||||
LowerType: pgtype.Unbounded,
|
||||
UpperType: pgtype.Exclusive,
|
||||
Status: pgtype.Present,
|
||||
},
|
||||
&pgtype.Numrange{Status: pgtype.Null},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -79,28 +79,28 @@ func ParseUntypedTextRange(src string) (*UntypedTextRange, error) {
|
|||
if err != nil {
|
||||
return nil, errors.Errorf("invalid upper value: %v", err)
|
||||
}
|
||||
buf.UnreadRune()
|
||||
|
||||
if r == ')' || r == ']' {
|
||||
utr.UpperType = Unbounded
|
||||
} else {
|
||||
buf.UnreadRune()
|
||||
utr.Upper, err = rangeParseValue(buf)
|
||||
if err != nil {
|
||||
return nil, errors.Errorf("invalid upper value: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
r, _, err = buf.ReadRune()
|
||||
if err != nil {
|
||||
return nil, errors.Errorf("missing upper bound: %v", err)
|
||||
}
|
||||
switch r {
|
||||
case ')':
|
||||
utr.UpperType = Exclusive
|
||||
case ']':
|
||||
utr.UpperType = Inclusive
|
||||
default:
|
||||
return nil, errors.Errorf("missing upper bound, instead got: %v", string(r))
|
||||
r, _, err = buf.ReadRune()
|
||||
if err != nil {
|
||||
return nil, errors.Errorf("missing upper bound: %v", err)
|
||||
}
|
||||
switch r {
|
||||
case ')':
|
||||
utr.UpperType = Exclusive
|
||||
case ']':
|
||||
utr.UpperType = Inclusive
|
||||
default:
|
||||
return nil, errors.Errorf("missing upper bound, instead got: %v", string(r))
|
||||
}
|
||||
}
|
||||
|
||||
skipWhitespace(buf)
|
||||
|
|
Loading…
Reference in New Issue