Skip to content

Commit

Permalink
address comments
Browse files Browse the repository at this point in the history
  • Loading branch information
zhli1142015 committed Apr 15, 2024
1 parent 0d9adcc commit 260a8bb
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 24 deletions.
25 changes: 11 additions & 14 deletions velox/functions/sparksql/Register.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,15 @@ inline void registerArrayMinMaxFunctions(const std::string& prefix) {
registerArrayMinMaxFunctions<Timestamp>(prefix);
registerArrayMinMaxFunctions<Date>(prefix);
}

template <template <class> typename T>
inline void registerIntegralToTimestamp(
const std::vector<std::string>& aliases) {
registerFunction<T, Timestamp, int8_t>(aliases);
registerFunction<T, Timestamp, int16_t>(aliases);
registerFunction<T, Timestamp, int32_t>(aliases);
registerFunction<T, Timestamp, int64_t>(aliases);
}
} // namespace

void registerFunctions(const std::string& prefix) {
Expand Down Expand Up @@ -390,23 +399,11 @@ void registerFunctions(const std::string& prefix) {

registerFunction<TimestampToMicrosFunction, int64_t, Timestamp>(
{prefix + "unix_micros"});
registerFunction<MicrosToTimestampFunction, Timestamp, int8_t>(
{prefix + "timestamp_micros"});
registerFunction<MicrosToTimestampFunction, Timestamp, int16_t>(
{prefix + "timestamp_micros"});
registerFunction<MicrosToTimestampFunction, Timestamp, int32_t>(
{prefix + "timestamp_micros"});
registerFunction<MicrosToTimestampFunction, Timestamp, int64_t>(
registerIntegralToTimestamp<MicrosToTimestampFunction>(
{prefix + "timestamp_micros"});
registerFunction<TimestampToMillisFunction, int64_t, Timestamp>(
{prefix + "unix_millis"});
registerFunction<MillisToTimestampFunction, Timestamp, int8_t>(
{prefix + "timestamp_millis"});
registerFunction<MillisToTimestampFunction, Timestamp, int16_t>(
{prefix + "timestamp_millis"});
registerFunction<MillisToTimestampFunction, Timestamp, int32_t>(
{prefix + "timestamp_millis"});
registerFunction<MillisToTimestampFunction, Timestamp, int64_t>(
registerIntegralToTimestamp<MillisToTimestampFunction>(
{prefix + "timestamp_millis"});

// Register bloom filter function
Expand Down
20 changes: 10 additions & 10 deletions velox/functions/sparksql/tests/DateTimeFunctionsTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ class DateTimeFunctionsTest : public SparkFunctionBaseTest {
static constexpr int16_t kMaxSmallint = std::numeric_limits<int16_t>::max();
static constexpr int8_t kMinTinyint = std::numeric_limits<int8_t>::min();
static constexpr int8_t kMaxTinyint = std::numeric_limits<int8_t>::max();
static constexpr int64_t kMinLong = std::numeric_limits<int64_t>::min();
static constexpr int64_t kMaxLong = std::numeric_limits<int64_t>::max();
static constexpr int64_t kMinBigint = std::numeric_limits<int64_t>::min();
static constexpr int64_t kMaxBigint = std::numeric_limits<int64_t>::max();

protected:
void setQueryTimeZone(const std::string& timeZone) {
Expand Down Expand Up @@ -1000,10 +1000,10 @@ TEST_F(DateTimeFunctionsTest, microsToTimestamp) {
microsToTimestamp(kMin),
util::fromTimestampString("1969-12-31 23:24:12.516352"));
EXPECT_EQ(
microsToTimestamp(kMaxLong),
microsToTimestamp(kMaxBigint),
util::fromTimestampString("294247-01-10 04:00:54.775807"));
EXPECT_EQ(
microsToTimestamp(kMinLong),
microsToTimestamp(kMinBigint),
util::fromTimestampString("-290308-12-21 19:59:05.224192"));
}

Expand Down Expand Up @@ -1037,10 +1037,10 @@ TEST_F(DateTimeFunctionsTest, millisToTimestamp) {
millisToTimestamp(kMin),
util::fromTimestampString("1969-12-07 03:28:36.352"));
EXPECT_EQ(
millisToTimestamp(kMaxLong),
millisToTimestamp(kMaxBigint),
util::fromTimestampString("292278994-08-17T07:12:55.807"));
EXPECT_EQ(
millisToTimestamp(kMinLong),
millisToTimestamp(kMinBigint),
util::fromTimestampString("-292275055-05-16T16:47:04.192"));
}

Expand All @@ -1058,9 +1058,9 @@ TEST_F(DateTimeFunctionsTest, timestampToMicros) {
EXPECT_EQ(timestampToMicros("1969-12-31 23:59:59.967232"), kMinSmallint);
EXPECT_EQ(timestampToMicros("1970-01-01 00:35:47.483647"), kMax);
EXPECT_EQ(timestampToMicros("1969-12-31 23:24:12.516352"), kMin);
EXPECT_EQ(timestampToMicros("294247-01-10 04:00:54.775807"), kMaxLong);
EXPECT_EQ(timestampToMicros("294247-01-10 04:00:54.775807"), kMaxBigint);
EXPECT_EQ(
timestampToMicros("-290308-12-21 19:59:06.224192"), kMinLong + 1000000);
timestampToMicros("-290308-12-21 19:59:06.224192"), kMinBigint + 1000000);
}

TEST_F(DateTimeFunctionsTest, timestampToMillis) {
Expand All @@ -1077,8 +1077,8 @@ TEST_F(DateTimeFunctionsTest, timestampToMillis) {
EXPECT_EQ(timestampToMillis("1969-12-31 23:59:27.232"), kMinSmallint);
EXPECT_EQ(timestampToMillis("1970-01-25 20:31:23.647"), kMax);
EXPECT_EQ(timestampToMillis("1969-12-07 03:28:36.352"), kMin);
EXPECT_EQ(timestampToMillis("292278994-08-17T07:12:55.807"), kMaxLong);
EXPECT_EQ(timestampToMillis("-292275055-05-16T16:47:04.192"), kMinLong);
EXPECT_EQ(timestampToMillis("292278994-08-17T07:12:55.807"), kMaxBigint);
EXPECT_EQ(timestampToMillis("-292275055-05-16T16:47:04.192"), kMinBigint);
}

} // namespace
Expand Down

0 comments on commit 260a8bb

Please sign in to comment.