vastdb 2.0.0__tar.gz → 2.0.2__tar.gz

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.
Files changed (230) hide show
  1. {vastdb-2.0.0 → vastdb-2.0.2}/CHANGELOG.md +14 -1
  2. {vastdb-2.0.0 → vastdb-2.0.2}/PKG-INFO +1 -1
  3. {vastdb-2.0.0 → vastdb-2.0.2}/setup.py +1 -1
  4. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/_internal.py +35 -9
  5. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/table.py +4 -4
  6. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/tests/test_projections.py +49 -1
  7. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb.egg-info/PKG-INFO +1 -1
  8. {vastdb-2.0.0 → vastdb-2.0.2}/CONTRIBUTING.md +0 -0
  9. {vastdb-2.0.0 → vastdb-2.0.2}/LICENSE +0 -0
  10. {vastdb-2.0.0 → vastdb-2.0.2}/MANIFEST.in +0 -0
  11. {vastdb-2.0.0 → vastdb-2.0.2}/README.md +0 -0
  12. {vastdb-2.0.0 → vastdb-2.0.2}/requirements.txt +0 -0
  13. {vastdb-2.0.0 → vastdb-2.0.2}/setup.cfg +0 -0
  14. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/__init__.py +0 -0
  15. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/_ibis_support.py +0 -0
  16. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/_table_interface.py +0 -0
  17. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/__init__.py +0 -0
  18. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/__init__.py +0 -0
  19. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/bench_repo/__init__.py +0 -0
  20. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/bench_repo/mega_combo.py +0 -0
  21. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/cli.py +0 -0
  22. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/common/__init__.py +0 -0
  23. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/common/constants.py +0 -0
  24. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/common/log_utils.py +0 -0
  25. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/common/types.py +0 -0
  26. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/common/utils.py +0 -0
  27. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/dataset/__init__.py +0 -0
  28. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/dataset/generate_secmaster.py +0 -0
  29. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/dataset/generate_stocks_dataset.py +0 -0
  30. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/dataset/schemas.py +0 -0
  31. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/dataset/secmaster.py +0 -0
  32. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/orchestrate/__init__.py +0 -0
  33. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/orchestrate/bench_spec.py +0 -0
  34. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/orchestrate/results_helpers.py +0 -0
  35. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/orchestrate/scenario.py +0 -0
  36. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/orchestrate/scenario_generator.py +0 -0
  37. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/query/__init__.py +0 -0
  38. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/query/arrow_common.py +0 -0
  39. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/query/query.py +0 -0
  40. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/query/query_pyarrow.py +0 -0
  41. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/query/query_vastdb.py +0 -0
  42. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/perf_bench/run.py +0 -0
  43. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/test_perf.py +0 -0
  44. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bench/test_sample.py +0 -0
  45. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/bucket.py +0 -0
  46. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/config.py +0 -0
  47. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/conftest.py +0 -0
  48. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/errors.py +0 -0
  49. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/features.py +0 -0
  50. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/schema.py +0 -0
  51. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/session.py +0 -0
  52. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/table_metadata.py +0 -0
  53. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/tests/__init__.py +0 -0
  54. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/tests/metrics.py +0 -0
  55. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/tests/test_duckdb.py +0 -0
  56. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/tests/test_fixed_list.py +0 -0
  57. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/tests/test_imports.py +0 -0
  58. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/tests/test_nested.py +0 -0
  59. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/tests/test_sanity.py +0 -0
  60. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/tests/test_schemas.py +0 -0
  61. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/tests/test_table_in_tx.py +0 -0
  62. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/tests/test_tables.py +0 -0
  63. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/tests/test_util.py +0 -0
  64. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/tests/util.py +0 -0
  65. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/transaction.py +0 -0
  66. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/util.py +0 -0
  67. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/__init__.py +0 -0
  68. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/__init__.py +0 -0
  69. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/__init__.py +0 -0
  70. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/__init__.py +0 -0
  71. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/__init__.py +0 -0
  72. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Aggregate.py +0 -0
  73. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ArraySlice.py +0 -0
  74. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ArraySubscript.py +0 -0
  75. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/BinaryLiteral.py +0 -0
  76. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/BooleanLiteral.py +0 -0
  77. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Bound.py +0 -0
  78. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Call.py +0 -0
  79. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/CaseFragment.py +0 -0
  80. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Cast.py +0 -0
  81. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ConcreteBoundImpl.py +0 -0
  82. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ConditionalCase.py +0 -0
  83. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/CurrentRow.py +0 -0
  84. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/DateLiteral.py +0 -0
  85. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/DecimalLiteral.py +0 -0
  86. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Deref.py +0 -0
  87. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/DurationLiteral.py +0 -0
  88. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Expression.py +0 -0
  89. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ExpressionImpl.py +0 -0
  90. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/FieldIndex.py +0 -0
  91. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/FieldRef.py +0 -0
  92. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Filter.py +0 -0
  93. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/FixedSizeBinaryLiteral.py +0 -0
  94. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Float16Literal.py +0 -0
  95. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Float32Literal.py +0 -0
  96. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Float64Literal.py +0 -0
  97. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Following.py +0 -0
  98. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Frame.py +0 -0
  99. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Grouping.py +0 -0
  100. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int16Literal.py +0 -0
  101. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int32Literal.py +0 -0
  102. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int64Literal.py +0 -0
  103. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int8Literal.py +0 -0
  104. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteral.py +0 -0
  105. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteralDaysMilliseconds.py +0 -0
  106. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteralImpl.py +0 -0
  107. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteralMonths.py +0 -0
  108. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Join.py +0 -0
  109. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/JoinKind.py +0 -0
  110. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/KeyValue.py +0 -0
  111. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Limit.py +0 -0
  112. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ListLiteral.py +0 -0
  113. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Literal.py +0 -0
  114. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/LiteralColumn.py +0 -0
  115. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/LiteralImpl.py +0 -0
  116. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/LiteralRelation.py +0 -0
  117. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/MapKey.py +0 -0
  118. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/MapLiteral.py +0 -0
  119. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/OrderBy.py +0 -0
  120. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Ordering.py +0 -0
  121. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Plan.py +0 -0
  122. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Preceding.py +0 -0
  123. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Project.py +0 -0
  124. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/RelId.py +0 -0
  125. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Relation.py +0 -0
  126. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/RelationImpl.py +0 -0
  127. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SetOpKind.py +0 -0
  128. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SetOperation.py +0 -0
  129. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SimpleCase.py +0 -0
  130. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SortKey.py +0 -0
  131. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Source.py +0 -0
  132. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/StringLiteral.py +0 -0
  133. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/StructField.py +0 -0
  134. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/StructLiteral.py +0 -0
  135. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/TimeLiteral.py +0 -0
  136. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/TimestampLiteral.py +0 -0
  137. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt16Literal.py +0 -0
  138. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt32Literal.py +0 -0
  139. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt64Literal.py +0 -0
  140. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt8Literal.py +0 -0
  141. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Unbounded.py +0 -0
  142. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/WindowCall.py +0 -0
  143. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/__init__.py +0 -0
  144. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Binary.py +0 -0
  145. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Block.py +0 -0
  146. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/BodyCompression.py +0 -0
  147. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/BodyCompressionMethod.py +0 -0
  148. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Bool.py +0 -0
  149. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Buffer.py +0 -0
  150. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/CompressionType.py +0 -0
  151. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Date.py +0 -0
  152. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/DateUnit.py +0 -0
  153. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Decimal.py +0 -0
  154. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/DictionaryBatch.py +0 -0
  155. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/DictionaryEncoding.py +0 -0
  156. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/DictionaryKind.py +0 -0
  157. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Duration.py +0 -0
  158. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Endianness.py +0 -0
  159. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Feature.py +0 -0
  160. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Field.py +0 -0
  161. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/FieldNode.py +0 -0
  162. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/FixedSizeBinary.py +0 -0
  163. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/FixedSizeList.py +0 -0
  164. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/FloatingPoint.py +0 -0
  165. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Footer.py +0 -0
  166. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Int.py +0 -0
  167. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Interval.py +0 -0
  168. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/IntervalUnit.py +0 -0
  169. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/KeyValue.py +0 -0
  170. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/LargeBinary.py +0 -0
  171. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/LargeList.py +0 -0
  172. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/LargeUtf8.py +0 -0
  173. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/List.py +0 -0
  174. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Map.py +0 -0
  175. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Message.py +0 -0
  176. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/MessageHeader.py +0 -0
  177. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/MetadataVersion.py +0 -0
  178. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Null.py +0 -0
  179. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Precision.py +0 -0
  180. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/RecordBatch.py +0 -0
  181. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Schema.py +0 -0
  182. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/SparseMatrixCompressedAxis.py +0 -0
  183. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/SparseMatrixIndexCSX.py +0 -0
  184. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensor.py +0 -0
  185. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensorIndex.py +0 -0
  186. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensorIndexCOO.py +0 -0
  187. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensorIndexCSF.py +0 -0
  188. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Struct_.py +0 -0
  189. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Tensor.py +0 -0
  190. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/TensorDim.py +0 -0
  191. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Time.py +0 -0
  192. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/TimeUnit.py +0 -0
  193. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Timestamp.py +0 -0
  194. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Type.py +0 -0
  195. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Union.py +0 -0
  196. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/UnionMode.py +0 -0
  197. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Utf8.py +0 -0
  198. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/__init__.py +0 -0
  199. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/AlterColumnRequest.py +0 -0
  200. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/AlterProjectionTableRequest.py +0 -0
  201. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/AlterSchemaRequest.py +0 -0
  202. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/AlterTableRequest.py +0 -0
  203. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/Column.py +0 -0
  204. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/ColumnDetails.py +0 -0
  205. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/ColumnType.py +0 -0
  206. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/CreateProjectionRequest.py +0 -0
  207. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/CreateSchemaRequest.py +0 -0
  208. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/CreateViewRequest.py +0 -0
  209. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/FilterString.py +0 -0
  210. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/GetProjectionTableStatsResponse.py +0 -0
  211. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/GetRowColumnSecurityResponse.py +0 -0
  212. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/GetTableStatsResponse.py +0 -0
  213. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/ImportDataRequest.py +0 -0
  214. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/KeyName.py +0 -0
  215. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/ListProjectionsResponse.py +0 -0
  216. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/ListSchemasResponse.py +0 -0
  217. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/ListTablesResponse.py +0 -0
  218. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/ListViewsResponse.py +0 -0
  219. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/NameString.py +0 -0
  220. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/ObjectDetails.py +0 -0
  221. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/S3File.py +0 -0
  222. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/VipRange.py +0 -0
  223. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_flatbuf/tabular/__init__.py +0 -0
  224. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_tests/__init__.py +0 -0
  225. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_tests/test_ha.py +0 -0
  226. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb/vast_tests/test_scale.py +0 -0
  227. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb.egg-info/SOURCES.txt +0 -0
  228. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb.egg-info/dependency_links.txt +0 -0
  229. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb.egg-info/requires.txt +0 -0
  230. {vastdb-2.0.0 → vastdb-2.0.2}/vastdb.egg-info/top_level.txt +0 -0
