• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

vortex-data / vortex / 16935267080

13 Aug 2025 11:00AM UTC coverage: 24.312% (-63.3%) from 87.658%
16935267080

Pull #4226

github

web-flow
Merge 81b48c7fb into baa6ea202
Pull Request #4226: Support converting TimestampTZ to and from duckdb

0 of 2 new or added lines in 1 file covered. (0.0%)

20666 existing lines in 469 files now uncovered.

8726 of 35892 relevant lines covered (24.31%)

147.74 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/vortex-array/src/stats/provider.rs
1
// SPDX-License-Identifier: Apache-2.0
2
// SPDX-FileCopyrightText: Copyright the Vortex contributors
3

4
use vortex_error::{VortexError, vortex_panic};
5
use vortex_scalar::Scalar;
6

7
use super::{Precision, Stat, StatType};
8

9
pub trait StatsProvider {
10
    fn get(&self, stat: Stat) -> Option<Precision<Scalar>>;
11

12
    /// Count of stored stats with known values.
13
    fn len(&self) -> usize;
14

15
    /// Predicate equivalent to a [len][Self::len] of zero.
16
    fn is_empty(&self) -> bool {
×
17
        self.len() == 0
×
18
    }
×
19
}
20

21
impl<S> StatsProviderExt for S where S: StatsProvider {}
22

23
pub trait StatsProviderExt: StatsProvider {
UNCOV
24
    fn get_scalar_bound<S: StatType<Scalar>>(&self) -> Option<S::Bound> {
×
UNCOV
25
        self.get(S::STAT).map(|v| v.bound::<S>())
×
UNCOV
26
    }
×
27

UNCOV
28
    fn get_as<T: for<'a> TryFrom<&'a Scalar, Error = VortexError>>(
×
UNCOV
29
        &self,
×
UNCOV
30
        stat: Stat,
×
UNCOV
31
    ) -> Option<Precision<T>> {
×
UNCOV
32
        self.get(stat).map(|v| {
×
UNCOV
33
            v.map(|v| {
×
UNCOV
34
                T::try_from(&v).unwrap_or_else(|err| {
×
35
                    vortex_panic!(
×
36
                        err,
×
37
                        "Failed to get stat {} as {}",
×
38
                        stat,
39
                        std::any::type_name::<T>()
×
40
                    )
41
                })
UNCOV
42
            })
×
UNCOV
43
        })
×
UNCOV
44
    }
×
45

UNCOV
46
    fn get_as_bound<S, U>(&self) -> Option<S::Bound>
×
UNCOV
47
    where
×
UNCOV
48
        S: StatType<U>,
×
UNCOV
49
        U: for<'a> TryFrom<&'a Scalar, Error = VortexError>,
×
50
    {
UNCOV
51
        self.get_as::<U>(S::STAT).map(|v| v.bound::<S>())
×
UNCOV
52
    }
×
53
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc