opteryx
opteryx copied to clipboard
🪲 test coverage is under 95% (92%)
trafficstars
https://github.com/mabel-dev/opteryx/actions/runs/10274964773/job/28432725873
modules with 100% removed:
Name Stmts Miss Cover Missing
---------------------------------------------------------------------------------------------------------------
opteryx/__init__.py 52 8 85% 2[20](https://github.com/mabel-dev/opteryx/actions/runs/10274964773/job/28432725873#step:9:21)-232
opteryx/__main__.py 63 6 90% 148-153
opteryx/config.py 95 8 92% 46, 59, 61, 63, 67, 94-96
opteryx/connectors/__init__.py 68 13 81% 55, 77-78, 80-84, 87-89, 95, 106
opteryx/connectors/aws_s3_connector.py 91 12 87% 100-101, 110-111, 113-114, 117, 1[21](https://github.com/mabel-dev/opteryx/actions/runs/10274964773/job/28432725873#step:9:22), 127, 140-142
opteryx/connectors/base/base_connector.py 54 6 89% 39, 59, 115-117, 155
opteryx/connectors/capabilities/asynchronous.py 5 1 80% 19
opteryx/connectors/capabilities/cacheable.py 107 61 43% 36, 48-107, 148-156, 164-167, 172-174, 182-189
opteryx/connectors/capabilities/partitionable.py 16 2 88% 30, 37
opteryx/connectors/capabilities/predicate_pushable.py 42 6 86% 85, 87, 91, 93, 100, 110
opteryx/connectors/cql_connector.py 83 55 34% 44-52, 88-108, 117-167, 170-197
opteryx/connectors/disk_connector.py 87 11 87% 118, 121-123, 183-184, 186-187, 190, 192, 202
opteryx/connectors/file_connector.py 48 5 90% 34, 63, 99-100, 113
opteryx/connectors/gcp_cloudstorage_connector.py 128 12 91% 145, 175, 179-181, [22](https://github.com/mabel-dev/opteryx/actions/runs/10274964773/job/28432725873#step:9:23)9, 261-262, 265-266, 274, 280
opteryx/connectors/gcp_firestore_connector.py 30 2 93% 98, 104
opteryx/connectors/mongodb_connector.py 38 2 95% 80, 86
opteryx/connectors/sql_connector.py 115 3 97% 219, 245, 256
opteryx/connectors/virtual_data.py 53 4 92% 56, 73, 128-129
opteryx/constants/character_set.py 288 8 97% 68-70, 74, 77, 80, 310, 314
opteryx/cursor.py 169 15 91% 54, 194, 266-279, 289, 293, 299-301, 331, 398
opteryx/custom_types/intervals.py 38 10 74% 75-96
opteryx/debugging.py 40 5 88% 45, 72, 80-82
opteryx/exceptions.py 118 9 92% 185, 206-208, 221, 225, 311, 319, 327
opteryx/functions/__init__.py 128 10 92% 47, 70, 74-75, 131, 182, 206, 219, [23](https://github.com/mabel-dev/opteryx/actions/runs/10274964773/job/28432725873#step:9:24)3, 272
opteryx/functions/date_functions.py 49 4 92% 71, 84, 129, 132
opteryx/functions/number_functions.py 25 1 96% 63
opteryx/functions/other_functions.py 113 17 85% 89, 101, 147, 165-174, 194, 201, 204, 219, 233
opteryx/functions/string_functions.py 192 17 91% 72, 82, 92, 102, 112, 122, 132, 142, 154, 166, 178, 190, 202, 227, 264, 355, 360
opteryx/managers/cache/memcached.py 73 26 64% 38, 44, 48, 52-53, 65-67, 86, 98-99, 125-135, 138-147
opteryx/managers/cache/null_cache.py 8 1 88% [24](https://github.com/mabel-dev/opteryx/actions/runs/10274964773/job/28432725873#step:9:25)
opteryx/managers/cache/redis.py 59 26 56% 37, 41-42, 61, 72-73, 80-92, 95-109, 112
opteryx/managers/catalog/__init__.py 7 2 71% 22-24
opteryx/managers/catalog/catalog_provider.py 8 3 62% 18, 21, 24
opteryx/managers/catalog/tarchia_provider.py 93 [25](https://github.com/mabel-dev/opteryx/actions/runs/10274964773/job/28432725873#step:9:26) 73% 47-48, 58, 61, 83, 87, 107-112, 116, 124, 131, 147, 152-157, 169-173
opteryx/managers/expression/__init__.py 225 6 97% 191, 270, 296, 299-300, 380
opteryx/managers/expression/binary_operators.py 43 3 93% 92, 99-101
opteryx/managers/expression/formatter.py 91 1 99% 52
opteryx/managers/expression/ops.py 120 7 94% 75-85, 201
opteryx/managers/expression/unary_operations.py 20 1 95% 40
opteryx/managers/kvstores/base_kv_store.py 13 4 69% 35, 41, 49, 52
opteryx/managers/permissions/__init__.py 24 6 75% 17-21, 31
opteryx/managers/schemes/base_partition_scheme.py 13 5 62% 29-32, 44
opteryx/managers/schemes/mabel_partitions.py 92 2 98% 58, 97
opteryx/models/execution_tree.py 65 3 95% 112, 118, 127
opteryx/models/logical_column.py 29 1 97% 85
opteryx/models/query_statistics.py 43 5 88% 25, 30, 42, 63, 66
opteryx/operators/aggregate_node.py 113 4 96% 98, 114, 149, 227
opteryx/operators/async_read_node.py 122 1 99% 202
opteryx/operators/base_plan_node.py 39 1 97% 82
opteryx/operators/cross_join_node.py 132 12 91% 67, 86, 115-117, 128-140, 257, [26](https://github.com/mabel-dev/opteryx/actions/runs/10274964773/job/28432725873#step:9:27)2
opteryx/operators/exit_node.py 43 1 98% 93
opteryx/operators/explain_node.py 12 2 83% 48-49
opteryx/operators/filter_node.py 44 2 95% 82-83
opteryx/operators/function_dataset_node.py 62 2 97% 43, 126
opteryx/operators/inner_join_node_single.py 104 20 81% 72-80, 88, 135-146
opteryx/operators/noop_node.py 12 4 67% 30, 46-48
opteryx/operators/outer_join_node.py 140 2 99% 86, 259
opteryx/operators/read_node.py 70 4 94% 63-64, 88, 98
opteryx/operators/show_columns_node.py 49 2 96% 63, 98
opteryx/operators/show_value_node.py 22 1 95% 41
opteryx/operators/sort_node.py 40 2 95% 86-87
opteryx/planner/ast_rewriter.py 106 4 96% 91, 99, 135, 157
opteryx/planner/binder/__init__.py 12 1 92% 88
opteryx/planner/binder/binder.py 153 2 99% 55, 61
opteryx/planner/binder/binder_visitor.py 496 10 98% 408, 538, 872, 890-891, 976-986
opteryx/planner/binder/operator_map.py 42 2 95% 225, 232
opteryx/planner/cost_based_optimizer/__init__.py 32 2 94% 150-151
opteryx/planner/cost_based_optimizer/strategies/constant_folding.py 64 7 89% 57, 62, 67-70, 88, 97
opteryx/planner/cost_based_optimizer/strategies/optimization_strategy.py 16 2 88% 36, 41
opteryx/planner/cost_based_optimizer/strategies/predicate_pushdown.py 221 20 91% 68-73, 114-123, 233, 278, 421-422, 427-431, 442
opteryx/planner/cost_based_optimizer/strategies/split_conjunctive_predicates.py 43 1 98% 27
opteryx/planner/logical_planner/logical_planner.py 626 31 95% 206-208, 215, 235-237, 382, 455-456, 741-758, 786, 795-796, 815, 820-821
opteryx/planner/logical_planner/logical_planner_builders.py 338 12 96% 66, 196, 292, 417, 420, 426, 617, 631, 648, 675-676, 693
opteryx/planner/temporary_physical_planner.py 64 1 98% 95
opteryx/planner/views/__init__.py 22 4 82% 20-24
opteryx/shared/buffer_pool.py 44 13 70% 52, 68-84, 91, 98
opteryx/shared/rolling_log.py 30 19 37% 30-38, 42-52, 69, 73
opteryx/shared/variables.py 56 4 93% 109, 132, 136, 142
opteryx/third_party/query_builder/builder.py 96 1 99% 79
opteryx/third_party/travers/graph.py 200 14 93% 118-119, 334, 396, 403, 478, 485, 519, 521, 523, 5[28](https://github.com/mabel-dev/opteryx/actions/runs/10274964773/job/28432725873#step:9:29)-531
opteryx/utils/__init__.py 39 1 97% 74
opteryx/utils/arrow.py 67 3 96% 39-40, 71
opteryx/utils/dates.py 101 6 94% 71-72, 148, 163, 214-215
opteryx/utils/file_decoders.py 195 13 93% 91, 98, 106, 215-226, [29](https://github.com/mabel-dev/opteryx/actions/runs/10274964773/job/28432725873#step:9:30)2, 413, 438, 448
opteryx/utils/lru_2.py 73 4 95% 105, 108-110
opteryx/utils/memory_view_stream.py 46 4 91% 80-83
---------------------------------------------------------------------------------------------------------------
TOTAL 8807 681 92%