vastdb 0.1.9__tar.gz → 0.1.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.
- {vastdb-0.1.9 → vastdb-0.1.10}/CHANGELOG.md +7 -0
- {vastdb-0.1.9/vastdb.egg-info → vastdb-0.1.10}/PKG-INFO +1 -1
- {vastdb-0.1.9 → vastdb-0.1.10}/README.md +5 -7
- {vastdb-0.1.9 → vastdb-0.1.10}/setup.py +1 -1
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/_internal.py +1 -1
- vastdb-0.1.10/vastdb/bench/test_sample.py +196 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/conftest.py +28 -6
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/table.py +7 -2
- vastdb-0.1.10/vastdb/tests/metrics.py +42 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/util.py +5 -0
- {vastdb-0.1.9 → vastdb-0.1.10/vastdb.egg-info}/PKG-INFO +1 -1
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb.egg-info/SOURCES.txt +2 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/LICENSE +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/MANIFEST.in +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/requirements.txt +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/setup.cfg +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/__init__.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/__init__.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/__init__.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/__init__.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/__init__.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Aggregate.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ArraySlice.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ArraySubscript.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/BinaryLiteral.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/BooleanLiteral.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Bound.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Call.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/CaseFragment.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Cast.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ConcreteBoundImpl.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ConditionalCase.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/CurrentRow.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/DateLiteral.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/DecimalLiteral.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Deref.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/DurationLiteral.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Expression.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ExpressionImpl.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/FieldIndex.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/FieldRef.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Filter.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/FixedSizeBinaryLiteral.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Float16Literal.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Float32Literal.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Float64Literal.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Following.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Frame.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Grouping.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int16Literal.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int32Literal.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int64Literal.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int8Literal.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteral.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteralDaysMilliseconds.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteralImpl.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteralMonths.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Join.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/JoinKind.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/KeyValue.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Limit.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ListLiteral.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Literal.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/LiteralColumn.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/LiteralImpl.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/LiteralRelation.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/MapKey.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/MapLiteral.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/OrderBy.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Ordering.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Plan.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Preceding.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Project.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/RelId.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Relation.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/RelationImpl.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SetOpKind.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SetOperation.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SimpleCase.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SortKey.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Source.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/StringLiteral.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/StructField.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/StructLiteral.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/TimeLiteral.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/TimestampLiteral.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt16Literal.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt32Literal.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt64Literal.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt8Literal.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Unbounded.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/WindowCall.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/__init__.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Binary.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Block.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/BodyCompression.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/BodyCompressionMethod.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Bool.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Buffer.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/CompressionType.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Date.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/DateUnit.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Decimal.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/DictionaryBatch.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/DictionaryEncoding.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/DictionaryKind.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Duration.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Endianness.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Feature.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Field.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/FieldNode.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/FixedSizeBinary.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/FixedSizeList.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/FloatingPoint.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Footer.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Int.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Interval.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/IntervalUnit.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/KeyValue.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/LargeBinary.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/LargeList.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/LargeUtf8.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/List.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Map.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Message.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/MessageHeader.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/MetadataVersion.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Null.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Precision.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/RecordBatch.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Schema.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/SparseMatrixCompressedAxis.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/SparseMatrixIndexCSX.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensor.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensorIndex.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensorIndexCOO.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensorIndexCSF.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Struct_.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Tensor.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/TensorDim.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Time.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/TimeUnit.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Timestamp.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Type.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Union.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/UnionMode.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/Utf8.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/__init__.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/tabular/AlterColumnRequest.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/tabular/AlterProjectionTableRequest.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/tabular/AlterSchemaRequest.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/tabular/AlterTableRequest.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/tabular/Column.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/tabular/ColumnType.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/tabular/CreateProjectionRequest.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/tabular/CreateSchemaRequest.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/tabular/GetProjectionTableStatsResponse.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/tabular/GetTableStatsResponse.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/tabular/ImportDataRequest.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/tabular/ListProjectionsResponse.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/tabular/ListSchemasResponse.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/tabular/ListTablesResponse.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/tabular/ObjectDetails.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/tabular/S3File.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/tabular/VipRange.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/tabular/__init__.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/__init__.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/bench/__init__.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/bench/test_perf.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/bucket.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/errors.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/schema.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/session.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/tests/__init__.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/tests/test_duckdb.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/tests/test_imports.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/tests/test_nested.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/tests/test_projections.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/tests/test_sanity.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/tests/test_schemas.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/tests/test_tables.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/tests/test_util.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/tests/util.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/transaction.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/vast_tests/__init__.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb/vast_tests/test_ha.py +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb.egg-info/dependency_links.txt +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb.egg-info/requires.txt +0 -0
- {vastdb-0.1.9 → vastdb-0.1.10}/vastdb.egg-info/top_level.txt +0 -0
|
@@ -4,6 +4,13 @@ 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
|
+
## [0.1.10] (2024-07-09)
|
|
8
|
+
[0.1.10]: https://github.com/vast-data/vastdb_sdk/compare/v0.1.9...v0.1.10
|
|
9
|
+
|
|
10
|
+
## Fixed
|
|
11
|
+
- Support responses with no record batches
|
|
12
|
+
- Document supported Arrow data types
|
|
13
|
+
|
|
7
14
|
## [0.1.9] (2024-07-01)
|
|
8
15
|
[0.1.9]: https://github.com/vast-data/vastdb_sdk/compare/v0.1.8...v0.1.9
|
|
9
16
|
|
|
@@ -19,6 +19,11 @@
|
|
|
19
19
|
- [S3 access & secret keys on VAST cluster](https://support.vastdata.com/s/article/UUID-4d2e7e23-b2fb-7900-d98f-96c31a499626)
|
|
20
20
|
- [Tabular identity policy with the proper permissions](https://support.vastdata.com/s/article/UUID-14322b60-d6a2-89ac-3df0-3dfbb6974182)
|
|
21
21
|
|
|
22
|
+
### Required VAST release
|
|
23
|
+
|
|
24
|
+
Currently, VAST DB Python SDK requires `5.0.0-sp10` or later VAST release.
|
|
25
|
+
|
|
26
|
+
If the cluster is running an older VAST release, please contact customer.support@vastdata.com for more details.
|
|
22
27
|
|
|
23
28
|
### Installation
|
|
24
29
|
|
|
@@ -203,10 +208,3 @@ See the following blog posts for more examples:
|
|
|
203
208
|
|
|
204
209
|
- https://vastdata.com/blog/the-vast-catalog-in-action-part-1
|
|
205
210
|
- https://vastdata.com/blog/the-vast-catalog-in-action-part-2
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
## Required VAST release
|
|
209
|
-
|
|
210
|
-
Currently, VAST DB Python SDK requires `5.0.0-sp10` or later VAST release.
|
|
211
|
-
|
|
212
|
-
If the cluster is running an older VAST release, please contact customer.support@vastdata.com for more details.
|
|
@@ -1807,7 +1807,7 @@ def _iter_query_data_response_columns(fileobj, stream_ids=None):
|
|
|
1807
1807
|
batches.append(batch)
|
|
1808
1808
|
except StopIteration: # we got an end-of-stream IPC message for a given stream ID
|
|
1809
1809
|
reader, batches = readers.pop(stream_id) # end of column
|
|
1810
|
-
table = pa.Table.from_batches(batches) # concatenate all column chunks (as a single)
|
|
1810
|
+
table = pa.Table.from_batches(batches=batches, schema=reader.schema) # concatenate all column chunks (as a single)
|
|
1811
1811
|
_logger.debug("stream_id=%d rows=%d column=%s", stream_id, len(table), table)
|
|
1812
1812
|
yield (stream_id, next_row_id, table)
|
|
1813
1813
|
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
|
|
3
|
+
import functools
|
|
4
|
+
import itertools
|
|
5
|
+
import logging
|
|
6
|
+
import os
|
|
7
|
+
import random
|
|
8
|
+
import threading
|
|
9
|
+
import time
|
|
10
|
+
from concurrent.futures import ProcessPoolExecutor, as_completed
|
|
11
|
+
|
|
12
|
+
import numpy as np
|
|
13
|
+
import pyarrow as pa
|
|
14
|
+
|
|
15
|
+
import vastdb.errors
|
|
16
|
+
from vastdb.table import INTERNAL_ROW_ID
|
|
17
|
+
from vastdb.tests import metrics
|
|
18
|
+
|
|
19
|
+
logging.basicConfig(
|
|
20
|
+
level="INFO",
|
|
21
|
+
format="%(asctime)s %(levelname)-10s %(process)d/%(thread)d %(filename)s:%(lineno)d %(message)s")
|
|
22
|
+
|
|
23
|
+
log = logging.getLogger()
|
|
24
|
+
|
|
25
|
+
log.info("Python SDK version: %s", vastdb.util.version())
|
|
26
|
+
|
|
27
|
+
NUM_COLUMNS = 10_000
|
|
28
|
+
COLUMNS_BATCH = 10
|
|
29
|
+
|
|
30
|
+
NUM_ROW_GROUPS = 100
|
|
31
|
+
ROW_GROUP_SIZE = 100_000
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
INTERNAL_ROWID_FIELD = pa.field(INTERNAL_ROW_ID, pa.uint64()) # used for UPDATE
|
|
35
|
+
EXTERNAL_ROWID_FIELD = pa.field("vastdb_rowid", pa.int64()) # used for INSERT & SELECT
|
|
36
|
+
|
|
37
|
+
SCHEMA = "perf"
|
|
38
|
+
TABLE = "sample"
|
|
39
|
+
|
|
40
|
+
SCHEMA_ARROW = pa.schema(
|
|
41
|
+
[pa.field(f'c{i}', pa.float32()) for i in range(NUM_COLUMNS)]
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def load_batch(bucket, session_kwargs, offset, limit):
|
|
46
|
+
log.info('loading into [%d..%d)', offset, limit)
|
|
47
|
+
|
|
48
|
+
# Iterate over all row-groups in this file
|
|
49
|
+
rowids_range = range(offset, limit)
|
|
50
|
+
rowids = pa.array(rowids_range, INTERNAL_ROWID_FIELD.type)
|
|
51
|
+
|
|
52
|
+
session = vastdb.connect(**session_kwargs)
|
|
53
|
+
metrics_rows = []
|
|
54
|
+
|
|
55
|
+
with session.transaction() as tx:
|
|
56
|
+
table = tx.bucket(bucket).schema(SCHEMA).table(TABLE)
|
|
57
|
+
|
|
58
|
+
col = table[EXTERNAL_ROWID_FIELD.name]
|
|
59
|
+
pred = (col >= rowids_range[0]) & (col <= rowids_range[-1])
|
|
60
|
+
count = sum(len(rb) for rb in table.select(columns=[], predicate=pred))
|
|
61
|
+
log.info("%d rows exist at %s", count, rowids_range)
|
|
62
|
+
if count == len(rowids_range):
|
|
63
|
+
# skip already loaded rows
|
|
64
|
+
log.info('skipping [%d..%d)', offset, limit)
|
|
65
|
+
|
|
66
|
+
total_nbytes = 0
|
|
67
|
+
calls = 0
|
|
68
|
+
t0 = time.time()
|
|
69
|
+
# Insert/update every chunk of columns in this rowgroup
|
|
70
|
+
for j in range(0, len(SCHEMA_ARROW), COLUMNS_BATCH):
|
|
71
|
+
cols_batch = list(SCHEMA_ARROW)[j:j + COLUMNS_BATCH]
|
|
72
|
+
arrays = [
|
|
73
|
+
pa.array(np.float32(np.random.uniform(size=[ROW_GROUP_SIZE])))
|
|
74
|
+
for _ in cols_batch
|
|
75
|
+
]
|
|
76
|
+
chunk = pa.table(data=arrays, schema=pa.schema(cols_batch))
|
|
77
|
+
nbytes = chunk.get_total_buffer_size()
|
|
78
|
+
start = time.perf_counter()
|
|
79
|
+
if j == 0:
|
|
80
|
+
chunk = chunk.add_column(0, EXTERNAL_ROWID_FIELD, rowids.cast(EXTERNAL_ROWID_FIELD.type))
|
|
81
|
+
op = 'insert'
|
|
82
|
+
table.insert(chunk)
|
|
83
|
+
else:
|
|
84
|
+
chunk = chunk.add_column(0, INTERNAL_ROWID_FIELD, rowids)
|
|
85
|
+
op = 'update'
|
|
86
|
+
table.update(chunk)
|
|
87
|
+
finish = time.perf_counter()
|
|
88
|
+
|
|
89
|
+
metrics_rows.append(metrics.Row(
|
|
90
|
+
start=start, finish=finish, table_path=table.path, op=op,
|
|
91
|
+
nbytes=nbytes, rows=len(chunk), cols=len(cols_batch),
|
|
92
|
+
pid=os.getpid(), tid=threading.get_native_id()))
|
|
93
|
+
|
|
94
|
+
total_nbytes += nbytes
|
|
95
|
+
calls += 1
|
|
96
|
+
log.debug("%s into %s: %d rows x %d cols, %.3f MB",
|
|
97
|
+
op, rowids_range, len(chunk), len(chunk.schema),
|
|
98
|
+
chunk.get_total_buffer_size() / 1e6)
|
|
99
|
+
|
|
100
|
+
dt = time.time() - t0
|
|
101
|
+
|
|
102
|
+
log.info('loaded into [%d..%d): %d rows x %d cols, %.3f MB, %d RPCs, %.3f seconds',
|
|
103
|
+
offset, limit, limit - offset, NUM_COLUMNS, total_nbytes / 1e6, calls, dt)
|
|
104
|
+
return metrics_rows
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def test_ingest(clean_bucket_name, session_kwargs, tabular_endpoint_urls, num_workers, perf_metrics_db):
|
|
108
|
+
session = vastdb.connect(**session_kwargs)
|
|
109
|
+
metrics_table = metrics.Table(perf_metrics_db, "ingest")
|
|
110
|
+
|
|
111
|
+
with session.transaction() as tx:
|
|
112
|
+
b = tx.bucket(clean_bucket_name)
|
|
113
|
+
try:
|
|
114
|
+
s = b.schema(SCHEMA)
|
|
115
|
+
except vastdb.errors.MissingSchema:
|
|
116
|
+
s = b.create_schema(SCHEMA)
|
|
117
|
+
|
|
118
|
+
try:
|
|
119
|
+
s.table(TABLE)
|
|
120
|
+
except vastdb.errors.MissingTable:
|
|
121
|
+
s.create_table(TABLE, pa.schema([EXTERNAL_ROWID_FIELD] + list(SCHEMA_ARROW)))
|
|
122
|
+
|
|
123
|
+
ranges = [
|
|
124
|
+
(i * ROW_GROUP_SIZE, (i + 1) * ROW_GROUP_SIZE)
|
|
125
|
+
for i in range(NUM_ROW_GROUPS)
|
|
126
|
+
]
|
|
127
|
+
|
|
128
|
+
with ProcessPoolExecutor(max_workers=num_workers) as executor:
|
|
129
|
+
futures = [
|
|
130
|
+
executor.submit(load_batch, clean_bucket_name, session_kwargs | {'endpoint': url}, offset, limit)
|
|
131
|
+
for (offset, limit), url in zip(ranges, itertools.cycle(tabular_endpoint_urls))
|
|
132
|
+
]
|
|
133
|
+
log.info("spawned %d futures", len(futures))
|
|
134
|
+
for future in as_completed(futures):
|
|
135
|
+
metrics_table.insert(future.result())
|
|
136
|
+
|
|
137
|
+
with session.transaction() as tx:
|
|
138
|
+
t = tx.bucket(clean_bucket_name).schema(SCHEMA).table(TABLE)
|
|
139
|
+
count = sum(len(rb) for rb in t.select([]))
|
|
140
|
+
log.info("%s has %d rows: %s", t, count, t.stats)
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
def run_query(session_kwargs, i, bucket_name, endpoint_url):
|
|
144
|
+
num_columns = 2000
|
|
145
|
+
row_groups_per_query = 10
|
|
146
|
+
|
|
147
|
+
config = vastdb.table.QueryConfig(
|
|
148
|
+
num_sub_splits=1,
|
|
149
|
+
num_splits=1,
|
|
150
|
+
limit_rows_per_sub_split=ROW_GROUP_SIZE,
|
|
151
|
+
num_row_groups_per_sub_split=1)
|
|
152
|
+
|
|
153
|
+
row_group_indices = list(range(NUM_ROW_GROUPS))
|
|
154
|
+
r = random.Random(i)
|
|
155
|
+
r.shuffle(row_group_indices)
|
|
156
|
+
|
|
157
|
+
session = vastdb.connect(**(session_kwargs | {"endpoint": endpoint_url}))
|
|
158
|
+
with session.transaction() as tx:
|
|
159
|
+
t = tx.bucket(bucket_name).schema(SCHEMA).table(TABLE)
|
|
160
|
+
|
|
161
|
+
fields = list(t.arrow_schema)[1:]
|
|
162
|
+
r.shuffle(fields)
|
|
163
|
+
cols = [f.name for f in fields[:num_columns]]
|
|
164
|
+
|
|
165
|
+
vastdb_rowid = t['vastdb_rowid']
|
|
166
|
+
preds = []
|
|
167
|
+
for offset in range(0, len(row_group_indices), row_groups_per_query):
|
|
168
|
+
rowid_ranges = (
|
|
169
|
+
vastdb_rowid.between(j * ROW_GROUP_SIZE, (j + 1) * ROW_GROUP_SIZE - 1)
|
|
170
|
+
for j in row_group_indices[offset:offset + row_groups_per_query]
|
|
171
|
+
)
|
|
172
|
+
pred = functools.reduce((lambda x, y: x | y), rowid_ranges)
|
|
173
|
+
preds.append(pred)
|
|
174
|
+
|
|
175
|
+
for j, pred in enumerate(preds):
|
|
176
|
+
log.info("%d) starting query #%d on %s", i, j, endpoint_url)
|
|
177
|
+
t0 = time.time()
|
|
178
|
+
res = t.select(columns=cols, predicate=pred, config=config)
|
|
179
|
+
rows = 0
|
|
180
|
+
data = 0
|
|
181
|
+
for rb in res:
|
|
182
|
+
rows += len(rb)
|
|
183
|
+
data += rb.nbytes
|
|
184
|
+
dt = time.time() - t0
|
|
185
|
+
log.info("%d) got query #%d batch %.3f[s], %.3f[GB] %.3f[MB/s], %.3f[Mrows]", i, j, dt, data / 1e9, data / 1e6 / dt, rows / 1e6)
|
|
186
|
+
|
|
187
|
+
dt = time.time() - t0
|
|
188
|
+
log.info("%d) finished query #%d %.3f[s], %.3f[GB], %.3f[MB/s], %.3f[Mrows]", i, j, dt, data / 1e9, data / 1e6 / dt, rows / 1e6)
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
def test_scan(test_bucket_name, session, num_workers, session_kwargs, tabular_endpoint_urls):
|
|
192
|
+
log.info("starting %d workers, endpoints=%s", num_workers, tabular_endpoint_urls)
|
|
193
|
+
with ProcessPoolExecutor(max_workers=num_workers) as executor:
|
|
194
|
+
for i, url in zip(range(num_workers), itertools.cycle(tabular_endpoint_urls)):
|
|
195
|
+
executor.submit(run_query, session_kwargs, i, test_bucket_name, url)
|
|
196
|
+
log.info("finished %d workers", num_workers)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import os
|
|
2
|
+
import sqlite3
|
|
2
3
|
from pathlib import Path
|
|
3
4
|
|
|
4
5
|
import boto3
|
|
@@ -13,27 +14,43 @@ def pytest_addoption(parser):
|
|
|
13
14
|
default=os.environ.get("AWS_ACCESS_KEY_ID", None))
|
|
14
15
|
parser.addoption("--tabular-secret-key", help="Secret key with Tabular permissions (AWS_SECRET_ACCESS_KEY)",
|
|
15
16
|
default=os.environ.get("AWS_SECRET_ACCESS_KEY", None))
|
|
16
|
-
parser.addoption("--tabular-endpoint-url", help="Tabular server endpoint", default="
|
|
17
|
+
parser.addoption("--tabular-endpoint-url", help="Tabular server endpoint", default=[], action="append")
|
|
17
18
|
parser.addoption("--data-path", help="Data files location", default=None)
|
|
18
19
|
parser.addoption("--crater-path", help="Save benchmark results in a dedicated location", default=None)
|
|
19
20
|
parser.addoption("--schema-name", help="Name of schema for the test to operate on", default=None)
|
|
20
21
|
parser.addoption("--table-name", help="Name of table for the test to operate on", default=None)
|
|
22
|
+
parser.addoption("--num-workers", help="Number of concurrent workers", default=1)
|
|
21
23
|
|
|
22
24
|
|
|
23
25
|
@pytest.fixture(scope="session")
|
|
24
|
-
def
|
|
25
|
-
return
|
|
26
|
+
def session_kwargs(request, tabular_endpoint_urls):
|
|
27
|
+
return dict(
|
|
26
28
|
access=request.config.getoption("--tabular-access-key"),
|
|
27
29
|
secret=request.config.getoption("--tabular-secret-key"),
|
|
28
|
-
endpoint=
|
|
30
|
+
endpoint=tabular_endpoint_urls[0],
|
|
29
31
|
)
|
|
30
32
|
|
|
31
33
|
|
|
34
|
+
@pytest.fixture(scope="session")
|
|
35
|
+
def session(session_kwargs):
|
|
36
|
+
return vastdb.connect(**session_kwargs)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
@pytest.fixture(scope="session")
|
|
40
|
+
def num_workers(request):
|
|
41
|
+
return int(request.config.getoption("--num-workers"))
|
|
42
|
+
|
|
43
|
+
|
|
32
44
|
@pytest.fixture(scope="session")
|
|
33
45
|
def test_bucket_name(request):
|
|
34
46
|
return request.config.getoption("--tabular-bucket-name")
|
|
35
47
|
|
|
36
48
|
|
|
49
|
+
@pytest.fixture(scope="session")
|
|
50
|
+
def tabular_endpoint_urls(request):
|
|
51
|
+
return request.config.getoption("--tabular-endpoint-url") or ["http://localhost:9090"]
|
|
52
|
+
|
|
53
|
+
|
|
37
54
|
def iter_schemas(s):
|
|
38
55
|
"""Recusively scan all schemas."""
|
|
39
56
|
children = s.schemas()
|
|
@@ -55,12 +72,12 @@ def clean_bucket_name(request, test_bucket_name, session):
|
|
|
55
72
|
|
|
56
73
|
|
|
57
74
|
@pytest.fixture(scope="session")
|
|
58
|
-
def s3(request):
|
|
75
|
+
def s3(request, tabular_endpoint_urls):
|
|
59
76
|
return boto3.client(
|
|
60
77
|
's3',
|
|
61
78
|
aws_access_key_id=request.config.getoption("--tabular-access-key"),
|
|
62
79
|
aws_secret_access_key=request.config.getoption("--tabular-secret-key"),
|
|
63
|
-
endpoint_url=
|
|
80
|
+
endpoint_url=tabular_endpoint_urls[0])
|
|
64
81
|
|
|
65
82
|
|
|
66
83
|
@pytest.fixture(scope="function")
|
|
@@ -81,3 +98,8 @@ def schema_name(request):
|
|
|
81
98
|
@pytest.fixture(scope="function")
|
|
82
99
|
def table_name(request):
|
|
83
100
|
return request.config.getoption("--table-name")
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
@pytest.fixture(scope="function")
|
|
104
|
+
def perf_metrics_db(crater_path):
|
|
105
|
+
return sqlite3.connect(f"{crater_path}/metrics.sqlite")
|
|
@@ -167,8 +167,13 @@ class Table:
|
|
|
167
167
|
"""Also, load columns' metadata."""
|
|
168
168
|
self.arrow_schema = self.columns()
|
|
169
169
|
|
|
170
|
-
|
|
171
|
-
self._ibis_table = ibis.table(ibis.Schema.from_pyarrow(self.arrow_schema),
|
|
170
|
+
self._table_path = f'{self.schema.bucket.name}/{self.schema.name}/{self.name}'
|
|
171
|
+
self._ibis_table = ibis.table(ibis.Schema.from_pyarrow(self.arrow_schema), self._table_path)
|
|
172
|
+
|
|
173
|
+
@property
|
|
174
|
+
def path(self):
|
|
175
|
+
"""Return table's path."""
|
|
176
|
+
return self._table_path
|
|
172
177
|
|
|
173
178
|
@property
|
|
174
179
|
def tx(self):
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import dataclasses
|
|
2
|
+
import sqlite3
|
|
3
|
+
from typing import List
|
|
4
|
+
|
|
5
|
+
_MAP_SQLITE_TYPES = {
|
|
6
|
+
str: "TEXT",
|
|
7
|
+
float: "REAL",
|
|
8
|
+
int: "INTEGER",
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@dataclasses.dataclass
|
|
13
|
+
class Row:
|
|
14
|
+
start: float
|
|
15
|
+
finish: float
|
|
16
|
+
table_path: str
|
|
17
|
+
op: str
|
|
18
|
+
nbytes: int
|
|
19
|
+
rows: int
|
|
20
|
+
cols: int
|
|
21
|
+
pid: int
|
|
22
|
+
tid: int
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class Table:
|
|
26
|
+
def __init__(self, conn: sqlite3.Connection, name: str):
|
|
27
|
+
self.fields = dataclasses.fields(Row)
|
|
28
|
+
self.conn = conn
|
|
29
|
+
self.name = name
|
|
30
|
+
columns = ", ".join(
|
|
31
|
+
f"{f.name} {_MAP_SQLITE_TYPES[f.type]}"
|
|
32
|
+
for f in self.fields
|
|
33
|
+
)
|
|
34
|
+
cmd = f"CREATE TABLE {self.name} ({columns})"
|
|
35
|
+
self.conn.execute(cmd).fetchall()
|
|
36
|
+
|
|
37
|
+
def insert(self, rows: List[Row]):
|
|
38
|
+
args = ", ".join(["?"] * len(self.fields))
|
|
39
|
+
cmd = f"INSERT INTO {self.name} VALUES ({args})"
|
|
40
|
+
data = [dataclasses.astuple(row) for row in rows]
|
|
41
|
+
self.conn.executemany(cmd, data).fetchall()
|
|
42
|
+
self.conn.commit()
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import importlib
|
|
1
2
|
import logging
|
|
2
3
|
import re
|
|
3
4
|
from typing import TYPE_CHECKING, Callable, List, Optional, Union
|
|
@@ -159,3 +160,7 @@ def check_supported_types(fields: pa.Schema):
|
|
|
159
160
|
if isinstance(f.type, pa.TimestampType):
|
|
160
161
|
if f.type.tz:
|
|
161
162
|
raise NotSupportedType(f)
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
def version():
|
|
166
|
+
return importlib.metadata.distribution('vastdb').version
|
|
@@ -171,7 +171,9 @@ vastdb.egg-info/requires.txt
|
|
|
171
171
|
vastdb.egg-info/top_level.txt
|
|
172
172
|
vastdb/bench/__init__.py
|
|
173
173
|
vastdb/bench/test_perf.py
|
|
174
|
+
vastdb/bench/test_sample.py
|
|
174
175
|
vastdb/tests/__init__.py
|
|
176
|
+
vastdb/tests/metrics.py
|
|
175
177
|
vastdb/tests/test_duckdb.py
|
|
176
178
|
vastdb/tests/test_imports.py
|
|
177
179
|
vastdb/tests/test_nested.py
|
|
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
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ArraySlice.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ArraySubscript.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/BinaryLiteral.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/BooleanLiteral.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/CaseFragment.py
RENAMED
|
File without changes
|
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ConcreteBoundImpl.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ConditionalCase.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/CurrentRow.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/DateLiteral.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/DecimalLiteral.py
RENAMED
|
File without changes
|
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/DurationLiteral.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Expression.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ExpressionImpl.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/FieldIndex.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Float16Literal.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Float32Literal.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Float64Literal.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int16Literal.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int32Literal.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int64Literal.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int8Literal.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteral.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ListLiteral.py
RENAMED
|
File without changes
|
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/LiteralColumn.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/LiteralImpl.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/LiteralRelation.py
RENAMED
|
File without changes
|
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/MapLiteral.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/RelationImpl.py
RENAMED
|
File without changes
|
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SetOperation.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SimpleCase.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/StringLiteral.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/StructField.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/StructLiteral.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/TimeLiteral.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/TimestampLiteral.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt16Literal.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt32Literal.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt64Literal.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt8Literal.py
RENAMED
|
File without changes
|
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/WindowCall.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/BodyCompressionMethod.py
RENAMED
|
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
|
|
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
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/SparseMatrixCompressedAxis.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/SparseMatrixIndexCSX.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensorIndexCOO.py
RENAMED
|
File without changes
|
{vastdb-0.1.9 → vastdb-0.1.10}/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensorIndexCSF.py
RENAMED
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|