Skip to content

Commit

Permalink
finish time
Browse files Browse the repository at this point in the history
  • Loading branch information
dshaaban01 committed Jan 16, 2025
1 parent 41014ff commit 8788328
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 39 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ def Substrait_TimeAttr : Substrait_Attr<"Time", "time",
This type represents a substrait time attribute type.
}];
let parameters = (ins "int64_t":$value);
let assemblyFormat = [{ `<` $value `>` }];
let assemblyFormat = [{ `<` $value `` `us` `>` }];
}

/// Currently supported atomic types. These correspond directly to the types in
Expand Down
6 changes: 4 additions & 2 deletions lib/Target/SubstraitPB/Export.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -666,10 +666,12 @@ SubstraitExporter::exportOperation(LiteralOp op) {
literal->set_timestamp(value.cast<TimestampAttr>().getValue());
} else if (literalType.isa<TimestampTzType>()) {
literal->set_timestamp_tz(value.cast<TimestampTzAttr>().getValue());
} // `DateType`.
}
// `DateType`.
else if (auto binaryType = dyn_cast<DateType>(literalType)) {
literal->set_date(value.cast<DateAttr>().getValue());
} // `TimeType`.
}
// `TimeType`.
else if (literalType.isa<TimeType>()) {
literal->set_time(value.cast<TimeAttr>().getValue());
} else
Expand Down
4 changes: 2 additions & 2 deletions test/Dialect/Substrait/literal.mlir
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
// CHECK: %[[V0:.*]] = named_table
// CHECK-NEXT: %[[V1:.*]] = project %[[V0]] : tuple<si1> -> tuple<si1, !substrait.time> {
// CHECK-NEXT: ^[[BB0:.*]](%[[ARG0:.*]]: tuple<si1>):
// CHECK-NEXT: %[[V2:.*]] = literal #substrait.time<200000000> : !substrait.time
// CHECK-NEXT: %[[V2:.*]] = literal #substrait.time<200000000us> : !substrait.time
// CHECK-NEXT: yield %[[V2]] : !substrait.time
// CHECK-NEXT: }
// CHECK-NEXT: yield %[[V1]] : tuple<si1, !substrait.time>
Expand All @@ -16,7 +16,7 @@ substrait.plan version 0 : 42 : 1 {
%0 = named_table @t1 as ["a"] : tuple<si1>
%1 = project %0 : tuple<si1> -> tuple<si1, !substrait.time> {
^bb0(%arg : tuple<si1>):
%time = literal #substrait.time<200000000> : !substrait.time
%time = literal #substrait.time<200000000us> : !substrait.time
yield %time : !substrait.time
}
yield %1 : tuple<si1, !substrait.time>
Expand Down
2 changes: 1 addition & 1 deletion test/Target/SubstraitPB/Export/literal.mlir
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ substrait.plan version 0 : 42 : 1 {
%0 = named_table @t1 as ["a"] : tuple<si1>
%1 = project %0 : tuple<si1> -> tuple<si1, !substrait.time> {
^bb0(%arg : tuple<si1>):
%time = literal #substrait.time<200000000> : !substrait.time
%time = literal #substrait.time<200000000us> : !substrait.time
yield %time : !substrait.time
}
yield %1 : tuple<si1, !substrait.time>
Expand Down
65 changes: 32 additions & 33 deletions test/Target/SubstraitPB/Import/literal.textpb
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,12 @@
# CHECK: substrait.plan version 0 : 42 : 1 {
# CHECK-NEXT: relation
# CHECK: %[[V0:.*]] = named_table
# CHECK-NEXT: %[[V1:.*]] = project %[[V0]] : tuple<si1> -> tuple<si1, !substrait.date> {
# CHECK-NEXT: %[[V1:.*]] = project %[[V0]] : tuple<si1> -> tuple<si1, !substrait.time> {
# CHECK-NEXT: ^[[BB0:.*]](%[[ARG0:.*]]: tuple<si1>):
# CHECK-NEXT: %[[V2:.*]] = literal #substrait.date<200000000> : !substrait.date
# CHECK-NEXT: yield %[[V2]] : !substrait.date
# CHECK-NEXT: %[[V2:.*]] = literal #substrait.time<200000000us> : !substrait.time
# CHECK-NEXT: yield %[[V2]] : !substrait.time
# CHECK-NEXT: }
# CHECK-NEXT: yield %[[V1]] : tuple<si1, !substrait.date>

# CHECK-NEXT: yield %[[V1]] : tuple<si1, !substrait.time>

relations {
rel {
Expand Down Expand Up @@ -52,7 +51,7 @@ relations {
}
expressions {
literal {
date: 200000000
time: 200000000
}
}
}
Expand All @@ -68,13 +67,12 @@ version {
# CHECK: substrait.plan version 0 : 42 : 1 {
# CHECK-NEXT: relation
# CHECK: %[[V0:.*]] = named_table
# CHECK-NEXT: %[[V1:.*]] = project %[[V0]] : tuple<si1> -> tuple<si1, !substrait.timestamp, !substrait.timestamp_tz> {
# CHECK-NEXT: %[[V1:.*]] = project %[[V0]] : tuple<si1> -> tuple<si1, !substrait.date> {
# CHECK-NEXT: ^[[BB0:.*]](%[[ARG0:.*]]: tuple<si1>):
# CHECK-NEXT: %[[V2:.*]] = literal #substrait.timestamp<10000000000us> : !substrait.timestamp
# CHECK-NEXT: %[[V3:.*]] = literal #substrait.timestamp_tz<10000000000us> : !substrait.timestamp_tz
# CHECK-NEXT: yield %[[V2]], %[[V3]] : !substrait.timestamp, !substrait.timestamp_tz
# CHECK-NEXT: %[[V2:.*]] = literal #substrait.date<200000000> : !substrait.date
# CHECK-NEXT: yield %[[V2]] : !substrait.date
# CHECK-NEXT: }
# CHECK-NEXT: yield %[[V1]] : tuple<si1, !substrait.timestamp, !substrait.timestamp_tz>
# CHECK-NEXT: yield %[[V1]] : tuple<si1, !substrait.date>

relations {
rel {
Expand Down Expand Up @@ -107,12 +105,7 @@ relations {
}
expressions {
literal {
timestamp: 10000000000
}
}
expressions {
literal {
timestamp_tz: 10000000000
date: 200000000
}
}
}
Expand All @@ -128,12 +121,13 @@ version {
# CHECK: substrait.plan version 0 : 42 : 1 {
# CHECK-NEXT: relation
# CHECK: %[[V0:.*]] = named_table
# CHECK-NEXT: %[[V1:.*]] = project %[[V0]] : tuple<si1> -> tuple<si1, !substrait.binary> {
# CHECK-NEXT: %[[V1:.*]] = project %[[V0]] : tuple<si1> -> tuple<si1, !substrait.timestamp, !substrait.timestamp_tz> {
# CHECK-NEXT: ^[[BB0:.*]](%[[ARG0:.*]]: tuple<si1>):
# CHECK-NEXT: %[[V2:.*]] = literal "4,5,6,7" : !substrait.binary
# CHECK-NEXT: yield %[[V2]] : !substrait.binary
# CHECK-NEXT: %[[V2:.*]] = literal #substrait.timestamp<10000000000us> : !substrait.timestamp
# CHECK-NEXT: %[[V3:.*]] = literal #substrait.timestamp_tz<10000000000us> : !substrait.timestamp_tz
# CHECK-NEXT: yield %[[V2]], %[[V3]] : !substrait.timestamp, !substrait.timestamp_tz
# CHECK-NEXT: }
# CHECK-NEXT: yield %[[V1]] : tuple<si1, !substrait.binary>
# CHECK-NEXT: yield %[[V1]] : tuple<si1, !substrait.timestamp, !substrait.timestamp_tz>

relations {
rel {
Expand Down Expand Up @@ -166,7 +160,12 @@ relations {
}
expressions {
literal {
binary: "4,5,6,7"
timestamp: 10000000000
}
}
expressions {
literal {
timestamp_tz: 10000000000
}
}
}
Expand All @@ -182,12 +181,12 @@ version {
# CHECK: substrait.plan version 0 : 42 : 1 {
# CHECK-NEXT: relation
# CHECK: %[[V0:.*]] = named_table
# CHECK-NEXT: %[[V1:.*]] = project %[[V0]] : tuple<si1> -> tuple<si1, !substrait.string> {
# CHECK-NEXT: %[[V1:.*]] = project %[[V0]] : tuple<si1> -> tuple<si1, !substrait.binary> {
# CHECK-NEXT: ^[[BB0:.*]](%[[ARG0:.*]]: tuple<si1>):
# CHECK-NEXT: %[[V2:.*]] = literal "hi" : !substrait.string
# CHECK-NEXT: yield %[[V2]] : !substrait.string
# CHECK-NEXT: %[[V2:.*]] = literal "4,5,6,7" : !substrait.binary
# CHECK-NEXT: yield %[[V2]] : !substrait.binary
# CHECK-NEXT: }
# CHECK-NEXT: yield %[[V1]] : tuple<si1, !substrait.string>
# CHECK-NEXT: yield %[[V1]] : tuple<si1, !substrait.binary>

relations {
rel {
Expand Down Expand Up @@ -220,7 +219,7 @@ relations {
}
expressions {
literal {
string: "hi"
binary: "4,5,6,7"
}
}
}
Expand All @@ -234,14 +233,14 @@ version {
# -----

# CHECK: substrait.plan version 0 : 42 : 1 {
# CHECK-NEXT: relation
# CHECK-NEXT: relation
# CHECK: %[[V0:.*]] = named_table
# CHECK-NEXT: %[[V1:.*]] = project %[[V0]] : tuple<si1> -> tuple<si1, !substrait.time> {
# CHECK-NEXT: %[[V1:.*]] = project %[[V0]] : tuple<si1> -> tuple<si1, !substrait.string> {
# CHECK-NEXT: ^[[BB0:.*]](%[[ARG0:.*]]: tuple<si1>):
# CHECK-NEXT: %[[V2:.*]] = literal #substrait.time<200000000> : !substrait.time
# CHECK-NEXT: yield %[[V2]] : !substrait.time
# CHECK-NEXT: %[[V2:.*]] = literal "hi" : !substrait.string
# CHECK-NEXT: yield %[[V2]] : !substrait.string
# CHECK-NEXT: }
# CHECK-NEXT: yield %[[V1]] : tuple<si1, !substrait.time>
# CHECK-NEXT: yield %[[V1]] : tuple<si1, !substrait.string>

relations {
rel {
Expand Down Expand Up @@ -274,7 +273,7 @@ relations {
}
expressions {
literal {
time: 200000000
string: "hi"
}
}
}
Expand Down

0 comments on commit 8788328

Please sign in to comment.