From b7eaaffc3a39c61208defd593452f122b98258fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Tue, 27 Jun 2023 17:00:44 +0800 Subject: [PATCH] =?UTF-8?q?enhance(types):=E5=A2=9E=E5=8A=A0=E5=8C=BA?= =?UTF-8?q?=E9=97=B4=E7=B1=BB=E5=9E=8B=E4=B8=AD=E5=85=B3=E4=BA=8E=E7=A9=BA?= =?UTF-8?q?=E5=8C=BA=E9=97=B4=E7=9A=84=E5=88=A4=E6=96=AD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- types/daterange.go | 5 +++++ types/datetimerange.go | 5 +++++ types/range.go | 4 ++++ 3 files changed, 14 insertions(+) diff --git a/types/daterange.go b/types/daterange.go index 6b34a8a..b71b89c 100644 --- a/types/daterange.go +++ b/types/daterange.go @@ -134,3 +134,8 @@ func (dr DateRange) SafeLower() Date { return MinDate() } } + +func (dr DateRange) IsEmptyOrWild() bool { + return (dr.LowerType == pgtype.Unbounded && dr.UpperType == pgtype.Unbounded) || + (dr.LowerType == pgtype.Empty && dr.UpperType == pgtype.Empty) +} diff --git a/types/datetimerange.go b/types/datetimerange.go index 5927d8d..971fcf9 100644 --- a/types/datetimerange.go +++ b/types/datetimerange.go @@ -112,3 +112,8 @@ func (dr *DateTimeRange) SetUpperUnbounded() { dr.Range.Upper = MaxDateTime() dr.Range.UpperType = pgtype.Unbounded } + +func (dr DateTimeRange) IsEmptyOrWild() bool { + return (dr.Range.LowerType == pgtype.Unbounded && dr.Range.UpperType == pgtype.Unbounded) || + (dr.Range.LowerType == pgtype.Empty || dr.Range.UpperType == pgtype.Empty) +} diff --git a/types/range.go b/types/range.go index 178b59f..374db35 100644 --- a/types/range.go +++ b/types/range.go @@ -15,6 +15,10 @@ type ToString interface { ToString() string } +type CheckEmptyOrWild interface { + IsEmptyOrWild() bool +} + // 将一个字符串拆解解析为一个 Postgresql 范围类型的值。 func destructureToRange[T any, PT interface { Parse