@@ -4,7 +4,20 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
6
6
 
7
+ ## [2.0.2] (2025-10-22)
8
+ [2.0.2]: https://github.com/vast-data/vastdb_sdk/compare/v2.0.1...v2.0.2
9
+
10
+ ### Fixed
11
+ - Get correct rows count and size in bytes when asking for a table projections
12
+
13
+ ## [2.0.1] (2025-10-22)
14
+ [2.0.1]: https://github.com/vast-data/vastdb_sdk/compare/v2.0.0...v2.0.1
15
+
16
+ ### Fixed
17
+ - Performance improvement in query data flow - sending only required columns instead of entire schema
18
+
7
19
  ## [2.0.0] (2025-09-17)
20
+ [2.0.0]: https://github.com/vast-data/vastdb_sdk/compare/v1.4.0...v2.0.0
8
21
 
9
22
  ### BREAKING CHANGE
10
23
  - Removed properties `Table.bucket` and `Table.schema`
@@ -31,7 +44,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
31
44
  ### Added
32
45
  - Support Tables with FixedSizeListArray of Numerics
33
46
 
34
- ## Fixed
47
+ ### Fixed
35
48
  - Table insert with no rows
36
49
  - Boolean predicates
37
50
  - List tables with pagination
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vastdb
3
- Version: 2.0.0
3
+ Version: 2.0.2
4
4
  Summary: VAST Data SDK
