vastdb 1.2.0__tar.gz → 1.3.1__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 (218) hide show
  1. {vastdb-1.2.0 → vastdb-1.3.1}/CHANGELOG.md +14 -0
  2. {vastdb-1.2.0 → vastdb-1.3.1}/PKG-INFO +1 -1
  3. {vastdb-1.2.0 → vastdb-1.3.1}/setup.py +1 -1
  4. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/_internal.py +22 -3
  5. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/tests/test_tables.py +45 -0
  6. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/tests/test_util.py +13 -0
  7. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/util.py +10 -0
  8. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/vast_tests/test_scale.py +23 -0
  9. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb.egg-info/PKG-INFO +1 -1
  10. {vastdb-1.2.0 → vastdb-1.3.1}/CONTRIBUTING.md +0 -0
  11. {vastdb-1.2.0 → vastdb-1.3.1}/LICENSE +0 -0
  12. {vastdb-1.2.0 → vastdb-1.3.1}/MANIFEST.in +0 -0
  13. {vastdb-1.2.0 → vastdb-1.3.1}/README.md +0 -0
  14. {vastdb-1.2.0 → vastdb-1.3.1}/requirements.txt +0 -0
  15. {vastdb-1.2.0 → vastdb-1.3.1}/setup.cfg +0 -0
  16. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/__init__.py +0 -0
  17. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/__init__.py +0 -0
  18. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/__init__.py +0 -0
  19. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/__init__.py +0 -0
  20. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/__init__.py +0 -0
  21. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Aggregate.py +0 -0
  22. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ArraySlice.py +0 -0
  23. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ArraySubscript.py +0 -0
  24. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/BinaryLiteral.py +0 -0
  25. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/BooleanLiteral.py +0 -0
  26. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Bound.py +0 -0
  27. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Call.py +0 -0
  28. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/CaseFragment.py +0 -0
  29. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Cast.py +0 -0
  30. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ConcreteBoundImpl.py +0 -0
  31. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ConditionalCase.py +0 -0
  32. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/CurrentRow.py +0 -0
  33. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/DateLiteral.py +0 -0
  34. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/DecimalLiteral.py +0 -0
  35. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Deref.py +0 -0
  36. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/DurationLiteral.py +0 -0
  37. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Expression.py +0 -0
  38. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ExpressionImpl.py +0 -0
  39. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/FieldIndex.py +0 -0
  40. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/FieldRef.py +0 -0
  41. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Filter.py +0 -0
  42. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/FixedSizeBinaryLiteral.py +0 -0
  43. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Float16Literal.py +0 -0
  44. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Float32Literal.py +0 -0
  45. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Float64Literal.py +0 -0
  46. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Following.py +0 -0
  47. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Frame.py +0 -0
  48. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Grouping.py +0 -0
  49. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int16Literal.py +0 -0
  50. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int32Literal.py +0 -0
  51. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int64Literal.py +0 -0
  52. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int8Literal.py +0 -0
  53. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteral.py +0 -0
  54. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteralDaysMilliseconds.py +0 -0
  55. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteralImpl.py +0 -0
  56. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteralMonths.py +0 -0
  57. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Join.py +0 -0
  58. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/JoinKind.py +0 -0
  59. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/KeyValue.py +0 -0
  60. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Limit.py +0 -0
  61. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ListLiteral.py +0 -0
  62. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Literal.py +0 -0
  63. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/LiteralColumn.py +0 -0
  64. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/LiteralImpl.py +0 -0
  65. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/LiteralRelation.py +0 -0
  66. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/MapKey.py +0 -0
  67. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/MapLiteral.py +0 -0
  68. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/OrderBy.py +0 -0
  69. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Ordering.py +0 -0
  70. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Plan.py +0 -0
  71. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Preceding.py +0 -0
  72. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Project.py +0 -0
  73. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/RelId.py +0 -0
  74. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Relation.py +0 -0
  75. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/RelationImpl.py +0 -0
  76. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SetOpKind.py +0 -0
  77. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SetOperation.py +0 -0
  78. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SimpleCase.py +0 -0
  79. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SortKey.py +0 -0
  80. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Source.py +0 -0
  81. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/StringLiteral.py +0 -0
  82. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/StructField.py +0 -0
  83. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/StructLiteral.py +0 -0
  84. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/TimeLiteral.py +0 -0
  85. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/TimestampLiteral.py +0 -0
  86. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt16Literal.py +0 -0
  87. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt32Literal.py +0 -0
  88. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt64Literal.py +0 -0
  89. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt8Literal.py +0 -0
  90. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Unbounded.py +0 -0
  91. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/WindowCall.py +0 -0
  92. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/__init__.py +0 -0
  93. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Binary.py +0 -0
  94. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Block.py +0 -0
  95. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/BodyCompression.py +0 -0
  96. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/BodyCompressionMethod.py +0 -0
  97. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Bool.py +0 -0
  98. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Buffer.py +0 -0
  99. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/CompressionType.py +0 -0
  100. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Date.py +0 -0
  101. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/DateUnit.py +0 -0
  102. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Decimal.py +0 -0
  103. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/DictionaryBatch.py +0 -0
  104. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/DictionaryEncoding.py +0 -0
  105. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/DictionaryKind.py +0 -0
  106. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Duration.py +0 -0
  107. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Endianness.py +0 -0
  108. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Feature.py +0 -0
  109. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Field.py +0 -0
  110. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/FieldNode.py +0 -0
  111. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/FixedSizeBinary.py +0 -0
  112. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/FixedSizeList.py +0 -0
  113. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/FloatingPoint.py +0 -0
  114. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Footer.py +0 -0
  115. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Int.py +0 -0
  116. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Interval.py +0 -0
  117. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/IntervalUnit.py +0 -0
  118. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/KeyValue.py +0 -0
  119. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/LargeBinary.py +0 -0
  120. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/LargeList.py +0 -0
  121. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/LargeUtf8.py +0 -0
  122. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/List.py +0 -0
  123. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Map.py +0 -0
  124. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Message.py +0 -0
  125. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/MessageHeader.py +0 -0
  126. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/MetadataVersion.py +0 -0
  127. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Null.py +0 -0
  128. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Precision.py +0 -0
  129. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/RecordBatch.py +0 -0
  130. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Schema.py +0 -0
  131. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/SparseMatrixCompressedAxis.py +0 -0
  132. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/SparseMatrixIndexCSX.py +0 -0
  133. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensor.py +0 -0
  134. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensorIndex.py +0 -0
  135. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensorIndexCOO.py +0 -0
  136. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensorIndexCSF.py +0 -0
  137. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Struct_.py +0 -0
  138. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Tensor.py +0 -0
  139. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/TensorDim.py +0 -0
  140. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Time.py +0 -0
  141. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/TimeUnit.py +0 -0
  142. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Timestamp.py +0 -0
  143. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Type.py +0 -0
  144. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Union.py +0 -0
  145. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/UnionMode.py +0 -0
  146. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/Utf8.py +0 -0
  147. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/org/apache/arrow/flatbuf/__init__.py +0 -0
  148. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/tabular/AlterColumnRequest.py +0 -0
  149. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/tabular/AlterProjectionTableRequest.py +0 -0
  150. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/tabular/AlterSchemaRequest.py +0 -0
  151. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/tabular/AlterTableRequest.py +0 -0
  152. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/tabular/Column.py +0 -0
  153. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/tabular/ColumnType.py +0 -0
  154. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/tabular/CreateProjectionRequest.py +0 -0
  155. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/tabular/CreateSchemaRequest.py +0 -0
  156. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/tabular/GetProjectionTableStatsResponse.py +0 -0
  157. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/tabular/GetTableStatsResponse.py +0 -0
  158. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/tabular/ImportDataRequest.py +0 -0
  159. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/tabular/ListProjectionsResponse.py +0 -0
  160. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/tabular/ListSchemasResponse.py +0 -0
  161. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/tabular/ListTablesResponse.py +0 -0
  162. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/tabular/ObjectDetails.py +0 -0
  163. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/tabular/S3File.py +0 -0
  164. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/tabular/VipRange.py +0 -0
  165. {vastdb-1.2.0 → vastdb-1.3.1}/vast_flatbuf/tabular/__init__.py +0 -0
  166. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/__init__.py +0 -0
  167. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/__init__.py +0 -0
  168. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/__init__.py +0 -0
  169. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/bench_repo/__init__.py +0 -0
  170. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/bench_repo/mega_combo.py +0 -0
  171. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/cli.py +0 -0
  172. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/common/__init__.py +0 -0
  173. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/common/constants.py +0 -0
  174. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/common/log_utils.py +0 -0
  175. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/common/types.py +0 -0
  176. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/common/utils.py +0 -0
  177. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/dataset/__init__.py +0 -0
  178. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/dataset/generate_secmaster.py +0 -0
  179. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/dataset/generate_stocks_dataset.py +0 -0
  180. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/dataset/schemas.py +0 -0
  181. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/dataset/secmaster.py +0 -0
  182. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/orchestrate/__init__.py +0 -0
  183. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/orchestrate/bench_spec.py +0 -0
  184. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/orchestrate/results_helpers.py +0 -0
  185. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/orchestrate/scenario.py +0 -0
  186. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/orchestrate/scenario_generator.py +0 -0
  187. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/query/__init__.py +0 -0
  188. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/query/arrow_common.py +0 -0
  189. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/query/query.py +0 -0
  190. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/query/query_pyarrow.py +0 -0
  191. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/query/query_vastdb.py +0 -0
  192. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/perf_bench/run.py +0 -0
  193. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/test_perf.py +0 -0
  194. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bench/test_sample.py +0 -0
  195. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/bucket.py +0 -0
  196. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/config.py +0 -0
  197. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/conftest.py +0 -0
  198. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/errors.py +0 -0
  199. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/features.py +0 -0
  200. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/schema.py +0 -0
  201. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/session.py +0 -0
  202. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/table.py +0 -0
  203. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/tests/__init__.py +0 -0
  204. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/tests/metrics.py +0 -0
  205. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/tests/test_duckdb.py +0 -0
  206. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/tests/test_imports.py +0 -0
  207. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/tests/test_nested.py +0 -0
  208. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/tests/test_projections.py +0 -0
  209. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/tests/test_sanity.py +0 -0
  210. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/tests/test_schemas.py +0 -0
  211. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/tests/util.py +0 -0
  212. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/transaction.py +0 -0
  213. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/vast_tests/__init__.py +0 -0
  214. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb/vast_tests/test_ha.py +0 -0
  215. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb.egg-info/SOURCES.txt +0 -0
  216. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb.egg-info/dependency_links.txt +0 -0
  217. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb.egg-info/requires.txt +0 -0
  218. {vastdb-1.2.0 → vastdb-1.3.1}/vastdb.egg-info/top_level.txt +0 -0
