vastdb 1.3.3__py3-none-any.whl → 1.3.4__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.
vastdb/_internal.py CHANGED
@@ -58,6 +58,10 @@ import vast_flatbuf.org.apache.arrow.computeir.flatbuf.Source as fb_source
58
58
  import vast_flatbuf.org.apache.arrow.computeir.flatbuf.StringLiteral as fb_string_lit
59
59
  import vast_flatbuf.org.apache.arrow.computeir.flatbuf.TimeLiteral as fb_time_lit
60
60
  import vast_flatbuf.org.apache.arrow.computeir.flatbuf.TimestampLiteral as fb_timestamp_lit
61
+ import vast_flatbuf.org.apache.arrow.computeir.flatbuf.UInt8Literal as fb_uint8_lit
62
+ import vast_flatbuf.org.apache.arrow.computeir.flatbuf.UInt16Literal as fb_uint16_lit
63
+ import vast_flatbuf.org.apache.arrow.computeir.flatbuf.UInt32Literal as fb_uint32_lit
64
+ import vast_flatbuf.org.apache.arrow.computeir.flatbuf.UInt64Literal as fb_uint64_lit
61
65
  import vast_flatbuf.org.apache.arrow.flatbuf.Binary as fb_binary
62
66
  import vast_flatbuf.org.apache.arrow.flatbuf.Bool as fb_bool
63
67
  import vast_flatbuf.org.apache.arrow.flatbuf.Date as fb_date
@@ -341,50 +345,57 @@ class Predicate:
341
345
  fb_expression.AddImpl(self.builder, offset_call)
342
346
  return fb_expression.End(self.builder)
343
347
 
348
+ # see https://github.com/apache/arrow/blob/main/format/Schema.fbs
349
+ # https://github.com/apache/arrow/blob/apache-arrow-7.0.0/experimental/computeir/Expression.fbs
350
+ # https://github.com/apache/arrow/blob/apache-arrow-7.0.0/experimental/computeir/Literal.fbs
344
351
  def build_literal(self, field: pa.Field, value):
345
352
  literal_type: Any
346
353
 
347
- if field.type.equals(pa.int64()):
348
- literal_type = fb_int64_lit
349
- literal_impl = LiteralImpl.Int64Literal
354
+ if field.type.equals(pa.int64()) or field.type.equals(pa.uint64()):
355
+ is_signed = field.type.equals(pa.int64())
356
+ literal_type = fb_int64_lit if is_signed else fb_uint64_lit
357
+ literal_impl = LiteralImpl.Int64Literal if is_signed else LiteralImpl.UInt64Literal
350
358
 
351
359
  field_type_type = Type.Int
352
360
  fb_int.Start(self.builder)
353
361
  fb_int.AddBitWidth(self.builder, field.type.bit_width)
354
- fb_int.AddIsSigned(self.builder, True)
362
+ fb_int.AddIsSigned(self.builder, is_signed)
355
363
  field_type = fb_int.End(self.builder)
356
364
 
357
365
  value = int(value)
358
- elif field.type.equals(pa.int32()):
359
- literal_type = fb_int32_lit
360
- literal_impl = LiteralImpl.Int32Literal
366
+ elif field.type.equals(pa.int32()) or field.type.equals(pa.uint32()):
367
+ is_signed = field.type.equals(pa.int32())
368
+ literal_type = fb_int32_lit if is_signed else fb_uint32_lit
369
+ literal_impl = LiteralImpl.Int32Literal if is_signed else LiteralImpl.UInt32Literal
361
370
 
362
371
  field_type_type = Type.Int
363
372
  fb_int.Start(self.builder)
364
373
  fb_int.AddBitWidth(self.builder, field.type.bit_width)
365
- fb_int.AddIsSigned(self.builder, True)
374
+ fb_int.AddIsSigned(self.builder, is_signed)
366
375
  field_type = fb_int.End(self.builder)
367
376
 
368
377
  value = int(value)
369
- elif field.type.equals(pa.int16()):
370
- literal_type = fb_int16_lit
371
- literal_impl = LiteralImpl.Int16Literal
378
+ elif field.type.equals(pa.int16()) or field.type.equals(pa.uint16()):
379
+ is_signed = field.type.equals(pa.int16())
380
+ literal_type = fb_int16_lit if is_signed else fb_uint16_lit
381
+ literal_impl = LiteralImpl.Int16Literal if is_signed else LiteralImpl.UInt16Literal
372
382
 
373
383
  field_type_type = Type.Int
374
384
  fb_int.Start(self.builder)
375
385
  fb_int.AddBitWidth(self.builder, field.type.bit_width)
