|
|
|
@ -141,51 +141,50 @@ func (e *DefaultSqlEngine) Query( |
|
|
|
|
// ConvertSqlTimeColumnToEpochMs converts column named time to unix timestamp in milliseconds
|
|
|
|
|
// to make native datetime types and epoch dates work in annotation and table queries.
|
|
|
|
|
func ConvertSqlTimeColumnToEpochMs(values RowValues, timeIndex int) { |
|
|
|
|
if timeIndex < 0 { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
switch value := values[timeIndex].(type) { |
|
|
|
|
case time.Time: |
|
|
|
|
values[timeIndex] = EpochPrecisionToMs(float64(value.UnixNano())) |
|
|
|
|
case *time.Time: |
|
|
|
|
if value != nil { |
|
|
|
|
values[timeIndex] = EpochPrecisionToMs(float64((*value).UnixNano())) |
|
|
|
|
} |
|
|
|
|
case int64: |
|
|
|
|
values[timeIndex] = int64(EpochPrecisionToMs(float64(value))) |
|
|
|
|
case *int64: |
|
|
|
|
if value != nil { |
|
|
|
|
values[timeIndex] = int64(EpochPrecisionToMs(float64(*value))) |
|
|
|
|
} |
|
|
|
|
case uint64: |
|
|
|
|
values[timeIndex] = int64(EpochPrecisionToMs(float64(value))) |
|
|
|
|
case *uint64: |
|
|
|
|
if value != nil { |
|
|
|
|
values[timeIndex] = int64(EpochPrecisionToMs(float64(*value))) |
|
|
|
|
} |
|
|
|
|
case int32: |
|
|
|
|
values[timeIndex] = int64(EpochPrecisionToMs(float64(value))) |
|
|
|
|
case *int32: |
|
|
|
|
if value != nil { |
|
|
|
|
values[timeIndex] = int64(EpochPrecisionToMs(float64(*value))) |
|
|
|
|
} |
|
|
|
|
case uint32: |
|
|
|
|
values[timeIndex] = int64(EpochPrecisionToMs(float64(value))) |
|
|
|
|
case *uint32: |
|
|
|
|
if value != nil { |
|
|
|
|
values[timeIndex] = int64(EpochPrecisionToMs(float64(*value))) |
|
|
|
|
} |
|
|
|
|
case float64: |
|
|
|
|
values[timeIndex] = EpochPrecisionToMs(value) |
|
|
|
|
case *float64: |
|
|
|
|
if value != nil { |
|
|
|
|
values[timeIndex] = EpochPrecisionToMs(*value) |
|
|
|
|
} |
|
|
|
|
case float32: |
|
|
|
|
values[timeIndex] = EpochPrecisionToMs(float64(value)) |
|
|
|
|
case *float32: |
|
|
|
|
if value != nil { |
|
|
|
|
values[timeIndex] = EpochPrecisionToMs(float64(*value)) |
|
|
|
|
if timeIndex >= 0 { |
|
|
|
|
switch value := values[timeIndex].(type) { |
|
|
|
|
case time.Time: |
|
|
|
|
values[timeIndex] = EpochPrecisionToMs(float64(value.UnixNano())) |
|
|
|
|
case *time.Time: |
|
|
|
|
if value != nil { |
|
|
|
|
values[timeIndex] = EpochPrecisionToMs(float64((*value).UnixNano())) |
|
|
|
|
} |
|
|
|
|
case int64: |
|
|
|
|
values[timeIndex] = int64(EpochPrecisionToMs(float64(value))) |
|
|
|
|
case *int64: |
|
|
|
|
if value != nil { |
|
|
|
|
values[timeIndex] = int64(EpochPrecisionToMs(float64(*value))) |
|
|
|
|
} |
|
|
|
|
case uint64: |
|
|
|
|
values[timeIndex] = int64(EpochPrecisionToMs(float64(value))) |
|
|
|
|
case *uint64: |
|
|
|
|
if value != nil { |
|
|
|
|
values[timeIndex] = int64(EpochPrecisionToMs(float64(*value))) |
|
|
|
|
} |
|
|
|
|
case int32: |
|
|
|
|
values[timeIndex] = int64(EpochPrecisionToMs(float64(value))) |
|
|
|
|
case *int32: |
|
|
|
|
if value != nil { |
|
|
|
|
values[timeIndex] = int64(EpochPrecisionToMs(float64(*value))) |
|
|
|
|
} |
|
|
|
|
case uint32: |
|
|
|
|
values[timeIndex] = int64(EpochPrecisionToMs(float64(value))) |
|
|
|
|
case *uint32: |
|
|
|
|
if value != nil { |
|
|
|
|
values[timeIndex] = int64(EpochPrecisionToMs(float64(*value))) |
|
|
|
|
} |
|
|
|
|
case float64: |
|
|
|
|
values[timeIndex] = EpochPrecisionToMs(value) |
|
|
|
|
case *float64: |
|
|
|
|
if value != nil { |
|
|
|
|
values[timeIndex] = EpochPrecisionToMs(*value) |
|
|
|
|
} |
|
|
|
|
case float32: |
|
|
|
|
values[timeIndex] = EpochPrecisionToMs(float64(value)) |
|
|
|
|
case *float32: |
|
|
|
|
if value != nil { |
|
|
|
|
values[timeIndex] = EpochPrecisionToMs(float64(*value)) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|