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

georgia-tech-db / eva / #832

12 Oct 2023 08:31AM UTC coverage: 0.0% (-68.5%) from 68.493%
#832

push

circle-ci

xzdandy
Minor

0 of 12331 relevant lines covered (0.0%)

0.0 hits per line

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

0.0
/evadb/executor/pp_executor.py
1
# coding=utf-8
2
# Copyright 2018-2023 EvaDB
3
#
4
# Licensed under the Apache License, Version 2.0 (the "License");
5
# you may not use this file except in compliance with the License.
6
# You may obtain a copy of the License at
7
#
8
#     http://www.apache.org/licenses/LICENSE-2.0
9
#
10
# Unless required by applicable law or agreed to in writing, software
11
# distributed under the License is distributed on an "AS IS" BASIS,
12
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
# See the License for the specific language governing permissions and
14
# limitations under the License.
15
from typing import Iterator
×
16

17
from evadb.database import EvaDBDatabase
×
18
from evadb.executor.abstract_executor import AbstractExecutor
×
19
from evadb.models.storage.batch import Batch
×
20
from evadb.plan_nodes.pp_plan import PPScanPlan
×
21

22

23
class PPExecutor(AbstractExecutor):
×
24
    """
25
    Applies PP to filter out the frames that doesn't satisfy the condition
26
    Arguments:
27
        node (AbstractPlan): ...
28

29
    Note: This look kind of redundant. This logic for now is similar to that
30
    of sequential scan executor. Will decide to delete it depending on how
31
    sequential scan evolves.
32
    """
33

34
    def __init__(self, db: EvaDBDatabase, node: PPScanPlan):
×
35
        super().__init__(db, node)
×
36
        self.predicate = node.predicate
×
37

38
    def exec(self, *args, **kwargs) -> Iterator[Batch]:
×
39
        child_executor = self.children[0]
×
40
        for batch in child_executor.exec():
×
41
            outcomes = self.predicate.evaluate(batch)
×
42
            required_frame_ids = []
×
43
            for i, outcome in enumerate(outcomes):
×
44
                if outcome:
×
45
                    required_frame_ids.append(i)
×
46

47
            yield batch[required_frame_ids]
×
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