@@ -4,6 +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
+ ## [1.3.1] (2024-09-10)
8
+ [1.3.1]: https://github.com/vast-data/vastdb_sdk/compare/v1.3.0...v1.3.1
9
+
10
+ ### Fixed
11
+ - Retry in case `HEAD` request fails
12
+
13
+
14
+ ## [1.3.0] (2024-09-01)
15
+ [1.3.0]: https://github.com/vast-data/vastdb_sdk/compare/v1.2.0...v1.3.0
16
+
17
+ ### Added
18
+ - Support `startswith` pushdown over string columns
19
+
20
+
7
21
  ## [1.2.0] (2024-08-19)
8
22
  [1.2.0]: https://github.com/vast-data/vastdb_sdk/compare/v1.1.2...v1.2.0
9
23
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vastdb
3
- Version: 1.2.0
3
+ Version: 1.3.1
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.9.0',
31
31
  description='VAST Data SDK',
32
- version='1.2.0' + suffix,
32
+ version='1.3.1' + suffix,
33
33
  url='https://github.com/vast-data/vastdb_sdk',
34
34
  author='VAST DATA',
35
35
  author_email='hello@vastdata.com',
@@ -34,7 +34,7 @@ from ibis.expr.operations.logical import (
34
34
  Or,
35
35
  )