5
5
  Home-page: https://github.com/vast-data/vastdb_sdk
6
6
  Author: VAST DATA
@@ -29,7 +29,7 @@ setup(
29
29
  name='vastdb',
30
30
  python_requires='>=3.10.0',
31
31
  description='VAST Data SDK',
32
- version='2.0.0' + suffix,
32
+ version='2.0.2' + suffix,
33
33
  url='https://github.com/vast-data/vastdb_sdk',
34
34
  author='VAST DATA',
35
35
  author_email='hello@vastdata.com',
@@ -17,6 +17,7 @@ import requests
17
17
  import urllib3
18
18
  import xmltodict
19
19
  from aws_requests_auth.aws_auth import AWSRequestsAuth
20
+ from ibis.expr.operations import Field, Node
20
21
  from ibis.expr.operations.generic import (
21
22
  IsNull,
22
23
  Literal,
@@ -34,7 +35,6 @@ from ibis.expr.operations.logical import (
34
35
  NotEquals,
35
36
  Or,
36
37
  )
37
- from ibis.expr.operations.relations import Field
38
38
  from ibis.expr.operations.strings import StartsWith, StringContains
39
39
  from ibis.expr.operations.structs import StructField
40
40
 
@@ -2350,9 +2350,36 @@ def get_response_schema(schema: 'pa.Schema' = pa.schema([]), field_names: Option
2350
2350
  return pa.schema([schema.field(name) for name in field_names])
2351
2351
 
2352
2352
 
2353
- def build_query_data_request(schema: 'pa.Schema' = pa.schema([]),
2353
+ def _column_names_in_node_tree(expr: ibis.expr.types.Expr) -> set[str]:
2354
+ def walk_op(op: Node):
2355
+ if isinstance(op, Field):
2356
+ names.add(op.name)
2357
+ elif isinstance(op, (list, tuple)):
2358
+ for item in op:
2359
+ walk_op(item)
2360
+ else:
2361
+ for arg in getattr(op, "args", ()):
2362
+ walk_op(arg)
2363
+
2364
+ names: set[str] = set()
2365
+ walk_op(expr.op())
2366
+ return names
2367
+
2368
+
2369
+ def build_query_data_request(schema: pa.Schema,
2354
2370
  predicate: ibis.expr.types.BooleanColumn = None,
2355
- field_names: Optional[List[str]] = None) -> QueryDataRequest:
2371
+ field_names: Optional[list[str]] = None) -> QueryDataRequest:
2372
+ if field_names is None:
2373
+ queried_columns = [f.name for f in schema]
2374
+ else:
2375
+ # apparently there are some tests that send a tuple despite the signature asking for a list
2376
+ queried_columns = list(field_names)
2377
+
2378
+ column_names_in_predicate = set() if predicate is None else _column_names_in_node_tree(predicate)
2379
+ column_names_required_by_predicate = column_names_in_predicate - set(queried_columns)
2380
+ queried_columns.extend(column_names_required_by_predicate)
2381
+ schema = pa.schema((schema.field(name) for name in queried_columns))
2382
+
2356
2383
  builder = flatbuffers.Builder(1024)
2357
2384
 
2358
2385
  source_name = builder.CreateString('') # required
@@ -2374,18 +2401,17 @@ def build_query_data_request(schema: 'pa.Schema' = pa.schema([]),
2374
2401
  parser = QueryDataParser(schema)
2375
2402
  leaves_map = {node.field.name: [leaf.index for leaf in node._iter_leaves()] for node in parser.nodes}
2376
2403
 
2377
- response_schema = get_response_schema(schema, field_names)
2378
- field_names = [field.name for field in response_schema]
2379
-
2380
2404
  projection_fields = []
2381
- for field_name in field_names:
2405
+ for field in schema:
2382
2406
  # TODO: only root-level projection pushdown is supported (i.e. no support for SELECT s.x FROM t)
2383
- positions = leaves_map[field_name]
2407
+ positions = leaves_map[field.name]
2408
+
2384
2409
  for leaf_position in positions:
2385
2410
  fb_field_index.Start(builder)
2386
2411
  fb_field_index.AddPosition(builder, leaf_position)
2387
2412
  offset = fb_field_index.End(builder)
2388
2413
  projection_fields.append(offset)
2414
+
2389
2415
  fb_source.StartProjectionVector(builder, len(projection_fields))
2390
2416
  for offset in reversed(projection_fields):
2391
2417
  builder.PrependUOffsetTRelative(offset)
@@ -2405,4 +2431,4 @@ def build_query_data_request(schema: 'pa.Schema' = pa.schema([]),
2405
2431
 
2406
2432
  builder.Finish(relation)
2407
2433
 
2408
- return QueryDataRequest(serialized=builder.Output(), response_schema=response_schema, response_parser=QueryDataParser(response_schema))
2434
+ return QueryDataRequest(serialized=builder.Output(), response_schema=schema, response_parser=QueryDataParser(schema))
@@ -231,11 +231,11 @@ class TableInTransaction(ITable):
231
231
  raise errors.NotSupportedCommand(
232
232
  self.ref.bucket, self.ref.schema, self.ref.table)
233
233
 
234
- def projection(self, name: str) -> "Projection":
234
+ def projection(self, name: str, include_stats: bool = True) -> "Projection":
235
235
  """Get a specific semi-sorted projection of this table."""
236
236
  self._assert_not_imports_table()
237
237
 
238
- projs = tuple(self.projections(projection_name=name))
238
+ projs = tuple(self.projections(projection_name=name, include_stats=include_stats))
239
239
  if not projs:
240
240
  raise errors.MissingProjection(
241
241
  self.ref.bucket, self.ref.schema, self.ref.table, name)
@@ -245,7 +245,7 @@ class TableInTransaction(ITable):
245
245
  log.debug("Found projection: %s", projs[0])
246
246
  return projs[0]
247
247
 
248
- def projections(self, projection_name: str = "") -> Iterable["Projection"]:
248
+ def projections(self, projection_name: str = "", include_stats: bool = True) -> Iterable["Projection"]:
249
249
  """List all semi-sorted projections of this table if `projection_name` is empty.
250
250
 
251
251
  Otherwise, list only the specific projection (if exists).
@@ -260,7 +260,7 @@ class TableInTransaction(ITable):
260
260
  _bucket_name, _schema_name, _table_name, curr_projections, next_key, is_truncated, _ = \
261
261
  self._tx._rpc.api.list_projections(
262
262
  bucket=self.ref.bucket, schema=self.ref.schema, table=self.ref.table, next_key=next_key, txid=self._tx.active_txid,
263
- exact_match=exact_match, name_prefix=name_prefix)
263
+ exact_match=exact_match, name_prefix=name_prefix, include_list_stats=include_stats)
264
264
  if not curr_projections:
265
265
  break
266
266
  projections.extend(curr_projections)
@@ -8,6 +8,9 @@ from vastdb.table import QueryConfig
8
8
  log = logging.getLogger(__name__)
9
9
 
10
10
 
11
+ DELAY_TO_LET_SERVER_UPDATE: int = 3
12
+
13
+
11
14
  def test_basic_projections(session, clean_bucket_name):
12
15
  with session.transaction() as tx:
13
16
  s = tx.bucket(clean_bucket_name).create_schema('s1')
@@ -94,7 +97,7 @@ def test_query_data_with_projection(session, clean_bucket_name):
94
97
  actual = pa.Table.from_batches(t.select(columns=['a', 'b', 's']))
95
98
  assert actual == expected
96
99
 
97
- time.sleep(3)
100
+ time.sleep(DELAY_TO_LET_SERVER_UPDATE)
98
101
 
99
102
  with session.transaction() as tx:
100
103
  config = QueryConfig()
@@ -123,3 +126,48 @@ def test_query_data_with_projection(session, clean_bucket_name):
123
126
 
124
127
  t.drop()
125
128
  s.drop()
129
+
130
+
131
+ def test_projection_stats(session, clean_bucket_name):
132
+ columns = pa.schema([
133
+ ('a', pa.int64()),
134
+ ('b', pa.int64()),
135
+ ])
136
+
137
+ # min size to be considered as a projection
138
+ GROUP_SIZE = 64 * 1024
139
+ expected = pa.table(schema=columns, data=[
140
+ [i for i in range(GROUP_SIZE)],
141
+ [i for i in reversed(range(GROUP_SIZE))],
142
+ ])
143
+
144
+ schema_name = "schema"
145
+ table_name = "table"
146
+ with session.transaction() as tx:
147
+ s = tx.bucket(clean_bucket_name).create_schema(schema_name)
148
+ t = s.create_table(table_name, expected.schema)
149
+
150
+ sorted_columns = ['b']
151
+ unsorted_columns = ['a']
152
+ t.create_projection('p1', sorted_columns, unsorted_columns)
153
+
154
+ with session.transaction() as tx:
155
+ s = tx.bucket(clean_bucket_name).schema(schema_name)
156
+ t = s.table(table_name)
157
+ t.insert(expected)
158
+ actual = pa.Table.from_batches(t.select(columns=['a', 'b']))
159
+ assert actual == expected
160
+
161
+ time.sleep(DELAY_TO_LET_SERVER_UPDATE)
162
+
163
+ with session.transaction() as tx:
164
+ s = tx.bucket(clean_bucket_name).schema(schema_name)
165
+ t = s.table(table_name)
166
+ projections = t.projections()
167
+ assert len(projections) == 1
168
+ stats = projections[0].stats
169
+ assert stats.num_rows == GROUP_SIZE
170
+ assert stats.size_in_bytes > 0
171
+
172
+ t.drop()
173
+ s.drop()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vastdb
3
- Version: 2.0.0
3
+ Version: 2.0.2
4
4
  Summary: VAST Data SDK
5
5
  Home-page: https://github.com/vast-data/vastdb_sdk
6
6
  Author: VAST DATA
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes