vgi-python 0.36.0__py3-none-any.whl → 0.36.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- vgi/_test_fixtures/table/splits.py +5 -3
- vgi/aggregate_function.py +8 -1
- vgi/client/aggregate.py +4 -1
- vgi/protocol.py +4 -1
- {vgi_python-0.36.0.dist-info → vgi_python-0.36.1.dist-info}/METADATA +1 -1
- {vgi_python-0.36.0.dist-info → vgi_python-0.36.1.dist-info}/RECORD +9 -9
- {vgi_python-0.36.0.dist-info → vgi_python-0.36.1.dist-info}/WHEEL +0 -0
- {vgi_python-0.36.0.dist-info → vgi_python-0.36.1.dist-info}/entry_points.txt +0 -0
- {vgi_python-0.36.0.dist-info → vgi_python-0.36.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -18,8 +18,8 @@ ways it goes right:
|
|
|
18
18
|
shape that silently truncates a scan if a reader treats an empty split as EOS.
|
|
19
19
|
* ``split_skewed(n)`` — one split ~100x the others, so greedy claiming can be
|
|
20
20
|
told apart from static assignment.
|
|
21
|
-
* ``split_many(n, splits
|
|
22
|
-
forces sequential re-init on a reused connection.
|
|
21
|
+
* ``split_many(n, splits)`` — far more splits than reader threads (pass them), which
|
|
22
|
+
forces sequential re-init on a reused connection. ``splits <= 0`` means 1000.
|
|
23
23
|
* ``split_echo_filters(n)`` — reports the pushdown it saw *per split*, so a
|
|
24
24
|
pushdown regression is visible without inferring it from row counts.
|
|
25
25
|
"""
|
|
@@ -322,7 +322,9 @@ class SplitManyFunction(_SplitBase):
|
|
|
322
322
|
|
|
323
323
|
@classmethod
|
|
324
324
|
def _split_count(cls, params: BindParams[SplitSequenceArgs]) -> int:
|
|
325
|
-
|
|
325
|
+
# Honour the caller's count, as every other SDK's twin does; a floor here
|
|
326
|
+
# made a test that asks for 64 splits pay for 1000 HTTP round trips.
|
|
327
|
+
return params.args.splits if params.args.splits > 0 else 1000
|
|
326
328
|
|
|
327
329
|
|
|
328
330
|
@dataclass(frozen=True)
|
vgi/aggregate_function.py
CHANGED
|
@@ -518,7 +518,14 @@ class AggregateFunction[TState: StreamStateCodec](vgi.function.Function):
|
|
|
518
518
|
"""Compute the aggregate value for one output row.
|
|
519
519
|
|
|
520
520
|
Args:
|
|
521
|
-
rid:
|
|
521
|
+
rid: Identifies the output row being filled; do not use it to
|
|
522
|
+
index the partition. Over the per-row ``aggregate_window``
|
|
523
|
+
RPC it is DuckDB's own ``rid``: the row's index within the
|
|
524
|
+
current output chunk (``0 <= rid < 2048``), not its row in
|
|
525
|
+
the partition. When the default :meth:`window_batch` calls
|
|
526
|
+
this, it passes the partition row index instead. Either way
|
|
527
|
+
``subframes`` are partition-relative: use them to find the
|
|
528
|
+
rows to aggregate.
|
|
522
529
|
subframes: Frame ranges ``[(begin, end), ...]`` — 1 for the default
|
|
523
530
|
frame, 3 when ``EXCLUDE`` produces multiple subframes.
|
|
524
531
|
partition: The cached partition data.
|
vgi/client/aggregate.py
CHANGED
|
@@ -371,7 +371,10 @@ class AggregateSession:
|
|
|
371
371
|
|
|
372
372
|
Args:
|
|
373
373
|
partition_id: The partition previously shipped by :meth:`window_init`.
|
|
374
|
-
rid:
|
|
374
|
+
rid: Identifies the output row. The DuckDB extension sends DuckDB's
|
|
375
|
+
own per-row ``rid``, the row's index within the current output
|
|
376
|
+
chunk rather than its row in the partition; ``frames`` carry the
|
|
377
|
+
partition-relative bounds, and a worker must use those.
|
|
375
378
|
frames: The row's subframes as ``(begin, end)`` half-open offsets
|
|
376
379
|
into the partition. One entry normally; two or three for
|
|
377
380
|
``EXCLUDE TIES`` / ``EXCLUDE GROUP``.
|
vgi/protocol.py
CHANGED
|
@@ -2887,7 +2887,10 @@ class AggregateWindowRequest(ArrowSerializableDataclass):
|
|
|
2887
2887
|
execution_id: Identifier for one query execution, stable across the
|
|
2888
2888
|
coordinator and any secondary workers; keys worker-owned state.
|
|
2889
2889
|
partition_id: Identifier of the window partition this call addresses.
|
|
2890
|
-
rid:
|
|
2890
|
+
rid: Which output row this call fills, as DuckDB's per-row window callback
|
|
2891
|
+
reports it: the row's index within the current output chunk
|
|
2892
|
+
(``0 <= rid < STANDARD_VECTOR_SIZE``), NOT its row in the partition.
|
|
2893
|
+
The frames below are partition-relative; use them to find the rows.
|
|
2891
2894
|
frame_starts: Subframe start offsets (inclusive) within the partition, one
|
|
2892
2895
|
per subframe.
|
|
2893
2896
|
frame_ends: Subframe end offsets (exclusive) within the partition, parallel
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: vgi-python
|
|
3
|
-
Version: 0.36.
|
|
3
|
+
Version: 0.36.1
|
|
4
4
|
Summary: Vector Gateway Interface - Connect DuckDB to external programs via Apache Arrow
|
|
5
5
|
Project-URL: Homepage, https://query.farm
|
|
6
6
|
Project-URL: Repository, https://github.com/Query-farm/vgi-python
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
vgi/__init__.py,sha256=8uLMNQcNzWjp8VzYtj2u98_Wp8WpB8c_dKlMv67TH0g,5384
|
|
2
2
|
vgi/_duckdb.py,sha256=YB5D7N3Bwg_xP6X8a5QlumtlAovSej1A1Go5XlNGVko,2162
|
|
3
3
|
vgi/_storage_profile.py,sha256=VkTsXojuE0tHEzurmteQSAiL1vI3CZSgYkL6D_h8GvE,5061
|
|
4
|
-
vgi/aggregate_function.py,sha256=
|
|
4
|
+
vgi/aggregate_function.py,sha256=NYxudbvQ9ZLkP2w5hRdd4YgsGUZ_0cVfqqXnlmJPfls,27389
|
|
5
5
|
vgi/argument_spec.py,sha256=SADH97VlFu3asI8CWZ_I7XTuSxwqFciFgdupdAf-tkY,34231
|
|
6
6
|
vgi/arguments.py,sha256=ncnC1CS7KN-2rDjSw9vdf1uHqV5ozebet_eZtcq_ujw,72300
|
|
7
7
|
vgi/attach_header.py,sha256=sxpzCOVa5fl_-kQSCZgeUxS5I9Kuv8VCUjAOF5s1pr0,3782
|
|
@@ -22,7 +22,7 @@ vgi/meta_worker.py,sha256=WggIKvDAlahSrBPaVM7ZqVWk3Xc3JNE70EgeoXdy-3w,31725
|
|
|
22
22
|
vgi/metadata.py,sha256=M8KZObX1wwCr2lPjgDL0-79gPbeM_NSOIqYCIAAck5M,74719
|
|
23
23
|
vgi/otel.py,sha256=JlUDnk2c0UXSo_j1PJdS67Y--t55sXPg054ADuvHANc,15452
|
|
24
24
|
vgi/profiling.py,sha256=rK7vij3oHhXC3JHI2BsMySsXh7_hrXi0aXpCW8iFSIc,3671
|
|
25
|
-
vgi/protocol.py,sha256=
|
|
25
|
+
vgi/protocol.py,sha256=8exFFAV4Zo1ltEPVtoWhJdlOG3TcdqxkmtwOv1mRLNs,170570
|
|
26
26
|
vgi/protocol_version.txt,sha256=wo_MpTY3vIjhJK8XJd8Ty5jGne3v1i-zzb4c22t2BiQ,6
|
|
27
27
|
vgi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
28
|
vgi/scalar_function.py,sha256=YBy5s4eEBYTMjACGPE-8-82BObyJoM9qt9cnm24b_RQ,53485
|
|
@@ -110,7 +110,7 @@ vgi/_test_fixtures/table/same_name_cached.py,sha256=JMXSXTcqyO7XwWqIizgddlTvLYuU
|
|
|
110
110
|
vgi/_test_fixtures/table/same_name_schemas.py,sha256=yRti9HXO3-Y9ahiLIHoaZ31LvWjtPSbjxmPJyoQ_0mQ,4930
|
|
111
111
|
vgi/_test_fixtures/table/sequence.py,sha256=0kOckCwRu19RMKgFrUcnnnDR8e0utjX_E2kD3w6NnRU,26352
|
|
112
112
|
vgi/_test_fixtures/table/settings.py,sha256=C4J5OKY3vgNbB09QAiQlzwhI3Tc5wtewHHLFhO5xvo4,16689
|
|
113
|
-
vgi/_test_fixtures/table/splits.py,sha256=
|
|
113
|
+
vgi/_test_fixtures/table/splits.py,sha256=CNPj98k1G-gqh-orppzHkUSUh2x058HgZAIjCyRoxjM,48549
|
|
114
114
|
vgi/_test_fixtures/table/transaction_storage.py,sha256=cGSaM25cE6brwbUJ0-mchocX0UfwOb7uscCATKLYeME,6086
|
|
115
115
|
vgi/_test_fixtures/table/tt_pushdown.py,sha256=jMELJ2HkG5-yIuYqKRYaPSouJxs3N-tiWRPthoPZ9ko,7420
|
|
116
116
|
vgi/_test_fixtures/table/typed_probe.py,sha256=JjgLeHuhkXAVnCcezgqR7ayXMp3tTTixegftCwjKOSY,5122
|
|
@@ -130,7 +130,7 @@ vgi/catalog/secret_type.py,sha256=1DoEMyQun9K5z53817rUuhG1YpHSEAsazEmubkRLVL0,37
|
|
|
130
130
|
vgi/catalog/setting.py,sha256=06QfgaAR-0BKflIJ0du6PGqA5BPMdrkwr6u7f4nddII,1846
|
|
131
131
|
vgi/catalog/storage.py,sha256=DhngzywbhQUfLF7NjFyiPp4Sw2ovOhcUXAuW3rkBQD8,11935
|
|
132
132
|
vgi/client/__init__.py,sha256=mFLHTWI4DjWz_Yp0dE9k5U_PtrRGTe2Az0GJELMwwMc,2467
|
|
133
|
-
vgi/client/aggregate.py,sha256=
|
|
133
|
+
vgi/client/aggregate.py,sha256=EAaI-4d1mnNjGORZvLf3wfVuu8RXBTFGVbMek0DeGDg,38482
|
|
134
134
|
vgi/client/catalog_mixin.py,sha256=uh-UCdrROyyc3JiwzHI1q3fSHWmiECsCuLzM7VzOCfc,58652
|
|
135
135
|
vgi/client/cli.py,sha256=nahuRCjday0z74Gk9zxOxIOJX9n6fHrP7-CGwJoyTzU,22754
|
|
136
136
|
vgi/client/cli_catalog.py,sha256=twjlhHGl7n2mNN4jc7DnDRQr-Zj9KLAF2eATIQnITHQ,5577
|
|
@@ -152,8 +152,8 @@ vgi/transactor/_duckdb_compat.py,sha256=sXVZ9JLKAQyGR1BjWczSwdQEavtr-TcZPoVZZnTr
|
|
|
152
152
|
vgi/transactor/client.py,sha256=7DTeMksogsw6ANjQjGOPpKYrV76rg4_kGjktMJf54jg,4486
|
|
153
153
|
vgi/transactor/protocol.py,sha256=v59IvrKnuvwOXvn_HEcBAbCzDVcx0akgKN0R1mChXg0,5034
|
|
154
154
|
vgi/transactor/server.py,sha256=nzsZQxJZdgappdYX8okrFIrjFtUbdM_Hhskl1fZ2nDY,32553
|
|
155
|
-
vgi_python-0.36.
|
|
156
|
-
vgi_python-0.36.
|
|
157
|
-
vgi_python-0.36.
|
|
158
|
-
vgi_python-0.36.
|
|
159
|
-
vgi_python-0.36.
|
|
155
|
+
vgi_python-0.36.1.dist-info/METADATA,sha256=KiNZHizy9p1n8zOX0mFjOPot5qz_HCfD-qmipkpSBdc,25617
|
|
156
|
+
vgi_python-0.36.1.dist-info/WHEEL,sha256=THafob7ofN-NsuMN7Mg4qZyHaQI7KkD-QlcQatYhXPo,87
|
|
157
|
+
vgi_python-0.36.1.dist-info/entry_points.txt,sha256=3Kz1vgodw3pOL_xjtSyDB55-ZRy-U2X-X_Bdr582x0Q,165
|
|
158
|
+
vgi_python-0.36.1.dist-info/licenses/LICENSE,sha256=pbJb4zZasP6n5ifEV81wFu017TarjydaYVmGbHcehtY,6103
|
|
159
|
+
vgi_python-0.36.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|