vastdb 1.3.9__tar.gz → 1.3.10__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 (228) hide show
  1. {vastdb-1.3.9 → vastdb-1.3.10}/CHANGELOG.md +12 -0
  2. {vastdb-1.3.9 → vastdb-1.3.10}/PKG-INFO +1 -1
  3. {vastdb-1.3.9 → vastdb-1.3.10}/README.md +9 -5
  4. {vastdb-1.3.9 → vastdb-1.3.10}/setup.py +1 -1
  5. vastdb-1.3.10/vastdb/bench/test_perf.py +87 -0
  6. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/features.py +5 -1
  7. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/table.py +19 -6
  8. vastdb-1.3.10/vastdb/tests/test_imports.py +517 -0
  9. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/tests/test_tables.py +25 -2
  10. vastdb-1.3.10/vastdb/tests/util.py +38 -0
  11. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb.egg-info/PKG-INFO +1 -1
  12. vastdb-1.3.9/vastdb/bench/test_perf.py +0 -28
  13. vastdb-1.3.9/vastdb/tests/test_imports.py +0 -204
  14. vastdb-1.3.9/vastdb/tests/util.py +0 -17
  15. {vastdb-1.3.9 → vastdb-1.3.10}/CONTRIBUTING.md +0 -0
  16. {vastdb-1.3.9 → vastdb-1.3.10}/LICENSE +0 -0
  17. {vastdb-1.3.9 → vastdb-1.3.10}/MANIFEST.in +0 -0
  18. {vastdb-1.3.9 → vastdb-1.3.10}/requirements.txt +0 -0
  19. {vastdb-1.3.9 → vastdb-1.3.10}/setup.cfg +0 -0
  20. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/__init__.py +0 -0
  21. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/_internal.py +0 -0
  22. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/__init__.py +0 -0
  23. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/__init__.py +0 -0
  24. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/bench_repo/__init__.py +0 -0
  25. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/bench_repo/mega_combo.py +0 -0
  26. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/cli.py +0 -0
  27. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/common/__init__.py +0 -0
  28. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/common/constants.py +0 -0
  29. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/common/log_utils.py +0 -0
  30. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/common/types.py +0 -0
  31. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/common/utils.py +0 -0
  32. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/dataset/__init__.py +0 -0
  33. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/dataset/generate_secmaster.py +0 -0
  34. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/dataset/generate_stocks_dataset.py +0 -0
  35. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/dataset/schemas.py +0 -0
  36. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/dataset/secmaster.py +0 -0
  37. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/orchestrate/__init__.py +0 -0
  38. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/orchestrate/bench_spec.py +0 -0
  39. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/orchestrate/results_helpers.py +0 -0
  40. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/orchestrate/scenario.py +0 -0
  41. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/orchestrate/scenario_generator.py +0 -0
  42. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/query/__init__.py +0 -0
  43. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/query/arrow_common.py +0 -0
  44. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/query/query.py +0 -0
  45. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/query/query_pyarrow.py +0 -0
  46. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/query/query_vastdb.py +0 -0
  47. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/perf_bench/run.py +0 -0
  48. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bench/test_sample.py +0 -0
  49. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/bucket.py +0 -0
  50. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/config.py +0 -0
  51. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/conftest.py +0 -0
  52. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/errors.py +0 -0
  53. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/schema.py +0 -0
  54. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/session.py +0 -0
  55. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/tests/__init__.py +0 -0
  56. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/tests/metrics.py +0 -0
  57. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/tests/test_duckdb.py +0 -0
  58. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/tests/test_nested.py +0 -0
  59. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/tests/test_projections.py +0 -0
  60. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/tests/test_sanity.py +0 -0
  61. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/tests/test_schemas.py +0 -0
  62. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/tests/test_util.py +0 -0
  63. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/transaction.py +0 -0
  64. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/util.py +0 -0
  65. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/__init__.py +0 -0
  66. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/__init__.py +0 -0
  67. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/__init__.py +0 -0
  68. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/__init__.py +0 -0
  69. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/__init__.py +0 -0
  70. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Aggregate.py +0 -0
  71. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ArraySlice.py +0 -0
  72. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ArraySubscript.py +0 -0
  73. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/BinaryLiteral.py +0 -0
  74. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/BooleanLiteral.py +0 -0
  75. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Bound.py +0 -0
  76. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Call.py +0 -0
  77. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/CaseFragment.py +0 -0
  78. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Cast.py +0 -0
  79. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ConcreteBoundImpl.py +0 -0
  80. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ConditionalCase.py +0 -0
  81. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/CurrentRow.py +0 -0
  82. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/DateLiteral.py +0 -0
  83. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/DecimalLiteral.py +0 -0
  84. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Deref.py +0 -0
  85. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/DurationLiteral.py +0 -0
  86. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Expression.py +0 -0
  87. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ExpressionImpl.py +0 -0
  88. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/FieldIndex.py +0 -0
  89. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/FieldRef.py +0 -0
  90. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Filter.py +0 -0
  91. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/FixedSizeBinaryLiteral.py +0 -0
  92. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Float16Literal.py +0 -0
  93. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Float32Literal.py +0 -0
  94. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Float64Literal.py +0 -0
  95. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Following.py +0 -0
  96. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Frame.py +0 -0
  97. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Grouping.py +0 -0
  98. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int16Literal.py +0 -0
  99. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int32Literal.py +0 -0
  100. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int64Literal.py +0 -0
  101. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int8Literal.py +0 -0
  102. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteral.py +0 -0
  103. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteralDaysMilliseconds.py +0 -0
  104. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteralImpl.py +0 -0
  105. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteralMonths.py +0 -0
  106. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Join.py +0 -0
  107. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/JoinKind.py +0 -0
  108. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/KeyValue.py +0 -0
  109. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Limit.py +0 -0
  110. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ListLiteral.py +0 -0
  111. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Literal.py +0 -0
  112. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/LiteralColumn.py +0 -0
  113. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/LiteralImpl.py +0 -0
  114. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/LiteralRelation.py +0 -0
  115. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/MapKey.py +0 -0
  116. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/MapLiteral.py +0 -0
  117. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/OrderBy.py +0 -0
  118. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Ordering.py +0 -0
  119. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Plan.py +0 -0
  120. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Preceding.py +0 -0
  121. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Project.py +0 -0
  122. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/RelId.py +0 -0
  123. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Relation.py +0 -0
  124. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/RelationImpl.py +0 -0
  125. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SetOpKind.py +0 -0
  126. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SetOperation.py +0 -0
  127. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SimpleCase.py +0 -0
  128. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SortKey.py +0 -0
  129. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Source.py +0 -0
  130. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/StringLiteral.py +0 -0
  131. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/StructField.py +0 -0
  132. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/StructLiteral.py +0 -0
  133. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/TimeLiteral.py +0 -0
  134. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/TimestampLiteral.py +0 -0
  135. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt16Literal.py +0 -0
  136. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt32Literal.py +0 -0
  137. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt64Literal.py +0 -0
  138. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt8Literal.py +0 -0
  139. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Unbounded.py +0 -0
  140. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/WindowCall.py +0 -0
  141. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf/__init__.py +0 -0
  142. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Binary.py +0 -0
  143. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Block.py +0 -0
  144. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/BodyCompression.py +0 -0
  145. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/BodyCompressionMethod.py +0 -0
  146. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Bool.py +0 -0
  147. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Buffer.py +0 -0
  148. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/CompressionType.py +0 -0
  149. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Date.py +0 -0
  150. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/DateUnit.py +0 -0
  151. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Decimal.py +0 -0
  152. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/DictionaryBatch.py +0 -0
  153. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/DictionaryEncoding.py +0 -0
  154. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/DictionaryKind.py +0 -0
  155. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Duration.py +0 -0
  156. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Endianness.py +0 -0
  157. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Feature.py +0 -0
  158. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Field.py +0 -0
  159. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/FieldNode.py +0 -0
  160. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/FixedSizeBinary.py +0 -0
  161. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/FixedSizeList.py +0 -0
  162. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/FloatingPoint.py +0 -0
  163. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Footer.py +0 -0
  164. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Int.py +0 -0
  165. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Interval.py +0 -0
  166. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/IntervalUnit.py +0 -0
  167. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/KeyValue.py +0 -0
  168. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/LargeBinary.py +0 -0
  169. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/LargeList.py +0 -0
  170. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/LargeUtf8.py +0 -0
  171. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/List.py +0 -0
  172. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Map.py +0 -0
  173. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Message.py +0 -0
  174. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/MessageHeader.py +0 -0
  175. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/MetadataVersion.py +0 -0
  176. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Null.py +0 -0
  177. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Precision.py +0 -0
  178. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/RecordBatch.py +0 -0
  179. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Schema.py +0 -0
  180. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/SparseMatrixCompressedAxis.py +0 -0
  181. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/SparseMatrixIndexCSX.py +0 -0
  182. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensor.py +0 -0
  183. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensorIndex.py +0 -0
  184. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensorIndexCOO.py +0 -0
  185. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensorIndexCSF.py +0 -0
  186. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Struct_.py +0 -0
  187. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Tensor.py +0 -0
  188. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/TensorDim.py +0 -0
  189. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Time.py +0 -0
  190. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/TimeUnit.py +0 -0
  191. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Timestamp.py +0 -0
  192. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Type.py +0 -0
  193. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Union.py +0 -0
  194. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/UnionMode.py +0 -0
  195. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/Utf8.py +0 -0
  196. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/org/apache/arrow/flatbuf/__init__.py +0 -0
  197. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/AlterColumnRequest.py +0 -0
  198. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/AlterProjectionTableRequest.py +0 -0
  199. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/AlterSchemaRequest.py +0 -0
  200. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/AlterTableRequest.py +0 -0
  201. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/Column.py +0 -0
  202. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/ColumnDetails.py +0 -0
  203. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/ColumnType.py +0 -0
  204. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/CreateProjectionRequest.py +0 -0
  205. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/CreateSchemaRequest.py +0 -0
  206. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/CreateViewRequest.py +0 -0
  207. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/FilterString.py +0 -0
  208. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/GetProjectionTableStatsResponse.py +0 -0
  209. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/GetRowColumnSecurityResponse.py +0 -0
  210. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/GetTableStatsResponse.py +0 -0
  211. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/ImportDataRequest.py +0 -0
  212. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/KeyName.py +0 -0
  213. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/ListProjectionsResponse.py +0 -0
  214. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/ListSchemasResponse.py +0 -0
  215. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/ListTablesResponse.py +0 -0
  216. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/ListViewsResponse.py +0 -0
  217. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/NameString.py +0 -0
  218. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/ObjectDetails.py +0 -0
  219. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/S3File.py +0 -0
  220. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/VipRange.py +0 -0
  221. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_flatbuf/tabular/__init__.py +0 -0
  222. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_tests/__init__.py +0 -0
  223. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_tests/test_ha.py +0 -0
  224. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb/vast_tests/test_scale.py +0 -0
  225. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb.egg-info/SOURCES.txt +0 -0
  226. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb.egg-info/dependency_links.txt +0 -0
  227. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb.egg-info/requires.txt +0 -0
  228. {vastdb-1.3.9 → vastdb-1.3.10}/vastdb.egg-info/top_level.txt +0 -0