376
- fb_int.AddIsSigned(self.builder, True)
386
+ fb_int.AddIsSigned(self.builder, is_signed)
377
387
  field_type = fb_int.End(self.builder)
378
388
 
379
389
  value = int(value)
380
- elif field.type.equals(pa.int8()):
381
- literal_type = fb_int8_lit
382
- literal_impl = LiteralImpl.Int8Literal
390
+ elif field.type.equals(pa.int8()) or field.type.equals(pa.uint8()):
391
+ is_signed = field.type.equals(pa.int8())
392
+ literal_type = fb_int8_lit if is_signed else fb_uint8_lit
393
+ literal_impl = LiteralImpl.Int8Literal if is_signed else LiteralImpl.UInt8Literal
383
394
 
384
395
  field_type_type = Type.Int
385
396
  fb_int.Start(self.builder)
386
397
  fb_int.AddBitWidth(self.builder, field.type.bit_width)
387
- fb_int.AddIsSigned(self.builder, True)
398
+ fb_int.AddIsSigned(self.builder, is_signed)
388
399
  field_type = fb_int.End(self.builder)
389
400
 
390
401
  value = int(value)
vastdb/tests/metrics.py CHANGED
@@ -29,7 +29,7 @@ class Table:
29
29
  self.conn = conn
30
30
  self.name = name
31
31
  columns = ", ".join(
32
- f"{f.name} {_MAP_SQLITE_TYPES[f.type]}"
32
+ f"{f.name} {_MAP_SQLITE_TYPES[f.type]}" # type: ignore
33
33
  for f in self.fields
34
34
  )
35
35
  cmd = f"CREATE TABLE {self.name} ({columns})"
@@ -388,6 +388,33 @@ def test_types(session, clean_bucket_name):
388
388
  assert select(t['ts9'] == ts_literal) == expected.filter(pc.field('ts9') == ts_literal)
389
389
 
390
390
 
391
+ def test_unsigned_filters(session, clean_bucket_name):
392
+ columns = pa.schema([
393
+ ('a', pa.uint8()),
394
+ ('b', pa.uint16()),
395
+ ('c', pa.uint32()),
396
+ ('d', pa.uint64()),
397
+ ])
398
+
399
+ expected = pa.table(schema=columns, data=[
400
+ [1, 2, 3],
401
+ [11, 22, 33],
402
+ [111, 222, 333],
403
+ [1111, 2222, 3333],
404
+ ])
405
+
406
+ with prepare_data(session, clean_bucket_name, 's', 't', expected) as table:
407
+ def select(predicate):
408
+ return table.select(predicate=predicate).read_all()
409
+
410
+ assert select(True) == expected
411
+ for t in [table, ibis._]:
412
+ assert select(t['a'] > 2) == expected.filter(pc.field('a') > 2)
413
+ assert select(t['b'] > 22) == expected.filter(pc.field('b') > 22)
414
+ assert select(t['c'] > 222) == expected.filter(pc.field('c') > 222)
415
+ assert select(t['d'] > 2222) == expected.filter(pc.field('d') > 2222)
416
+
417
+
391
418
  def test_filters(session, clean_bucket_name):
392
419
  columns = pa.schema([
393
420
  ('a', pa.int32()),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vastdb
3
- Version: 1.3.3
3
+ Version: 1.3.4
4
4
  Summary: VAST Data SDK
5
5
  Home-page: https://github.com/vast-data/vastdb_sdk
6
6
  Author: VAST DATA
@@ -151,7 +151,7 @@ vast_flatbuf/tabular/S3File.py,sha256=KC9c2oS5-JXwTTriUVFdjOvRG0B54Cq9kviSDZY3NI
151
151
  vast_flatbuf/tabular/VipRange.py,sha256=_BJd1RRZAcK76T9vlsHzXKYVsPVaz6WTEAqStMQCAUQ,2069
152
152
  vast_flatbuf/tabular/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
153
153
  vastdb/__init__.py,sha256=J1JjKiFkKC95BHowfh9kJfQFTjRce-QMsc6zF_FfxC0,432
154
- vastdb/_internal.py,sha256=nLa2G6FwjPiirjXo4HBc3Cs6P2XH8ub1yBsy1Zxu0R8,95257
154
+ vastdb/_internal.py,sha256=asBizp21nQvYo1cE4Vs4OSH01s-5NyWZO2lb7_nP9oc,96538
155
155
  vastdb/bucket.py,sha256=5KuKhPjZOevznZqWHDVVocejvAy7dcwobPuV6BJCfPc,2544
156
156
  vastdb/config.py,sha256=1tMYtzKXerGcIUjH4tIGEvZNWvO4fviCEdcNCnELJZo,2269
157
157
  vastdb/conftest.py,sha256=X2kVveySPQYZlVBXUMoo7Oea5IsvmJzjdqq3fpH2kVw,3469
@@ -191,21 +191,21 @@ vastdb/bench/perf_bench/query/query.py,sha256=h98Ui6vUTw16LHMY0ufkLnyVO3QCR8f1cX
191
191
  vastdb/bench/perf_bench/query/query_pyarrow.py,sha256=Dj5YPUvb4dAj7RskHfJcPijJnM-rdYIAItEF2dp4jfo,2305
192
192
  vastdb/bench/perf_bench/query/query_vastdb.py,sha256=SZYem_EmsaynEftAa_VFobjSJZDAcli9BckyRS3SFvg,2810
193
193
  vastdb/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
194
- vastdb/tests/metrics.py,sha256=N6ELJUmZubhAMmUtDbisXr6TFhSDgVCTTU05gBVxHRA,1010
194
+ vastdb/tests/metrics.py,sha256=ZCSeBYFSPMG3yI0JrAHs2CrY6wFjx_5GwRTYHVAwLKA,1026
195
195
  vastdb/tests/test_duckdb.py,sha256=STw_1PwTQR8Naz6s0p6lQTV1ZTKKhe3LPBUbhqzTCu0,1880
196
196
  vastdb/tests/test_imports.py,sha256=xKub3-bisFjH0BsZM8COfiUWuMrtoOoQKprF6VQT9RI,5669
197
197
  vastdb/tests/test_nested.py,sha256=LPU6uV3Ri23dBzAEMFQqRPbqapV5LfmiHSHkhILPIY0,6332
198
198
  vastdb/tests/test_projections.py,sha256=3y1kubwVrzO-xoR0hyps7zrjOJI8niCYspaFTN16Q9w,4540
199
199
  vastdb/tests/test_sanity.py,sha256=bv1ypGDzvOgmMvGbucDYiLQu8krQLlE6NB3M__q87x8,3303
200
200
  vastdb/tests/test_schemas.py,sha256=l70YQMlx2UL1KRQhApriiG2ZM7GJF-IzWU31H3Yqn1U,3312
201
- vastdb/tests/test_tables.py,sha256=711oTcdw431zs5LAyDxvTaJqF86xYwVCo5iZxSpH58o,39184
201
+ vastdb/tests/test_tables.py,sha256=PwtUTmQdm4HDZJVq981h7RKcFDma2Loxz6FeQhQSu2Y,40101
202
202
  vastdb/tests/test_util.py,sha256=n7gvT5Wg6b6bxgqkFXkYqvFd_W1GlUdVfmPv66XYXyA,1956
203
203
  vastdb/tests/util.py,sha256=dpRJYbboDnlqL4qIdvScpp8--5fxRUBIcIYitrfcj9o,555
204
204
  vastdb/vast_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
205
205
  vastdb/vast_tests/test_ha.py,sha256=744P4G6VJ09RIkHhMQL4wlipCBJWQVMhyvUrSc4k1HQ,975
206
206
  vastdb/vast_tests/test_scale.py,sha256=5jGwOdZH6Tv5tPdZYPWoqcxOceI2jA5i2D1zNKZHER4,3958
207
- vastdb-1.3.3.dist-info/LICENSE,sha256=obffan7LYrq7hLHNrY7vHcn2pKUTBUYXMKu-VOAvDxU,11333
208
- vastdb-1.3.3.dist-info/METADATA,sha256=xqBDm4Puvz348pzEDM7b_IIs-nZDSha7Sgg0RHHh94w,1340
209
- vastdb-1.3.3.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
210
- vastdb-1.3.3.dist-info/top_level.txt,sha256=Vsj2MKtlhPg0J4so64slQtnwjhgoPmJgcG-6YcVAwVc,20
211
- vastdb-1.3.3.dist-info/RECORD,,
207
+ vastdb-1.3.4.dist-info/LICENSE,sha256=obffan7LYrq7hLHNrY7vHcn2pKUTBUYXMKu-VOAvDxU,11333
208
+ vastdb-1.3.4.dist-info/METADATA,sha256=r-TcsDB09WBgIgLC-asWybRhn4pj0geXjD2zFVzveq0,1340
209
+ vastdb-1.3.4.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
210
+ vastdb-1.3.4.dist-info/top_level.txt,sha256=Vsj2MKtlhPg0J4so64slQtnwjhgoPmJgcG-6YcVAwVc,20
211
+ vastdb-1.3.4.dist-info/RECORD,,
File without changes