vastdb 1.3.7__tar.gz → 1.3.9__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-1.3.7 → vastdb-1.3.9}/CHANGELOG.md +30 -2
- {vastdb-1.3.7 → vastdb-1.3.9}/PKG-INFO +1 -1
- {vastdb-1.3.7 → vastdb-1.3.9}/setup.py +1 -1
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/__init__.py +2 -2
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/_internal.py +197 -83
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/test_perf.py +2 -2
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/config.py +3 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/errors.py +6 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/features.py +9 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/schema.py +5 -3
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/table.py +99 -17
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/tests/test_imports.py +70 -1
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/tests/test_tables.py +217 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/tests/util.py +2 -2
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Aggregate.py +4 -4
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Call.py +2 -2
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/CaseFragment.py +2 -2
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Cast.py +2 -2
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ConditionalCase.py +2 -2
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Filter.py +3 -3
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Grouping.py +1 -1
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Join.py +4 -4
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/KeyValue.py +2 -2
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Limit.py +2 -2
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ListLiteral.py +1 -1
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Literal.py +1 -1
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/LiteralColumn.py +1 -1
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/LiteralRelation.py +2 -2
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/MapKey.py +1 -1
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/MapLiteral.py +1 -1
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/OrderBy.py +3 -3
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Plan.py +1 -1
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Project.py +3 -3
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SetOperation.py +2 -2
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SimpleCase.py +3 -3
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SortKey.py +1 -1
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Source.py +4 -4
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/StructLiteral.py +1 -1
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/WindowCall.py +3 -3
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/DictionaryBatch.py +1 -1
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/DictionaryEncoding.py +1 -1
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Field.py +3 -3
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Footer.py +4 -4
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Message.py +1 -1
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/RecordBatch.py +3 -3
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Schema.py +2 -2
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/SparseMatrixIndexCSX.py +4 -4
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensor.py +2 -2
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensorIndexCOO.py +2 -2
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensorIndexCSF.py +4 -4
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Tensor.py +2 -2
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/CreateProjectionRequest.py +1 -1
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/GetRowColumnSecurityResponse.py +4 -4
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/GetTableStatsResponse.py +1 -1
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/ImportDataRequest.py +34 -1
- vastdb-1.3.9/vastdb/vast_flatbuf/tabular/KeyName.py +45 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/ListProjectionsResponse.py +1 -1
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/ListSchemasResponse.py +1 -1
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/ListTablesResponse.py +1 -1
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/ListViewsResponse.py +1 -1
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb.egg-info/PKG-INFO +1 -1
- vastdb-1.3.9/vastdb.egg-info/SOURCES.txt +223 -0
- vastdb-1.3.9/vastdb.egg-info/top_level.txt +1 -0
- vastdb-1.3.7/vastdb.egg-info/SOURCES.txt +0 -222
- vastdb-1.3.7/vastdb.egg-info/top_level.txt +0 -2
- {vastdb-1.3.7 → vastdb-1.3.9}/CONTRIBUTING.md +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/LICENSE +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/MANIFEST.in +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/README.md +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/requirements.txt +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/setup.cfg +0 -0
- {vastdb-1.3.7/vast_flatbuf → vastdb-1.3.9/vastdb/bench}/__init__.py +0 -0
- {vastdb-1.3.7/vast_flatbuf/org → vastdb-1.3.9/vastdb/bench/perf_bench}/__init__.py +0 -0
- {vastdb-1.3.7/vast_flatbuf/org/apache → vastdb-1.3.9/vastdb/bench/perf_bench/bench_repo}/__init__.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/perf_bench/bench_repo/mega_combo.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/perf_bench/cli.py +0 -0
- {vastdb-1.3.7/vast_flatbuf/org/apache/arrow → vastdb-1.3.9/vastdb/bench/perf_bench/common}/__init__.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/perf_bench/common/constants.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/perf_bench/common/log_utils.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/perf_bench/common/types.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/perf_bench/common/utils.py +0 -0
- {vastdb-1.3.7/vast_flatbuf/org/apache/arrow/computeir → vastdb-1.3.9/vastdb/bench/perf_bench/dataset}/__init__.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/perf_bench/dataset/generate_secmaster.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/perf_bench/dataset/generate_stocks_dataset.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/perf_bench/dataset/schemas.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/perf_bench/dataset/secmaster.py +0 -0
- {vastdb-1.3.7/vast_flatbuf/org/apache/arrow/computeir/flatbuf → vastdb-1.3.9/vastdb/bench/perf_bench/orchestrate}/__init__.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/perf_bench/orchestrate/bench_spec.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/perf_bench/orchestrate/results_helpers.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/perf_bench/orchestrate/scenario.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/perf_bench/orchestrate/scenario_generator.py +0 -0
- {vastdb-1.3.7/vast_flatbuf/org/apache/arrow/flatbuf → vastdb-1.3.9/vastdb/bench/perf_bench/query}/__init__.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/perf_bench/query/arrow_common.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/perf_bench/query/query.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/perf_bench/query/query_pyarrow.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/perf_bench/query/query_vastdb.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/perf_bench/run.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bench/test_sample.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/bucket.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/conftest.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/session.py +0 -0
- {vastdb-1.3.7/vast_flatbuf/tabular → vastdb-1.3.9/vastdb/tests}/__init__.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/tests/metrics.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/tests/test_duckdb.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/tests/test_nested.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/tests/test_projections.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/tests/test_sanity.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/tests/test_schemas.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/tests/test_util.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/transaction.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/util.py +0 -0
- {vastdb-1.3.7/vastdb/bench → vastdb-1.3.9/vastdb/vast_flatbuf}/__init__.py +0 -0
- {vastdb-1.3.7/vastdb/bench/perf_bench → vastdb-1.3.9/vastdb/vast_flatbuf/org}/__init__.py +0 -0
- {vastdb-1.3.7/vastdb/bench/perf_bench/bench_repo → vastdb-1.3.9/vastdb/vast_flatbuf/org/apache}/__init__.py +0 -0
- {vastdb-1.3.7/vastdb/bench/perf_bench/common → vastdb-1.3.9/vastdb/vast_flatbuf/org/apache/arrow}/__init__.py +0 -0
- {vastdb-1.3.7/vastdb/bench/perf_bench/dataset → vastdb-1.3.9/vastdb/vast_flatbuf/org/apache/arrow/computeir}/__init__.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ArraySlice.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ArraySubscript.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/BinaryLiteral.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/BooleanLiteral.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Bound.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ConcreteBoundImpl.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/CurrentRow.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/DateLiteral.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/DecimalLiteral.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Deref.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/DurationLiteral.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Expression.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/ExpressionImpl.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/FieldIndex.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/FieldRef.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/FixedSizeBinaryLiteral.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Float16Literal.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Float32Literal.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Float64Literal.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Following.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Frame.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int16Literal.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int32Literal.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int64Literal.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Int8Literal.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteral.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteralDaysMilliseconds.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteralImpl.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/IntervalLiteralMonths.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/JoinKind.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/LiteralImpl.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Ordering.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Preceding.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/RelId.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Relation.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/RelationImpl.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/SetOpKind.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/StringLiteral.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/StructField.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/TimeLiteral.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/TimestampLiteral.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt16Literal.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt32Literal.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt64Literal.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/UInt8Literal.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/computeir/flatbuf/Unbounded.py +0 -0
- {vastdb-1.3.7/vastdb/bench/perf_bench/orchestrate → vastdb-1.3.9/vastdb/vast_flatbuf/org/apache/arrow/computeir/flatbuf}/__init__.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Binary.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Block.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/BodyCompression.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/BodyCompressionMethod.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Bool.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Buffer.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/CompressionType.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Date.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/DateUnit.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Decimal.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/DictionaryKind.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Duration.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Endianness.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Feature.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/FieldNode.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/FixedSizeBinary.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/FixedSizeList.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/FloatingPoint.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Int.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Interval.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/IntervalUnit.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/KeyValue.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/LargeBinary.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/LargeList.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/LargeUtf8.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/List.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Map.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/MessageHeader.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/MetadataVersion.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Null.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Precision.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/SparseMatrixCompressedAxis.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/SparseTensorIndex.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Struct_.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/TensorDim.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Time.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/TimeUnit.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Timestamp.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Type.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Union.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/UnionMode.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/org/apache/arrow/flatbuf/Utf8.py +0 -0
- {vastdb-1.3.7/vastdb/bench/perf_bench/query → vastdb-1.3.9/vastdb/vast_flatbuf/org/apache/arrow/flatbuf}/__init__.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/AlterColumnRequest.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/AlterProjectionTableRequest.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/AlterSchemaRequest.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/AlterTableRequest.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/Column.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/ColumnDetails.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/ColumnType.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/CreateSchemaRequest.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/CreateViewRequest.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/FilterString.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/GetProjectionTableStatsResponse.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/NameString.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/ObjectDetails.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/S3File.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9/vastdb}/vast_flatbuf/tabular/VipRange.py +0 -0
- {vastdb-1.3.7/vastdb/tests → vastdb-1.3.9/vastdb/vast_flatbuf/tabular}/__init__.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/vast_tests/__init__.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/vast_tests/test_ha.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb/vast_tests/test_scale.py +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb.egg-info/dependency_links.txt +0 -0
- {vastdb-1.3.7 → vastdb-1.3.9}/vastdb.egg-info/requires.txt +0 -0
|
@@ -4,14 +4,42 @@ 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.9] (2025-04-22)
|
|
8
|
+
[1.3.9]: https://github.com/vast-data/vastdb_sdk/compare/v1.3.8...v1.3.9
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- Elysium-check validation
|
|
12
|
+
- Fix logging level
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
- Support elysium new stats
|
|
16
|
+
- Exposing `sorting_done` flag for Elysium tables (for other tables, `sorting_done()` will always return false)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## [1.3.8] (2025-03-31)
|
|
20
|
+
[1.3.8]: https://github.com/vast-data/vastdb_sdk/compare/v1.3.7...v1.3.8
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
- Support InsufficientCapacity (fixes internal issue)
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
- Add server feature supported checks
|
|
27
|
+
- Support zip import
|
|
28
|
+
- Add split estimation for sorted tables
|
|
29
|
+
- Support Update & Delete for Sorted Tables
|
|
30
|
+
- Support Elysium DDL for the pysdk
|
|
31
|
+
|
|
32
|
+
### Changed
|
|
33
|
+
- Move vast_flatbuf under vastdb
|
|
34
|
+
|
|
7
35
|
## [1.3.7] (2024-12-23)
|
|
8
|
-
[1.3.
|
|
36
|
+
[1.3.7]: https://github.com/vast-data/vastdb_sdk/compare/v1.3.6...v1.3.7
|
|
9
37
|
|
|
10
38
|
### Fixed
|
|
11
39
|
- Fix creating kafka schema before calling create table.
|
|
12
40
|
|
|
13
41
|
## [1.3.6] (2024-12-23)
|
|
14
|
-
[1.3.
|
|
42
|
+
[1.3.6]: https://github.com/vast-data/vastdb_sdk/compare/v1.3.5...v1.3.6
|
|
15
43
|
|
|
16
44
|
### Fixed
|
|
17
45
|
- Fix missing api call.
|
|
@@ -13,5 +13,5 @@ def connect(*args, **kwargs): # noqa: D103
|
|
|
13
13
|
|
|
14
14
|
def version():
|
|
15
15
|
"""Return VAST DB SDK version."""
|
|
16
|
-
import
|
|
17
|
-
return
|
|
16
|
+
from importlib import metadata
|
|
17
|
+
return metadata.distribution(__package__).version
|
|
@@ -38,75 +38,82 @@ from ibis.expr.operations.relations import Field
|
|
|
38
38
|
from ibis.expr.operations.strings import StartsWith, StringContains
|
|
39
39
|
from ibis.expr.operations.structs import StructField
|
|
40
40
|
|
|
41
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.BinaryLiteral as fb_binary_lit
|
|
42
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.BooleanLiteral as fb_bool_lit
|
|
43
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.Call as fb_call
|
|
44
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.DateLiteral as fb_date32_lit
|
|
45
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.DecimalLiteral as fb_decimal_lit
|
|
46
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.Expression as fb_expression
|
|
47
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.FieldIndex as fb_field_index
|
|
48
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.FieldRef as fb_field_ref
|
|
49
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.Float32Literal as fb_float32_lit
|
|
50
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.Float64Literal as fb_float64_lit
|
|
51
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.Int8Literal as fb_int8_lit
|
|
52
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.Int16Literal as fb_int16_lit
|
|
53
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.Int32Literal as fb_int32_lit
|
|
54
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.Int64Literal as fb_int64_lit
|
|
55
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.Literal as fb_literal
|
|
56
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.Relation as fb_relation
|
|
57
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.RelationImpl as rel_impl
|
|
58
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.Source as fb_source
|
|
59
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.StringLiteral as fb_string_lit
|
|
60
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.TimeLiteral as fb_time_lit
|
|
61
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.TimestampLiteral as fb_timestamp_lit
|
|
62
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.UInt8Literal as fb_uint8_lit
|
|
63
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.UInt16Literal as fb_uint16_lit
|
|
64
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.UInt32Literal as fb_uint32_lit
|
|
65
|
-
import vast_flatbuf.org.apache.arrow.computeir.flatbuf.UInt64Literal as fb_uint64_lit
|
|
66
|
-
import vast_flatbuf.org.apache.arrow.flatbuf.Binary as fb_binary
|
|
67
|
-
import vast_flatbuf.org.apache.arrow.flatbuf.Bool as fb_bool
|
|
68
|
-
import vast_flatbuf.org.apache.arrow.flatbuf.Date as fb_date
|
|
69
|
-
import vast_flatbuf.org.apache.arrow.flatbuf.Decimal as fb_decimal
|
|
70
|
-
import vast_flatbuf.org.apache.arrow.flatbuf.Field as fb_field
|
|
71
|
-
import vast_flatbuf.org.apache.arrow.flatbuf.FixedSizeBinary as fb_fixed_size_binary
|
|
72
|
-
import vast_flatbuf.org.apache.arrow.flatbuf.FloatingPoint as fb_floating_point
|
|
73
|
-
import vast_flatbuf.org.apache.arrow.flatbuf.Int as fb_int
|
|
74
|
-
import vast_flatbuf.org.apache.arrow.flatbuf.List as fb_list
|
|
75
|
-
import vast_flatbuf.org.apache.arrow.flatbuf.Map as fb_map
|
|
76
|
-
import vast_flatbuf.org.apache.arrow.flatbuf.Schema as fb_schema
|
|
77
|
-
import vast_flatbuf.org.apache.arrow.flatbuf.Struct_ as fb_struct
|
|
78
|
-
import vast_flatbuf.org.apache.arrow.flatbuf.Time as fb_time
|
|
79
|
-
import vast_flatbuf.org.apache.arrow.flatbuf.Timestamp as fb_timestamp
|
|
80
|
-
import vast_flatbuf.org.apache.arrow.flatbuf.Utf8 as fb_utf8
|
|
81
|
-
import vast_flatbuf.tabular.AlterColumnRequest as tabular_alter_column
|
|
82
|
-
import vast_flatbuf.tabular.AlterProjectionTableRequest as tabular_alter_projection
|
|
83
|
-
import vast_flatbuf.tabular.AlterSchemaRequest as tabular_alter_schema
|
|
84
|
-
import vast_flatbuf.tabular.AlterTableRequest as tabular_alter_table
|
|
85
|
-
import vast_flatbuf.tabular.Column as tabular_projecion_column
|
|
86
|
-
import vast_flatbuf.tabular.ColumnType as tabular_proj_column_type
|
|
87
|
-
import vast_flatbuf.tabular.CreateProjectionRequest as tabular_create_projection
|
|
88
|
-
import vast_flatbuf.tabular.CreateSchemaRequest as tabular_create_schema
|
|
89
|
-
import vast_flatbuf.tabular.ImportDataRequest as tabular_import_data
|
|
90
|
-
import vast_flatbuf.tabular.
|
|
91
|
-
|
|
92
|
-
from vast_flatbuf.org.apache.arrow.computeir.flatbuf.
|
|
41
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.BinaryLiteral as fb_binary_lit
|
|
42
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.BooleanLiteral as fb_bool_lit
|
|
43
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.Call as fb_call
|
|
44
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.DateLiteral as fb_date32_lit
|
|
45
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.DecimalLiteral as fb_decimal_lit
|
|
46
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.Expression as fb_expression
|
|
47
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.FieldIndex as fb_field_index
|
|
48
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.FieldRef as fb_field_ref
|
|
49
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.Float32Literal as fb_float32_lit
|
|
50
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.Float64Literal as fb_float64_lit
|
|
51
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.Int8Literal as fb_int8_lit
|
|
52
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.Int16Literal as fb_int16_lit
|
|
53
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.Int32Literal as fb_int32_lit
|
|
54
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.Int64Literal as fb_int64_lit
|
|
55
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.Literal as fb_literal
|
|
56
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.Relation as fb_relation
|
|
57
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.RelationImpl as rel_impl
|
|
58
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.Source as fb_source
|
|
59
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.StringLiteral as fb_string_lit
|
|
60
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.TimeLiteral as fb_time_lit
|
|
61
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.TimestampLiteral as fb_timestamp_lit
|
|
62
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.UInt8Literal as fb_uint8_lit
|
|
63
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.UInt16Literal as fb_uint16_lit
|
|
64
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.UInt32Literal as fb_uint32_lit
|
|
65
|
+
import vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.UInt64Literal as fb_uint64_lit
|
|
66
|
+
import vastdb.vast_flatbuf.org.apache.arrow.flatbuf.Binary as fb_binary
|
|
67
|
+
import vastdb.vast_flatbuf.org.apache.arrow.flatbuf.Bool as fb_bool
|
|
68
|
+
import vastdb.vast_flatbuf.org.apache.arrow.flatbuf.Date as fb_date
|
|
69
|
+
import vastdb.vast_flatbuf.org.apache.arrow.flatbuf.Decimal as fb_decimal
|
|
70
|
+
import vastdb.vast_flatbuf.org.apache.arrow.flatbuf.Field as fb_field
|
|
71
|
+
import vastdb.vast_flatbuf.org.apache.arrow.flatbuf.FixedSizeBinary as fb_fixed_size_binary
|
|
72
|
+
import vastdb.vast_flatbuf.org.apache.arrow.flatbuf.FloatingPoint as fb_floating_point
|
|
73
|
+
import vastdb.vast_flatbuf.org.apache.arrow.flatbuf.Int as fb_int
|
|
74
|
+
import vastdb.vast_flatbuf.org.apache.arrow.flatbuf.List as fb_list
|
|
75
|
+
import vastdb.vast_flatbuf.org.apache.arrow.flatbuf.Map as fb_map
|
|
76
|
+
import vastdb.vast_flatbuf.org.apache.arrow.flatbuf.Schema as fb_schema
|
|
77
|
+
import vastdb.vast_flatbuf.org.apache.arrow.flatbuf.Struct_ as fb_struct
|
|
78
|
+
import vastdb.vast_flatbuf.org.apache.arrow.flatbuf.Time as fb_time
|
|
79
|
+
import vastdb.vast_flatbuf.org.apache.arrow.flatbuf.Timestamp as fb_timestamp
|
|
80
|
+
import vastdb.vast_flatbuf.org.apache.arrow.flatbuf.Utf8 as fb_utf8
|
|
81
|
+
import vastdb.vast_flatbuf.tabular.AlterColumnRequest as tabular_alter_column
|
|
82
|
+
import vastdb.vast_flatbuf.tabular.AlterProjectionTableRequest as tabular_alter_projection
|
|
83
|
+
import vastdb.vast_flatbuf.tabular.AlterSchemaRequest as tabular_alter_schema
|
|
84
|
+
import vastdb.vast_flatbuf.tabular.AlterTableRequest as tabular_alter_table
|
|
85
|
+
import vastdb.vast_flatbuf.tabular.Column as tabular_projecion_column
|
|
86
|
+
import vastdb.vast_flatbuf.tabular.ColumnType as tabular_proj_column_type
|
|
87
|
+
import vastdb.vast_flatbuf.tabular.CreateProjectionRequest as tabular_create_projection
|
|
88
|
+
import vastdb.vast_flatbuf.tabular.CreateSchemaRequest as tabular_create_schema
|
|
89
|
+
import vastdb.vast_flatbuf.tabular.ImportDataRequest as tabular_import_data
|
|
90
|
+
import vastdb.vast_flatbuf.tabular.KeyName as import_key_name
|
|
91
|
+
import vastdb.vast_flatbuf.tabular.S3File as tabular_s3_file
|
|
92
|
+
from vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.Deref import Deref
|
|
93
|
+
from vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.ExpressionImpl import (
|
|
93
94
|
ExpressionImpl,
|
|
94
95
|
)
|
|
95
|
-
from vast_flatbuf.org.apache.arrow.computeir.flatbuf.LiteralImpl import
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
from vast_flatbuf.org.apache.arrow.flatbuf.
|
|
99
|
-
from vast_flatbuf.
|
|
96
|
+
from vastdb.vast_flatbuf.org.apache.arrow.computeir.flatbuf.LiteralImpl import (
|
|
97
|
+
LiteralImpl,
|
|
98
|
+
)
|
|
99
|
+
from vastdb.vast_flatbuf.org.apache.arrow.flatbuf.DateUnit import DateUnit
|
|
100
|
+
from vastdb.vast_flatbuf.org.apache.arrow.flatbuf.TimeUnit import TimeUnit
|
|
101
|
+
from vastdb.vast_flatbuf.org.apache.arrow.flatbuf.Type import Type
|
|
102
|
+
from vastdb.vast_flatbuf.tabular.GetProjectionTableStatsResponse import (
|
|
100
103
|
GetProjectionTableStatsResponse as get_projection_table_stats,
|
|
101
104
|
)
|
|
102
|
-
from vast_flatbuf.tabular.GetTableStatsResponse import (
|
|
105
|
+
from vastdb.vast_flatbuf.tabular.GetTableStatsResponse import (
|
|
103
106
|
GetTableStatsResponse as get_table_stats,
|
|
104
107
|
)
|
|
105
|
-
from vast_flatbuf.tabular.ListProjectionsResponse import (
|
|
108
|
+
from vastdb.vast_flatbuf.tabular.ListProjectionsResponse import (
|
|
106
109
|
ListProjectionsResponse as list_projections,
|
|
107
110
|
)
|
|
108
|
-
from vast_flatbuf.tabular.ListSchemasResponse import
|
|
109
|
-
|
|
111
|
+
from vastdb.vast_flatbuf.tabular.ListSchemasResponse import (
|
|
112
|
+
ListSchemasResponse as list_schemas,
|
|
113
|
+
)
|
|
114
|
+
from vastdb.vast_flatbuf.tabular.ListTablesResponse import (
|
|
115
|
+
ListTablesResponse as list_tables,
|
|
116
|
+
)
|
|
110
117
|
|
|
111
118
|
from . import errors, util
|
|
112
119
|
from .config import BackoffConfig
|
|
@@ -787,7 +794,7 @@ def _decode_table_props(s):
|
|
|
787
794
|
return {y: _prop_coding[x][1](z) for x, y, z in triplets if z != ''}
|
|
788
795
|
|
|
789
796
|
|
|
790
|
-
TableInfo = namedtuple('TableInfo', 'name properties handle num_rows size_in_bytes num_partitions')
|
|
797
|
+
TableInfo = namedtuple('TableInfo', 'name properties handle num_rows size_in_bytes num_partitions sorting_key_enabled sorting_score write_amplification acummulative_row_insertion_count sorting_done')
|
|
791
798
|
|
|
792
799
|
|
|
793
800
|
def _parse_table_info(obj, parse_properties):
|
|
@@ -798,13 +805,21 @@ def _parse_table_info(obj, parse_properties):
|
|
|
798
805
|
used_bytes = obj.SizeInBytes()
|
|
799
806
|
num_partitions = obj.NumPartitions()
|
|
800
807
|
properties = parse_properties(properties)
|
|
801
|
-
|
|
808
|
+
sorting_key_enabled = obj.SortingKeyEnabled()
|
|
809
|
+
sorting_score_raw = obj.SortingScore()
|
|
810
|
+
write_amplification = obj.WriteAmplification()
|
|
811
|
+
acummulative_row_insertion_count = obj.AcummulativeRowInseritionCount()
|
|
812
|
+
|
|
813
|
+
sorting_score = sorting_score_raw & ((1 << 63) - 1)
|
|
814
|
+
sorting_done = bool(sorting_score_raw >> 63)
|
|
815
|
+
return TableInfo(name, properties, handle, num_rows, used_bytes, num_partitions, sorting_key_enabled,
|
|
816
|
+
sorting_score, write_amplification, acummulative_row_insertion_count, sorting_done)
|
|
802
817
|
|
|
803
818
|
|
|
804
819
|
# Results that returns from tablestats
|
|
805
820
|
|
|
806
821
|
|
|
807
|
-
TableStatsResult = namedtuple("TableStatsResult",
|
|
822
|
+
TableStatsResult = namedtuple("TableStatsResult", 'num_rows size_in_bytes is_external_rowid_alloc sorting_key_enabled sorting_score write_amplification acummulative_row_inserition_count sorting_done endpoints')
|
|
808
823
|
|
|
809
824
|
|
|
810
825
|
_RETRIABLE_EXCEPTIONS = (
|
|
@@ -962,12 +977,12 @@ class VastdbApi:
|
|
|
962
977
|
prefix += '&'.join(params_list)
|
|
963
978
|
return prefix
|
|
964
979
|
|
|
965
|
-
def _fill_common_headers(self, txid=0, client_tags=[], version_id=1):
|
|
980
|
+
def _fill_common_headers(self, txid=0, client_tags=[], version_id=1, sorting_key=[]):
|
|
966
981
|
common_headers = {
|
|
967
982
|
'tabular-txid': str(txid),
|
|
968
983
|
'tabular-api-version-id': str(version_id),
|
|
969
984
|
'tabular-client-name': 'tabular-api'
|
|
970
|
-
}
|
|
985
|
+
} | {f"tabular-sorted-column-{i}": str(k) for i, k in enumerate(sorting_key)}
|
|
971
986
|
|
|
972
987
|
return common_headers | {f'tabular-client-tags-{index}': tag for index, tag in enumerate(client_tags)}
|
|
973
988
|
|
|
@@ -1122,11 +1137,12 @@ class VastdbApi:
|
|
|
1122
1137
|
|
|
1123
1138
|
def create_table(self, bucket, schema, name, arrow_schema=None,
|
|
1124
1139
|
txid=0, client_tags=[], expected_retvals=[],
|
|
1125
|
-
create_imports_table=False, use_external_row_ids_allocation=False, table_props=None
|
|
1140
|
+
create_imports_table=False, use_external_row_ids_allocation=False, table_props=None,
|
|
1141
|
+
sorting_key=[]):
|
|
1126
1142
|
self._create_table_internal(bucket=bucket, schema=schema, name=name, arrow_schema=arrow_schema,
|
|
1127
1143
|
txid=txid, client_tags=client_tags, expected_retvals=expected_retvals,
|
|
1128
1144
|
create_imports_table=create_imports_table, use_external_row_ids_allocation=use_external_row_ids_allocation,
|
|
1129
|
-
table_props=table_props)
|
|
1145
|
+
table_props=table_props, sorting_key=sorting_key)
|
|
1130
1146
|
|
|
1131
1147
|
def create_topic(self, bucket, name, topic_partitions, expected_retvals=[],
|
|
1132
1148
|
message_timestamp_type=None, retention_ms=None, message_timestamp_after_max_ms=None,
|
|
@@ -1143,7 +1159,8 @@ class VastdbApi:
|
|
|
1143
1159
|
|
|
1144
1160
|
def _create_table_internal(self, bucket, schema, name, arrow_schema=None,
|
|
1145
1161
|
txid=0, client_tags=[], expected_retvals=[], topic_partitions=0,
|
|
1146
|
-
create_imports_table=False, use_external_row_ids_allocation=False, table_props=None
|
|
1162
|
+
create_imports_table=False, use_external_row_ids_allocation=False, table_props=None,
|
|
1163
|
+
sorting_key=[]):
|
|
1147
1164
|
"""
|
|
1148
1165
|
Create a table, use the following request
|
|
1149
1166
|
POST /bucket/schema/table?table HTTP/1.1
|
|
@@ -1160,8 +1177,7 @@ class VastdbApi:
|
|
|
1160
1177
|
The request will look like:
|
|
1161
1178
|
POST /bucket/schema/table?table&sub-table=vastdb-imported-objects HTTP/1.1
|
|
1162
1179
|
"""
|
|
1163
|
-
headers = self._fill_common_headers(txid=txid, client_tags=client_tags)
|
|
1164
|
-
|
|
1180
|
+
headers = self._fill_common_headers(txid=txid, client_tags=client_tags, sorting_key=sorting_key)
|
|
1165
1181
|
if arrow_schema is None:
|
|
1166
1182
|
arrow_schema = pa.schema([])
|
|
1167
1183
|
|
|
@@ -1204,8 +1220,16 @@ class VastdbApi:
|
|
|
1204
1220
|
num_rows = stats.NumRows()
|
|
1205
1221
|
size_in_bytes = stats.SizeInBytes()
|
|
1206
1222
|
is_external_rowid_alloc = stats.IsExternalRowidAlloc()
|
|
1223
|
+
sorting_key_enabled = stats.SortingKeyEnabled()
|
|
1224
|
+
sorting_score_raw = stats.SortingScore()
|
|
1225
|
+
write_amplification = stats.WriteAmplification()
|
|
1226
|
+
acummulative_row_inserition_count = stats.AcummulativeRowInseritionCount()
|
|
1227
|
+
|
|
1228
|
+
sorting_score = sorting_score_raw & ((1 << 63) - 1)
|
|
1229
|
+
sorting_done = bool(sorting_score_raw >> 63)
|
|
1230
|
+
|
|
1207
1231
|
endpoints = [self.url] # we cannot replace the host by a VIP address in HTTPS-based URLs
|
|
1208
|
-
return TableStatsResult(num_rows, size_in_bytes, is_external_rowid_alloc, tuple(endpoints))
|
|
1232
|
+
return TableStatsResult(num_rows, size_in_bytes, is_external_rowid_alloc, sorting_key_enabled, sorting_score, write_amplification, acummulative_row_inserition_count, sorting_done, tuple(endpoints))
|
|
1209
1233
|
|
|
1210
1234
|
def alter_topic(self, bucket, name,
|
|
1211
1235
|
new_name="", expected_retvals=[],
|
|
@@ -1222,7 +1246,7 @@ class VastdbApi:
|
|
|
1222
1246
|
table_properties=table_properties, new_name=new_name, expected_retvals=expected_retvals)
|
|
1223
1247
|
|
|
1224
1248
|
def alter_table(self, bucket, schema, name, txid=0, client_tags=[], table_properties="",
|
|
1225
|
-
new_name="", expected_retvals=[]):
|
|
1249
|
+
new_name="", expected_retvals=[], sorting_key=[]):
|
|
1226
1250
|
"""
|
|
1227
1251
|
PUT /mybucket/myschema/mytable?table HTTP/1.1
|
|
1228
1252
|
Content-Length: ContentLength
|
|
@@ -1246,7 +1270,7 @@ class VastdbApi:
|
|
|
1246
1270
|
builder.Finish(params)
|
|
1247
1271
|
alter_table_req = builder.Output()
|
|
1248
1272
|
|
|
1249
|
-
headers = self._fill_common_headers(txid=txid, client_tags=client_tags)
|
|
1273
|
+
headers = self._fill_common_headers(txid=txid, client_tags=client_tags, sorting_key=sorting_key)
|
|
1250
1274
|
headers['Content-Length'] = str(len(alter_table_req))
|
|
1251
1275
|
url_params = {'tabular-new-table-name': schema + "/" + new_name} if len(new_name) else {}
|
|
1252
1276
|
|
|
@@ -1293,8 +1317,8 @@ class VastdbApi:
|
|
|
1293
1317
|
expected_retvals=expected_retvals,
|
|
1294
1318
|
include_list_stats=include_list_stats, count_only=count_only)
|
|
1295
1319
|
|
|
1296
|
-
def
|
|
1297
|
-
|
|
1320
|
+
def _list_tables_raw(self, bucket, schema, txid=0, client_tags=[], max_keys=1000, next_key=0, name_prefix="",
|
|
1321
|
+
exact_match=False, expected_retvals=[], include_list_stats=False, count_only=False):
|
|
1298
1322
|
"""
|
|
1299
1323
|
GET /mybucket/schema_path?table HTTP/1.1
|
|
1300
1324
|
tabular-txid: TransactionId
|
|
@@ -1314,7 +1338,6 @@ class VastdbApi:
|
|
|
1314
1338
|
headers['tabular-list-count-only'] = str(count_only)
|
|
1315
1339
|
headers['tabular-include-list-stats'] = str(include_list_stats)
|
|
1316
1340
|
|
|
1317
|
-
tables = []
|
|
1318
1341
|
res = self._request(
|
|
1319
1342
|
method="GET",
|
|
1320
1343
|
url=self._url(bucket=bucket, schema=schema, command="table"),
|
|
@@ -1324,17 +1347,36 @@ class VastdbApi:
|
|
|
1324
1347
|
next_key = int(res_headers['tabular-next-key'])
|
|
1325
1348
|
is_truncated = res_headers['tabular-is-truncated'] == 'true'
|
|
1326
1349
|
lists = list_tables.GetRootAs(res.content)
|
|
1350
|
+
tables_length = lists.TablesLength()
|
|
1351
|
+
count = int(res_headers['tabular-list-count']) if 'tabular-list-count' in res_headers else tables_length
|
|
1352
|
+
return lists, is_truncated, count
|
|
1353
|
+
|
|
1354
|
+
def _list_tables_internal(self, bucket, schema, parse_properties, txid=0, client_tags=[], max_keys=1000, next_key=0, name_prefix="",
|
|
1355
|
+
exact_match=False, expected_retvals=[], include_list_stats=False, count_only=False):
|
|
1356
|
+
tables = []
|
|
1357
|
+
lists, is_truncated, count = self._list_tables_raw(bucket, schema, txid=txid, client_tags=client_tags, max_keys=max_keys,
|
|
1358
|
+
next_key=next_key, name_prefix=name_prefix, exact_match=exact_match, expected_retvals=expected_retvals,
|
|
1359
|
+
include_list_stats=include_list_stats, count_only=count_only)
|
|
1327
1360
|
bucket_name = lists.BucketName().decode()
|
|
1328
1361
|
schema_name = lists.SchemaName().decode()
|
|
1329
1362
|
if not bucket.startswith(bucket_name): # ignore snapshot name
|
|
1330
1363
|
raise ValueError(f'bucket: {bucket} did not start from {bucket_name}')
|
|
1331
1364
|
tables_length = lists.TablesLength()
|
|
1332
|
-
count = int(res_headers['tabular-list-count']) if 'tabular-list-count' in res_headers else tables_length
|
|
1333
1365
|
for i in range(tables_length):
|
|
1334
1366
|
tables.append(_parse_table_info(lists.Tables(i), parse_properties))
|
|
1335
1367
|
|
|
1336
1368
|
return bucket_name, schema_name, tables, next_key, is_truncated, count
|
|
1337
1369
|
|
|
1370
|
+
def raw_sorting_score(self, bucket, schema, txid, name):
|
|
1371
|
+
lists, _, _ = self._list_tables_raw(bucket, schema, txid=txid, exact_match=True, name_prefix=name, include_list_stats=True)
|
|
1372
|
+
bucket_name = lists.BucketName().decode()
|
|
1373
|
+
if not bucket.startswith(bucket_name): # ignore snapshot name
|
|
1374
|
+
raise ValueError(f'bucket: {bucket} did not start from {bucket_name}')
|
|
1375
|
+
tables_length = lists.TablesLength()
|
|
1376
|
+
if tables_length != 1:
|
|
1377
|
+
raise ValueError(f'table: {name} received {tables_length} response')
|
|
1378
|
+
return lists.Tables(0).SortingScore()
|
|
1379
|
+
|
|
1338
1380
|
def add_columns(self, bucket, schema, name, arrow_schema, txid=0, client_tags=[], expected_retvals=[]):
|
|
1339
1381
|
"""
|
|
1340
1382
|
Add a column to table, use the following request
|
|
@@ -1415,9 +1457,9 @@ class VastdbApi:
|
|
|
1415
1457
|
url=self._url(bucket=bucket, schema=schema, table=table, command="column"),
|
|
1416
1458
|
data=serialized_schema, headers=headers)
|
|
1417
1459
|
|
|
1418
|
-
def
|
|
1419
|
-
|
|
1420
|
-
|
|
1460
|
+
def _list_columns_internal(self, command, bucket, schema, table, txid, client_tags, max_keys, next_key,
|
|
1461
|
+
count_only, name_prefix, exact_match, expected_retvals, bc_list_internals,
|
|
1462
|
+
list_imports_table):
|
|
1421
1463
|
"""
|
|
1422
1464
|
GET /mybucket/myschema/mytable?columns HTTP/1.1
|
|
1423
1465
|
tabular-txid: TransactionId
|
|
@@ -1447,7 +1489,7 @@ class VastdbApi:
|
|
|
1447
1489
|
url_params = {'sub-table': IMPORTED_OBJECTS_TABLE_NAME} if list_imports_table else {}
|
|
1448
1490
|
res = self._request(
|
|
1449
1491
|
method="GET",
|
|
1450
|
-
url=self._url(bucket=bucket, schema=schema, table=table, command=
|
|
1492
|
+
url=self._url(bucket=bucket, schema=schema, table=table, command=command, url_params=url_params),
|
|
1451
1493
|
headers=headers)
|
|
1452
1494
|
|
|
1453
1495
|
res_headers = res.headers
|
|
@@ -1458,6 +1500,20 @@ class VastdbApi:
|
|
|
1458
1500
|
|
|
1459
1501
|
return columns, next_key, is_truncated, count
|
|
1460
1502
|
|
|
1503
|
+
def list_columns(self, bucket, schema, table, *, txid=0, client_tags=None, max_keys=None, next_key=0,
|
|
1504
|
+
count_only=False, name_prefix="", exact_match=False,
|
|
1505
|
+
expected_retvals=None, bc_list_internals=False, list_imports_table=False):
|
|
1506
|
+
return self._list_columns_internal('column', bucket, schema, table, txid, client_tags, max_keys, next_key,
|
|
1507
|
+
count_only, name_prefix, exact_match, expected_retvals, bc_list_internals,
|
|
1508
|
+
list_imports_table)
|
|
1509
|
+
|
|
1510
|
+
def list_sorted_columns(self, bucket, schema, table, *, txid=0, client_tags=None, max_keys=None, next_key=0,
|
|
1511
|
+
count_only=False, name_prefix="", exact_match=False,
|
|
1512
|
+
expected_retvals=None, bc_list_internals=False, list_imports_table=False):
|
|
1513
|
+
return self._list_columns_internal('sorted-columns', bucket, schema, table, txid, client_tags, max_keys, next_key,
|
|
1514
|
+
count_only, name_prefix, exact_match, expected_retvals, bc_list_internals,
|
|
1515
|
+
list_imports_table)
|
|
1516
|
+
|
|
1461
1517
|
def head_bucket(self, bucket_name):
|
|
1462
1518
|
"""
|
|
1463
1519
|
Reimplemented, instead of depending on boto3 for checking the existence of a bucket.
|
|
@@ -1596,7 +1652,7 @@ class VastdbApi:
|
|
|
1596
1652
|
source_files: list of (bucket_name, file_name)
|
|
1597
1653
|
"""
|
|
1598
1654
|
def import_data(self, bucket, schema, table, source_files, txid=0, client_tags=[], expected_retvals=[], case_sensitive=True,
|
|
1599
|
-
schedule_id=None, retry_count=0, blocking=True):
|
|
1655
|
+
schedule_id=None, retry_count=0, blocking=True, key_names=[]):
|
|
1600
1656
|
"""
|
|
1601
1657
|
POST /mybucket/myschema/mytable?data HTTP/1.1
|
|
1602
1658
|
Content-Length: ContentLength
|
|
@@ -1638,8 +1694,23 @@ class VastdbApi:
|
|
|
1638
1694
|
builder.PrependUOffsetTRelative(f)
|
|
1639
1695
|
|
|
1640
1696
|
files = builder.EndVector()
|
|
1697
|
+
|
|
1698
|
+
key_names_arr = []
|
|
1699
|
+
for key in key_names:
|
|
1700
|
+
kname = builder.CreateString(key)
|
|
1701
|
+
import_key_name.Start(builder)
|
|
1702
|
+
import_key_name.AddName(builder, kname)
|
|
1703
|
+
key_names_arr.append(import_key_name.End(builder))
|
|
1704
|
+
|
|
1705
|
+
tabular_import_data.StartKeyNamesVector(builder, len(key_names_arr))
|
|
1706
|
+
for key in reversed(key_names_arr):
|
|
1707
|
+
builder.PrependUOffsetTRelative(key)
|
|
1708
|
+
|
|
1709
|
+
key_names_vec = builder.EndVector()
|
|
1710
|
+
|
|
1641
1711
|
tabular_import_data.Start(builder)
|
|
1642
1712
|
tabular_import_data.AddS3Files(builder, files)
|
|
1713
|
+
tabular_import_data.AddKeyNames(builder, key_names_vec)
|
|
1643
1714
|
params = tabular_import_data.End(builder)
|
|
1644
1715
|
builder.Finish(params)
|
|
1645
1716
|
import_req = builder.Output()
|
|
@@ -1953,6 +2024,49 @@ class QueryDataInternalError(Exception):
|
|
|
1953
2024
|
pass
|
|
1954
2025
|
|
|
1955
2026
|
|
|
2027
|
+
def read_first_batch(fileobj):
|
|
2028
|
+
readers = {} # {stream_id: pa.ipc.RecordBatchStreamReader}
|
|
2029
|
+
while True:
|
|
2030
|
+
stream_id_bytes = fileobj.read(4)
|
|
2031
|
+
if not stream_id_bytes:
|
|
2032
|
+
if readers:
|
|
2033
|
+
raise EOFError(f'no readers ({readers}) should be open at EOF')
|
|
2034
|
+
break
|
|
2035
|
+
|
|
2036
|
+
stream_id, = struct.unpack('<L', stream_id_bytes)
|
|
2037
|
+
if stream_id == TABULAR_KEEP_ALIVE_STREAM_ID:
|
|
2038
|
+
continue
|
|
2039
|
+
|
|
2040
|
+
if stream_id == TABULAR_QUERY_DATA_COMPLETED_STREAM_ID:
|
|
2041
|
+
# read the terminating end chunk from socket
|
|
2042
|
+
res = fileobj.read()
|
|
2043
|
+
_logger.debug("stream_id=%d res=%s (finish)", stream_id, res)
|
|
2044
|
+
return None
|
|
2045
|
+
|
|
2046
|
+
if stream_id == TABULAR_QUERY_DATA_FAILED_STREAM_ID:
|
|
2047
|
+
# read the terminating end chunk from socket
|
|
2048
|
+
res = fileobj.read()
|
|
2049
|
+
_logger.debug("stream_id=%d res=%s (failed)", stream_id, res)
|
|
2050
|
+
raise QueryDataInternalError() # connection closed by server due to an internal error
|
|
2051
|
+
|
|
2052
|
+
next_row_id_bytes = fileobj.read(8)
|
|
2053
|
+
next_row_id, = struct.unpack('<Q', next_row_id_bytes)
|
|
2054
|
+
_logger.debug("stream_id=%d next_row_id=%d", stream_id, next_row_id)
|
|
2055
|
+
|
|
2056
|
+
if stream_id not in readers:
|
|
2057
|
+
# we implicitly read 1st message (Arrow schema) when constructing RecordBatchStreamReader
|
|
2058
|
+
reader = pa.ipc.RecordBatchStreamReader(fileobj)
|
|
2059
|
+
_logger.debug("stream_id=%d schema=%s", stream_id, reader.schema)
|
|
2060
|
+
readers[stream_id] = reader
|
|
2061
|
+
continue
|
|
2062
|
+
|
|
2063
|
+
reader = readers[stream_id]
|
|
2064
|
+
try:
|
|
2065
|
+
return reader.read_next_batch() # read single-column chunk data
|
|
2066
|
+
except StopIteration: # we got an end-of-stream IPC message for a given stream ID
|
|
2067
|
+
return None
|
|
2068
|
+
|
|
2069
|
+
|
|
1956
2070
|
def _iter_query_data_response_columns(fileobj, stream_ids=None):
|
|
1957
2071
|
readers = {} # {stream_id: pa.ipc.RecordBatchStreamReader}
|
|
1958
2072
|
while True:
|
|
@@ -10,11 +10,11 @@ log = logging.getLogger(__name__)
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
@pytest.mark.benchmark
|
|
13
|
-
def test_bench(session,
|
|
13
|
+
def test_bench(session, test_bucket_name, parquets_path, crater_path):
|
|
14
14
|
files = [str(parquets_path / f) for f in (parquets_path.glob('**/*.pq'))]
|
|
15
15
|
|
|
16
16
|
with session.transaction() as tx:
|
|
17
|
-
b = tx.bucket(
|
|
17
|
+
b = tx.bucket(test_bucket_name)
|
|
18
18
|
s = b.create_schema('s1')
|
|
19
19
|
t = util.create_table_from_files(s, 't1', files, config=ImportConfig(import_concurrency=8))
|
|
20
20
|
config = QueryConfig(num_splits=8, num_sub_splits=4)
|
|
@@ -17,6 +17,7 @@ class HttpStatus(Enum):
|
|
|
17
17
|
INTERNAL_SERVER_ERROR = 500
|
|
18
18
|
NOT_IMPLEMENTED = 501
|
|
19
19
|
SERVICE_UNAVAILABLE = 503
|
|
20
|
+
INSUFFICIENT_CAPACITY = 507
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
log = logging.getLogger(__name__)
|
|
@@ -79,6 +80,10 @@ class UnexpectedError(HttpError):
|
|
|
79
80
|
pass
|
|
80
81
|
|
|
81
82
|
|
|
83
|
+
class InsufficientCapacity(HttpError):
|
|
84
|
+
pass
|
|
85
|
+
|
|
86
|
+
|
|
82
87
|
@dataclass
|
|
83
88
|
class ImportFilesError(Exception):
|
|
84
89
|
message: str
|
|
@@ -197,6 +202,7 @@ ERROR_TYPES_MAP = {
|
|
|
197
202
|
HttpStatus.INTERNAL_SERVER_ERROR: InternalServerError,
|
|
198
203
|
HttpStatus.NOT_IMPLEMENTED: NotImplemented,
|
|
199
204
|
HttpStatus.SERVICE_UNAVAILABLE: handle_unavailable,
|
|
205
|
+
HttpStatus.INSUFFICIENT_CAPACITY: InsufficientCapacity,
|
|
200
206
|
}
|
|
201
207
|
|
|
202
208
|
|
|
@@ -13,6 +13,7 @@ class Features:
|
|
|
13
13
|
def __init__(self, vast_version):
|
|
14
14
|
"""Save the server version."""
|
|
15
15
|
self.vast_version = vast_version
|
|
16
|
+
log.info("VAST version: %s", self.vast_version)
|
|
16
17
|
|
|
17
18
|
self.check_imports_table = self._check(
|
|
18
19
|
"Imported objects' table feature requires 5.2+ VAST release",
|
|
@@ -30,6 +31,14 @@ class Features:
|
|
|
30
31
|
"External row IDs allocation requires 5.1+ VAST release",
|
|
31
32
|
vast_version >= (5, 1))
|
|
32
33
|
|
|
34
|
+
self.check_elysium = self._check(
|
|
35
|
+
"Elysium requires 5.3.5+ VAST release",
|
|
36
|
+
vast_version >= (5, 3)) # TODO: make this validation stricter for v5.4 (beta/poc version is 5.3.0.x)
|
|
37
|
+
|
|
38
|
+
self.check_zip_import = self._check(
|
|
39
|
+
"Zip import requires 5.3.1+ VAST release",
|
|
40
|
+
vast_version >= (5, 3, 1))
|
|
41
|
+
|
|
33
42
|
def _check(self, msg, supported):
|
|
34
43
|
log.debug("%s (current version is %s): supported=%s", msg, self.vast_version, supported)
|
|
35
44
|
if not supported:
|
|
@@ -76,7 +76,8 @@ class Schema:
|
|
|
76
76
|
break
|
|
77
77
|
return result
|
|
78
78
|
|
|
79
|
-
def create_table(self, table_name: str, columns: pa.Schema, fail_if_exists=True,
|
|
79
|
+
def create_table(self, table_name: str, columns: pa.Schema, fail_if_exists=True,
|
|
80
|
+
use_external_row_ids_allocation=False, sorting_key=[]) -> "Table":
|
|
80
81
|
"""Create a new table under this schema.
|
|
81
82
|
|
|
82
83
|
A virtual `vastdb_rowid` column (of `int64` type) can be created to access and filter by internal VAST row IDs.
|
|
@@ -91,7 +92,8 @@ class Schema:
|
|
|
91
92
|
self.tx._rpc.features.check_external_row_ids_allocation()
|
|
92
93
|
|
|
93
94
|
self.tx._rpc.api.create_table(self.bucket.name, self.name, table_name, columns, txid=self.tx.txid,
|
|
94
|
-
use_external_row_ids_allocation=use_external_row_ids_allocation
|
|
95
|
+
use_external_row_ids_allocation=use_external_row_ids_allocation,
|
|
96
|
+
sorting_key=sorting_key)
|
|
95
97
|
log.info("Created table: %s", table_name)
|
|
96
98
|
return self.table(table_name) # type: ignore[return-value]
|
|
97
99
|
|
|
@@ -149,4 +151,4 @@ class Schema:
|
|
|
149
151
|
|
|
150
152
|
|
|
151
153
|
def _parse_table_info(table_info, schema: "schema.Schema"):
|
|
152
|
-
return table.Table(name=table_info.name, schema=schema, handle=int(table_info.handle), _imports_table=False)
|
|
154
|
+
return table.Table(name=table_info.name, schema=schema, handle=int(table_info.handle), _imports_table=False, sorted_table=table_info.sorting_key_enabled)
|