36
36
  from ibis.expr.operations.relations import Field
37
- from ibis.expr.operations.strings import StringContains
37
+ from ibis.expr.operations.strings import StartsWith, StringContains
38
38
  from ibis.expr.operations.structs import StructField
39
39
 
40
40
  import vast_flatbuf.org.apache.arrow.computeir.flatbuf.BinaryLiteral as fb_binary_lit
@@ -103,7 +103,7 @@ from vast_flatbuf.tabular.ListProjectionsResponse import (
103
103
  from vast_flatbuf.tabular.ListSchemasResponse import ListSchemasResponse as list_schemas
104
104
  from vast_flatbuf.tabular.ListTablesResponse import ListTablesResponse as list_tables
105
105
 
106
- from . import errors
106
+ from . import errors, util
107
107
  from .config import BackoffConfig
108
108
 
109
109
  UINT64_MAX = 18446744073709551615
@@ -168,6 +168,7 @@ class Predicate:
168
168
  IsNull: self.build_is_null,
169
169
  Not: self.build_is_not_null,
170
170
  StringContains: self.build_match_substring,
171
+ StartsWith: self.build_starts_with,
171
172
  Between: self.build_between,
172
173
  }
173
174
 
@@ -207,6 +208,14 @@ class Predicate:
207
208
  elif builder_func == self.build_between:
208
209
  column, lower, upper = inner_op.args
209
210
  literals = (None,)
211
+ elif builder_func == self.build_starts_with:
212
+ column, prefix = inner_op.args
213
+ literals = (None,)
214
+ if prefix.value:
215
+ lower_bytes, upper_bytes = util.prefix_to_range(prefix.value)
216
+ else:
217
+ # `col.starts_with('')` is equivalent to `col IS NOT NULL`
218
+ builder_func = self.build_is_not_null
210
219
  else:
211
220
  column, arg = inner_op.args
212
221
  if isinstance(arg, tuple):
@@ -249,6 +258,9 @@ class Predicate:
249
258
  if builder_func == self.build_between:
250
259
  args_offsets.append(self.build_literal(field=node.field, value=lower.value))
251
260
  args_offsets.append(self.build_literal(field=node.field, value=upper.value))
261
+ if builder_func == self.build_starts_with:
262
+ args_offsets.append(self.build_literal(field=node.field, value=lower_bytes))
263
+ args_offsets.append(self.build_literal(field=node.field, value=upper_bytes))
252
264
 
253
265
  inner_offsets.append(builder_func(*args_offsets))
254
266
 
@@ -550,6 +562,13 @@ class Predicate:
550
562
  ]
551
563
  return self.build_and(offsets)
552
564
 
565
+ def build_starts_with(self, column: int, lower: int, upper: int):
566
+ offsets = [
567
+ self.build_greater_equal(column, lower),
568
+ self.build_less(column, upper),
569
+ ]
570
+ return self.build_and(offsets)
571
+
553
572
 
554
573
  class FieldNodesState:
555
574
  def __init__(self) -> None:
@@ -847,7 +866,7 @@ class VastdbApi:
847
866
  res = self._session.request(method=method, url=url, timeout=self.timeout, **kwargs)
848
867
  except requests.exceptions.ConnectionError as err:
849
868
  # low-level connection issue, it is safe to retry only read-only requests
850
- may_retry = (method == "GET")
869
+ may_retry = (method in {"HEAD", "GET"})
851
870
  raise errors.ConnectionError(cause=err, may_retry=may_retry) from err
852
871
 
853
872
  if not skip_status_check:
@@ -837,3 +837,48 @@ def test_catalog_snapshots_select(session, clean_bucket_name):
837
837
  rows = t.select().read_all()
838
838
  if not rows:
839
839
  raise NotReady
840
+
841
+
842
+ def test_starts_with(session, clean_bucket_name):
843
+ columns = pa.schema([
844
+ ('s', pa.utf8()),
845
+ ('i', pa.int16()),
846
+ ])
847
+
848
+ expected = pa.table(schema=columns, data=[
849
+ ['a', 'ab', 'abc', None, 'abd', 'α', '', 'b'],
850
+ [0, 1, 2, 3, 4, 5, 6, 7],
851
+ ])
852
+
853
+ with prepare_data(session, clean_bucket_name, 's', 't', expected) as table:
854
+ def select(prefix):
855
+ res = table.select(predicate=table['s'].startswith(prefix)).read_all()
856
+ return res.to_pydict()
857
+
858
+ assert select('')['s'] == ['a', 'ab', 'abc', 'abd', 'α', '', 'b']
859
+ assert select('a')['s'] == ['a', 'ab', 'abc', 'abd']
860
+ assert select('b')['s'] == ['b']
861
+ assert select('ab')['s'] == ['ab', 'abc', 'abd']
862
+ assert select('abc')['s'] == ['abc']
863
+ assert select('α')['s'] == ['α']
864
+
865
+ res = table.select(predicate=(table['s'].startswith('ab') | (table['s'].isnull()))).read_all()
866
+ assert res.to_pydict()['s'] == ['ab', 'abc', None, 'abd']
867
+
868
+ res = table.select(predicate=(table['s'].startswith('ab') | (table['s'] == 'b'))).read_all()
869
+ assert res.to_pydict()['s'] == ['ab', 'abc', 'abd', 'b']
870
+
871
+ res = table.select(predicate=((table['s'] == 'b') | table['s'].startswith('ab'))).read_all()
872
+ assert res.to_pydict()['s'] == ['ab', 'abc', 'abd', 'b']
873
+
874
+ res = table.select(predicate=(table['s'].startswith('ab') & (table['s'] != 'abc'))).read_all()
875
+ assert res.to_pydict()['s'] == ['ab', 'abd']
876
+
877
+ res = table.select(predicate=((table['s'] != 'abc') & table['s'].startswith('ab'))).read_all()
878
+ assert res.to_pydict()['s'] == ['ab', 'abd']
879
+
880
+ res = table.select(predicate=((table['i'] > 3) & table['s'].startswith('ab'))).read_all()
881
+ assert res.to_pydict() == {'i': [4], 's': ['abd']}
882
+
883
+ res = table.select(predicate=(table['s'].startswith('ab')) & (table['i'] > 3)).read_all()
884
+ assert res.to_pydict() == {'i': [4], 's': ['abd']}
@@ -43,3 +43,16 @@ def _parse(bufs):
43
43
  for buf in bufs:
44
44
  with pa.ipc.open_stream(buf) as reader:
45
45
  yield from reader
46
+
47
+
48
+ def test_prefix():
49
+ assert util.prefix_to_range('a') == (b'a', b'b')
50
+ assert util.prefix_to_range('abc') == (b'abc', b'abd')
51
+ assert util.prefix_to_range('abc\x00') == (b'abc\x00', b'abc\x01')
52
+ assert util.prefix_to_range('abc\x7f') == (b'abc\x7f', b'abc\x80')
53
+ assert util.prefix_to_range('/a/b/c') == (b'/a/b/c', b'/a/b/d')
54
+ assert util.prefix_to_range('/123α') == (b'/123\xce\xb1', b'/123\xce\xb2')
55
+ assert util.prefix_to_range('/123αA') == (b'/123\xce\xb1A', b'/123\xce\xb1B')
56
+ assert util.prefix_to_range('\U0010ffff') == (b'\xf4\x8f\xbf\xbf', b'\xf4\x8f\xbf\xc0') # max unicode codepoint
57
+ with pytest.raises(AssertionError):
58
+ util.prefix_to_range('')
@@ -157,3 +157,13 @@ def sort_record_batch_if_needed(record_batch, sort_column):
157
157
  return record_batch.sort_by(sort_column)
158
158
  else:
159
159
  return record_batch
160
+
161
+
162
+ def prefix_to_range(prefix: str):
163
+ """Compute (L, U) such that `s.starts_with(prefix)` is equivalent to `L <= s.encode() < H`."""
164
+ assert prefix, "Empty prefix is not convertible to range predicate"
165
+ lower = prefix.encode()
166
+ upper = bytearray(lower)
167
+ # https://en.wikipedia.org/wiki/UTF-8#Encoding guarantees that the last byte is not 0xFF
168
+ upper[-1] = upper[-1] + 1
169
+ return (lower, bytes(upper))
@@ -66,3 +66,26 @@ def test_table_stats(session, test_bucket_name, schema_name, table_name):
66
66
  logger.info("inserted to table")
67
67
  assert new_stat.size_in_bytes != initial_stat.size_in_bytes
68
68
  assert new_stat.num_rows - NUM_TIMES_TO_INSERT == initial_stat.num_rows
69
+
70
+
71
+ def test_ndu_while_querying(session, test_bucket_name, schema_name, table_name):
72
+ """
73
+ Executing queries while a NDU takes place.
74
+ """
75
+ # TODO: Before merging run mypy and print query result
76
+
77
+ config = QueryConfig(num_splits=1, num_sub_splits=1)
78
+
79
+ logger.info(f'{test_bucket_name=}, {schema_name=}, {table_name=}')
80
+
81
+ for query in range(300):
82
+ with session.transaction() as tx:
83
+ t = tx.bucket(test_bucket_name).schema(schema_name).table(table_name)
84
+ s = time.time()
85
+ if query == 0:
86
+ res = t.select(config=config).read_all()
87
+ logger.info(f'{res=}')
88
+ else:
89
+ assert res == t.select(config=config).read_all()
90
+ e = time.time()
91
+ logger.info(f'{query=} took {e - s}')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vastdb
3
- Version: 1.2.0
3
+ Version: 1.3.1
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