Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support timestamp and interval arithmetic #5764

Merged
merged 41 commits into from
Mar 30, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
1869363
first implementation and tests of timestamp subtraction
berkaysynnada Mar 7, 2023
2f01278
improvement after review
berkaysynnada Mar 7, 2023
806b4d3
postgre interval format option
berkaysynnada Mar 8, 2023
708d717
random tests extended
berkaysynnada Mar 8, 2023
c5bacbe
corrections after review
berkaysynnada Mar 8, 2023
011933f
operator check
berkaysynnada Mar 8, 2023
e475f58
flag is removed
berkaysynnada Mar 9, 2023
423fb65
clippy fix
berkaysynnada Mar 9, 2023
1291758
toml conflict
berkaysynnada Mar 9, 2023
055ed81
Merge branch 'main' into feature/time-interval-support
berkaysynnada Mar 9, 2023
d7f3696
minor changes
berkaysynnada Mar 9, 2023
8d5c8e3
deterministic matches
berkaysynnada Mar 11, 2023
31577d9
simplifications (clippy error)
berkaysynnada Mar 12, 2023
c274aef
test format changed
berkaysynnada Mar 13, 2023
968a682
minor test fix
berkaysynnada Mar 13, 2023
49506ed
Merge branch 'main' into feature/time-interval-support
berkaysynnada Mar 13, 2023
ed63779
Update scalar.rs
berkaysynnada Mar 13, 2023
68ea647
Refactoring and simplifications
ozankabak Mar 13, 2023
ed04466
Make ScalarValue support interval comparison
ozankabak Mar 14, 2023
3bf8fd6
naming tests
berkaysynnada Mar 14, 2023
0f8a7a7
macro renaming
berkaysynnada Mar 14, 2023
cf892fe
renaming macro
berkaysynnada Mar 14, 2023
6b5484e
Merge branch 'apache:main' into feature/timestamp-interval-arith-query
berkaysynnada Mar 15, 2023
a078dbb
ok till arrow kernel ops
berkaysynnada Mar 20, 2023
1c8fd69
Merge branch 'main' into feature/timestamp-interval-arith-query
berkaysynnada Mar 20, 2023
f27bdb7
Merge branch 'apache:main' into feature/timestamp-interval-arith-query
berkaysynnada Mar 20, 2023
49727e1
Merge branch 'apache:main' into feature/timestamp-interval-arith-query
berkaysynnada Mar 22, 2023
bbfd9b1
macro will replace matches inside evaluate
berkaysynnada Mar 22, 2023
e14a16f
Code refactor
metesynnada Mar 24, 2023
9f82bbb
retract changes in scalar and datetime
mustafasrepo Mar 24, 2023
25d76f3
ts op interval with chrono functions
berkaysynnada Mar 24, 2023
9de7875
bug fix and refactor
berkaysynnada Mar 26, 2023
d637efe
test refactor
berkaysynnada Mar 27, 2023
e2ee0ed
Enhance commenting
metesynnada Mar 27, 2023
3e03a54
new binary operation logic, handling the inside errors
metesynnada Mar 28, 2023
03d3aed
slt and minor changes
berkaysynnada Mar 28, 2023
20b276a
tz parsing excluded
berkaysynnada Mar 28, 2023
ef1c194
replace try_binary and as_datetime, and keep timezone for ts+interval op
berkaysynnada Mar 30, 2023
f1e78f2
Merge branch 'main' into feature/timestamp-interval-arith-query
berkaysynnada Mar 30, 2023
21e1df8
fix after merge
berkaysynnada Mar 30, 2023
b20eb77
delete unused functions
berkaysynnada Mar 30, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
384 changes: 240 additions & 144 deletions datafusion-cli/Cargo.lock

Large diffs are not rendered by default.

24 changes: 23 additions & 1 deletion datafusion/common/src/cast.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ use arrow::{
Array, BinaryArray, BooleanArray, Date32Array, Date64Array, Decimal128Array,
DictionaryArray, FixedSizeBinaryArray, FixedSizeListArray, Float32Array,
Float64Array, GenericBinaryArray, GenericListArray, GenericStringArray,
Int32Array, Int64Array, LargeListArray, ListArray, MapArray, NullArray,
Int32Array, Int64Array, IntervalDayTimeArray, IntervalMonthDayNanoArray,
IntervalYearMonthArray, LargeListArray, ListArray, MapArray, NullArray,
OffsetSizeTrait, PrimitiveArray, StringArray, StructArray,
TimestampMicrosecondArray, TimestampMillisecondArray, TimestampNanosecondArray,
TimestampSecondArray, UInt32Array, UInt64Array, UnionArray,
Expand Down Expand Up @@ -168,6 +169,27 @@ pub fn as_timestamp_second_array(array: &dyn Array) -> Result<&TimestampSecondAr
Ok(downcast_value!(array, TimestampSecondArray))
}

// Downcast ArrayRef to IntervalYearMonthArray
pub fn as_interval_ym_array(
array: &dyn Array,
) -> Result<&IntervalYearMonthArray, DataFusionError> {
Ok(downcast_value!(array, IntervalYearMonthArray))
}

// Downcast ArrayRef to IntervalDayTimeArray
pub fn as_interval_dt_array(
array: &dyn Array,
) -> Result<&IntervalDayTimeArray, DataFusionError> {
Ok(downcast_value!(array, IntervalDayTimeArray))
}

// Downcast ArrayRef to IntervalMonthDayNanoArray
pub fn as_interval_mdn_array(
array: &dyn Array,
) -> Result<&IntervalMonthDayNanoArray, DataFusionError> {
Ok(downcast_value!(array, IntervalMonthDayNanoArray))
}

// Downcast ArrayRef to BinaryArray
pub fn as_binary_array(array: &dyn Array) -> Result<&BinaryArray> {
Ok(downcast_value!(array, BinaryArray))
Expand Down
Loading