@@ -4,6 +4,18 @@ 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
+ ## [1.3.10] (2025-05-11)
8
+ [1.3.10]: https://github.com/vast-data/vastdb_sdk/compare/v1.3.9...v1.3.10
9
+
10
+ ### Added
11
+ - Support limit on query data
12
+ - Support for timestamp with timezone
13
+
14
+ ## Fixed
15
+ - Don't modify the user-passed config
16
+ - Name the feature logger
17
+
18
+
7
19
  ## [1.3.9] (2025-04-22)
8
20
  [1.3.9]: https://github.com/vast-data/vastdb_sdk/compare/v1.3.8...v1.3.9
9
21
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vastdb
3
- Version: 1.3.9
3
+ Version: 1.3.10
4
4
  Summary: VAST Data SDK
5
5
  Home-page: https://github.com/vast-data/vastdb_sdk
6
6
  Author: VAST DATA
@@ -2,14 +2,18 @@
2
2
 
3
3
  # VAST DB Python SDK
4
4
 
5
- ## Introduction
5
+ A Python SDK for seamless interaction with [VAST Database](https://vastdata.com/database) and [VAST Catalog](https://vastdata.com/blog/vast-catalog-treat-your-file-system-like-a-database). Enables powerful data operations including:
6
6
 
7
- `vastdb` is a Python-based SDK designed for interacting with a [VAST Database](https://vastdata.com/database) and the [VAST Catalog](https://vastdata.com/blog/vast-catalog-treat-your-file-system-like-a-database), enabling schema and table management, efficient ingest, query, and modification of columnar data.
8
-
9
- For more details about the VAST Database, see [this whitepaper](https://vastdata.com/whitepaper/#TheVASTDataBase).
7
+ - Schema and table management
8
+ - Efficient data ingest and querying
9
+ - Advanced filtering with predicate pushdown
10
+ - Direct integration with PyArrow and DuckDB
11
+ - File system querying through VAST Catalog
10
12
 
11
13
  [![vastdb](docs/vastdb.png)](https://vastdata.com/database)
12
14
 
15
+ For technical details about VAST Database architecture, see the [whitepaper](https://vastdata.com/whitepaper/#TheVASTDataBase).
16
+
13
17
  ## Getting Started
14
18
 
15
19
  ### Requirements
@@ -217,4 +221,4 @@ See these blog posts for more examples:
217
221
  - https://vastdata.com/blog/the-vast-catalog-in-action-part-1
218
222
  - https://vastdata.com/blog/the-vast-catalog-in-action-part-2
219
223
 
220
- See also the [full Vast DB Python SDK documentation](https://vastdb-sdk.readthedocs.io/en/v1.1.0/)
224
+ See also the [full Vast DB Python SDK documentation](https://vastdb-sdk.readthedocs.io/en/latest/)
@@ -29,7 +29,7 @@ setup(
29
29
  name='vastdb',
30
30
  python_requires='>=3.9.0',
31
31
  description='VAST Data SDK',
32
- version='1.3.9' + suffix,
32
+ version='1.3.10' + suffix,
33
33
  url='https://github.com/vast-data/vastdb_sdk',
34
34
  author='VAST DATA',
35
35
  author_email='hello@vastdata.com',
@@ -0,0 +1,87 @@
1
+ import datetime as dt
2
+ import logging
3
+ import time
4
+
5
+ import pytest
6
+
7
+ from vastdb import util
8
+ from vastdb.table import ImportConfig, QueryConfig
9
+ from vastdb.tests.util import compare_pyarrow_tables
10
+
11
+ log = logging.getLogger(__name__)
12
+
13
+
14
+ @pytest.mark.benchmark
15
+ def test_bench(session, test_bucket_name, parquets_path, crater_path):
16
+ files = [str(parquets_path / f) for f in (parquets_path.glob('**/*.pq'))]
17
+ stats = None
18
+
19
+ with session.transaction() as tx:
20
+ b = tx.bucket(test_bucket_name)
21
+ s = b.create_schema('s1')
22
+ util.create_table_from_files(s, 't1', files, config=ImportConfig(import_concurrency=8))
23
+ t2 = util.create_table_from_files(s, 't2', files, config=ImportConfig(import_concurrency=8))
24
+ # Enabling Elysium with 4 sorting keys - ts, sid, ask_open, ask_close
25
+ t2.add_sorting_key([2, 0, 3, 4])
26
+ stats = t2.get_stats()
27
+ log.info("Added sorting keys")
28
+
29
+ assert stats
30
+ # Waiting up to 2 hours for sorting to complete.
31
+ start_time = time.time()
32
+ while not stats.sorting_done:
33
+ if time.time() - start_time > 7200:
34
+ raise TimeoutError("Sorting did not complete after waiting for 2 hours.")
35
+ time.sleep(30)
36
+ with session.transaction() as tx:
37
+ table = tx.bucket(test_bucket_name).schema('s1').table('t2')
38
+ stats = table.get_stats()
39
+ log.info("Sorting completed")
40
+
41
+ queries = [
42
+ {'query_str': "select sid from {t} where sid = 10033007".format, 'columns': ['sid'],
43
+ 'predicate': lambda t: t['sid'] == 10033007},
44
+ {'query_str': "select last_trade_price from {t} where ts between "
45
+ "TIMESTAMP'2018-01-04 20:30:00' AND TIMESTAMP'2018-01-05 20:30:00'".format,
46
+ 'columns': ['last_trade_price'], 'predicate': lambda t: (t['ts'].between(
47
+ dt.datetime(2018, 1, 4, 20, 30, 00, 00), dt.datetime(2018, 1, 5, 20, 30, 00, 00)))},
48
+ {'query_str': "select ts,ask_close,ask_open from {t} where bid_qty = 684000 and ask_close > 1".format,
49
+ 'columns': ['ts', 'ask_close', 'ask_open'],
50
+ 'predicate': lambda t: ((t['bid_qty'] == 684000) & (t['ask_close'] > 1))},
51
+ {'query_str': "select ts,ticker from {t} where "
52
+ "ask_open between 4374 and 4375 OR ask_open between 380 and 381".format,
53
+ 'columns': ['ts', 'ticker'],
54
+ 'predicate': lambda t: ((t['ask_open'].between(4374, 4375)) | (t['ask_open'].between(380, 381)))},
55
+ {
56
+ 'query_str': "select trade_close, trade_high, trade_low, trade_open from {t} where ticker in ('BANR', 'KELYB')".format,
57
+ 'columns': ['trade_close', 'trade_high', 'trade_low', 'trade_open'],
58
+ 'predicate': lambda t: (t['ticker'].isin(['BANR', 'KELYB']))}
59
+ ]
60
+
61
+ log.info("Starting to run queries")
62
+ with session.transaction() as tx:
63
+ schema = tx.bucket(test_bucket_name).schema('s1')
64
+ t1 = schema.table("t1")
65
+ t2 = schema.table("t2")
66
+
67
+ config = QueryConfig(num_splits=8, num_sub_splits=4)
68
+
69
+ for q in queries:
70
+ normal_table_res, els_table_res = None, None
71
+ for table in [t1, t2]:
72
+ log.info("Starting query: %s", q['query_str'](t=table.name))
73
+ s = time.time()
74
+ res = table.select(columns=q['columns'], predicate=q['predicate'](table), config=config).read_all()
75
+ e = time.time()
76
+ if table == t1:
77
+ normal_table_res = res
78
+ else:
79
+ els_table_res = res
80
+ log.info("Query %s returned in %s seconds.", q['query_str'](t=table.name), e - s)
81
+ if crater_path:
82
+ with open(f'{crater_path}/bench_results', 'a') as f:
83
+ f.write(f"Query '{q['query_str'](t=table)}' returned in {e - s} seconds")
84
+
85
+ assert normal_table_res, f"missing result for {t1} table"
86
+ assert els_table_res, f"missing result for {t2} table"
87
+ assert compare_pyarrow_tables(normal_table_res, els_table_res)
@@ -4,7 +4,7 @@ import logging
4
4
 
5
5
  from .errors import NotSupportedVersion
6
6
 
7
- log = logging.getLogger()
7
+ log = logging.getLogger(__name__)
8
8
 
9
9
 
10
10
  class Features:
@@ -39,6 +39,10 @@ class Features:
39
39
  "Zip import requires 5.3.1+ VAST release",
40
40
  vast_version >= (5, 3, 1))
41
41
 
42
+ self.check_timezone = self._check(
43
+ "Timezone support requires 5.4+ Vast release",
44
+ vast_version >= (5, 4))
45
+
42
46
  def _check(self, msg, supported):
43
47
  log.debug("%s (current version is %s): supported=%s", msg, self.vast_version, supported)
44
48
  if not supported:
@@ -1,9 +1,11 @@
1
1
  """VAST Database table."""
2
2
 
3
3
  import concurrent.futures
4
+ import copy
4
5
  import logging
5
6
  import os
6
7
  import queue
8
+ import sys
7
9
  from dataclasses import dataclass, field
8
10
  from math import ceil
9
11
  from threading import Event
@@ -333,7 +335,8 @@ class Table:
333
335
  predicate: Union[ibis.expr.types.BooleanColumn, ibis.common.deferred.Deferred] = None,
334
336
  config: Optional[QueryConfig] = None,
335
337
  *,
336
- internal_row_id: bool = False) -> pa.RecordBatchReader:
338
+ internal_row_id: bool = False,
339
+ limit_rows: Optional[int] = None) -> pa.RecordBatchReader:
337
340
  """Execute a query over this table.
338
341
 
339
342
  To read a subset of the columns, specify their names via `columns` argument. Otherwise, all columns will be read.
@@ -342,8 +345,10 @@ class Table:
342
345
 
343
346
  Query-execution configuration options can be specified via the optional `config` argument.
344
347
  """
345
- if config is None:
346
- config = QueryConfig()
348
+ config = copy.deepcopy(config) if config else QueryConfig()
349
+
350
+ if limit_rows:
351
+ config.limit_rows_per_sub_split = limit_rows
347
352
 
348
353
  stats = None
349
354
  # Retrieve snapshots only if needed
@@ -402,7 +407,7 @@ class Table:
402
407
  for split in range(config.num_splits):
403
408
  splits_queue.put(split)
404
409
 
405
- # this queue shouldn't be large it is marely a pipe through which the results
410
+ # this queue shouldn't be large it is merely a pipe through which the results
406
411
  # are sent to the main thread. Most of the pages actually held in the
407
412
  # threads that fetch the pages.
408
413
  record_batches_queue: queue.Queue[pa.RecordBatch] = queue.Queue(maxsize=2)
@@ -458,6 +463,7 @@ class Table:
458
463
  if config.query_id:
459
464
  threads_prefix = threads_prefix + "-" + config.query_id
460
465
 
466
+ total_num_rows = limit_rows if limit_rows else sys.maxsize
461
467
  with concurrent.futures.ThreadPoolExecutor(max_workers=len(endpoints), thread_name_prefix=threads_prefix) as tp: # TODO: concurrency == enpoints is just a heuristic
462
468
  futures = [tp.submit(single_endpoint_worker, endpoint) for endpoint in endpoints]
463
469
  tasks_running = len(futures)
@@ -467,7 +473,14 @@ class Table:
467
473
 
468
474
  batch = record_batches_queue.get()
469
475
  if batch is not None:
470
- yield batch
476
+ if batch.num_rows < total_num_rows:
477
+ yield batch
478
+ total_num_rows -= batch.num_rows
479
+ else:
480
+ yield batch.slice(length=total_num_rows)
481
+ log.info("reached limit rows per query: %d - stop query", limit_rows)
482
+ stop_event.set()
483
+ break
471
484
  else:
472
485
  tasks_running -= 1
473
486
  log.debug("one worker thread finished, remaining: %d", tasks_running)
@@ -596,7 +609,7 @@ class Table:
596
609
  self.name = new_name
597
610
 
598
611
  def add_sorting_key(self, sorting_key: list) -> None:
599
- """Ads a sorting key to a table that doesn't have any."""
612
+ """Add a sorting key to a table that doesn't have any."""
600
613
  self.tx._rpc.features.check_elysium()
601
614
  self.tx._rpc.api.alter_table(
602
615
  self.bucket.name, self.schema.name, self.name, txid=self.tx.txid, sorting_key=sorting_key)