Skip to content

Commit 03ca01c

Browse files
committed
Changes because MSVC tries to instantiate NumericScalar for Time/Timestamp types
Change-Id: I00ca69a9c1ec1ddaa5b1fd9db35e9db09a12eb8b
1 parent 271d602 commit 03ca01c

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

cpp/src/arrow/scalar.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,19 @@ using internal::checked_cast;
3232

3333
Time32Scalar::Time32Scalar(int32_t value, const std::shared_ptr<DataType>& type,
3434
bool is_valid)
35-
: NumericScalar(value, type, is_valid) {
35+
: Scalar{type, is_valid}, value(value) {
3636
DCHECK_EQ(Type::TIME32, type->id());
3737
}
3838

3939
Time64Scalar::Time64Scalar(int64_t value, const std::shared_ptr<DataType>& type,
4040
bool is_valid)
41-
: NumericScalar(value, type, is_valid) {
41+
: Scalar{type, is_valid}, value(value) {
4242
DCHECK_EQ(Type::TIME64, type->id());
4343
}
4444

4545
TimestampScalar::TimestampScalar(int64_t value, const std::shared_ptr<DataType>& type,
4646
bool is_valid)
47-
: NumericScalar(value, type, is_valid) {
47+
: Scalar{type, is_valid}, value(value) {
4848
DCHECK_EQ(Type::TIMESTAMP, type->id());
4949
}
5050

cpp/src/arrow/scalar.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,20 +109,23 @@ class ARROW_EXPORT Date64Scalar : public NumericScalar<Date64Type> {
109109
using NumericScalar<Date64Type>::NumericScalar;
110110
};
111111

112-
class ARROW_EXPORT Time32Scalar : public NumericScalar<Time32Type> {
112+
class ARROW_EXPORT Time32Scalar : public Scalar {
113113
public:
114+
int32_t value;
114115
Time32Scalar(int32_t value, const std::shared_ptr<DataType>& type,
115116
bool is_valid = true);
116117
};
117118

118-
class ARROW_EXPORT Time64Scalar : public NumericScalar<Time64Type> {
119+
class ARROW_EXPORT Time64Scalar : public Scalar {
119120
public:
121+
int64_t value;
120122
Time64Scalar(int64_t value, const std::shared_ptr<DataType>& type,
121123
bool is_valid = true);
122124
};
123125

124-
class ARROW_EXPORT TimestampScalar : public NumericScalar<TimestampType> {
126+
class ARROW_EXPORT TimestampScalar : public Scalar {
125127
public:
128+
int64_t value;
126129
TimestampScalar(int64_t value, const std::shared_ptr<DataType>& type,
127130
bool is_valid = true);
128131
};

0 commit comments

Comments
 (0)