vastdb 0.1.4__py3-none-any.whl → 0.1.6__py3-none-any.whl
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/bench/test_perf.py +1 -2
- vastdb/bucket.py +12 -37
- vastdb/conftest.py +13 -4
- vastdb/errors.py +5 -1
- vastdb/internal_commands.py +26 -90
- vastdb/schema.py +45 -0
- vastdb/session.py +26 -10
- vastdb/table.py +48 -8
- vastdb/tests/test_imports.py +3 -3
- vastdb/tests/test_nested.py +77 -3
- vastdb/tests/test_projections.py +78 -0
- vastdb/tests/test_schemas.py +49 -0
- vastdb/tests/test_tables.py +123 -95
- vastdb/transaction.py +24 -15
- vastdb/util.py +1 -0
- {vastdb-0.1.4.dist-info → vastdb-0.1.6.dist-info}/METADATA +1 -1
- {vastdb-0.1.4.dist-info → vastdb-0.1.6.dist-info}/RECORD +20 -20
- {vastdb-0.1.4.dist-info → vastdb-0.1.6.dist-info}/LICENSE +0 -0
- {vastdb-0.1.4.dist-info → vastdb-0.1.6.dist-info}/WHEEL +0 -0
- {vastdb-0.1.4.dist-info → vastdb-0.1.6.dist-info}/top_level.txt +0 -0
vastdb/transaction.py
CHANGED
|
@@ -8,21 +8,26 @@ A transcation is used as a context manager, since every Database-related operati
|
|
|
8
8
|
|
|
9
9
|
import logging
|
|
10
10
|
from dataclasses import dataclass
|
|
11
|
-
from typing import Optional
|
|
11
|
+
from typing import TYPE_CHECKING, List, Optional
|
|
12
12
|
|
|
13
13
|
import botocore
|
|
14
14
|
|
|
15
|
-
from . import bucket, errors, schema, session
|
|
15
|
+
from . import bucket, errors, schema, session
|
|
16
|
+
|
|
17
|
+
if TYPE_CHECKING:
|
|
18
|
+
from bucket import Bucket
|
|
19
|
+
from table import Table
|
|
20
|
+
|
|
16
21
|
|
|
17
22
|
log = logging.getLogger(__name__)
|
|
18
23
|
|
|
19
|
-
|
|
24
|
+
VAST_CATALOG_BUCKET_NAME = "vast-big-catalog-bucket"
|
|
20
25
|
VAST_CATALOG_SCHEMA_NAME = 'vast_big_catalog_schema'
|
|
21
26
|
VAST_CATALOG_TABLE_NAME = 'vast_big_catalog_table'
|
|
22
27
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
28
|
+
AUDIT_LOG_BUCKET_NAME = "vast-audit-log-bucket"
|
|
29
|
+
AUDIT_LOG_SCHEMA_NAME = 'vast_audit_log_schema'
|
|
30
|
+
AUDIT_LOG_TABLE_NAME = 'vast_audit_log_table'
|
|
26
31
|
|
|
27
32
|
|
|
28
33
|
@dataclass
|
|
@@ -56,25 +61,29 @@ class Transaction:
|
|
|
56
61
|
return 'InvalidTransaction'
|
|
57
62
|
return f'Transaction(id=0x{self.txid:016x})'
|
|
58
63
|
|
|
59
|
-
def bucket(self, name: str) -> "
|
|
64
|
+
def bucket(self, name: str) -> "Bucket":
|
|
60
65
|
"""Return a VAST Bucket, if exists."""
|
|
61
66
|
try:
|
|
62
67
|
self._rpc.s3.head_bucket(Bucket=name)
|
|
63
68
|
except botocore.exceptions.ClientError as e:
|
|
64
69
|
log.warning("res: %s", e.response)
|
|
65
70
|
if e.response['Error']['Code'] == '404':
|
|
66
|
-
raise errors.MissingBucket(name)
|
|
71
|
+
raise errors.MissingBucket(name) from e
|
|
67
72
|
raise
|
|
68
73
|
return bucket.Bucket(name, self)
|
|
69
74
|
|
|
70
|
-
def
|
|
75
|
+
def catalog_snapshots(self) -> List["Bucket"]:
|
|
76
|
+
"""Return VAST Catalog bucket snapshots."""
|
|
77
|
+
return bucket.Bucket(VAST_CATALOG_BUCKET_NAME, self).snapshots()
|
|
78
|
+
|
|
79
|
+
def catalog(self, snapshot: Optional["Bucket"] = None, fail_if_missing=True) -> Optional["Table"]:
|
|
71
80
|
"""Return VAST Catalog table."""
|
|
72
|
-
b = bucket.Bucket(
|
|
81
|
+
b = snapshot or bucket.Bucket(VAST_CATALOG_BUCKET_NAME, self)
|
|
73
82
|
s = schema.Schema(VAST_CATALOG_SCHEMA_NAME, b)
|
|
74
83
|
return s.table(name=VAST_CATALOG_TABLE_NAME, fail_if_missing=fail_if_missing)
|
|
75
84
|
|
|
76
|
-
def audit_log(self, fail_if_missing=True) -> Optional["
|
|
77
|
-
"""Return VAST
|
|
78
|
-
b = bucket.Bucket(
|
|
79
|
-
s = schema.Schema(
|
|
80
|
-
return s.table(name=
|
|
85
|
+
def audit_log(self, fail_if_missing=True) -> Optional["Table"]:
|
|
86
|
+
"""Return VAST Audit Log table."""
|
|
87
|
+
b = bucket.Bucket(AUDIT_LOG_BUCKET_NAME, self)
|
|
88
|
+
s = schema.Schema(AUDIT_LOG_SCHEMA_NAME, b)
|
|
89
|
+
return s.table(name=AUDIT_LOG_TABLE_NAME, fail_if_missing=fail_if_missing)
|
vastdb/util.py
CHANGED
|
@@ -83,6 +83,7 @@ def union_schema_merge(current_schema: pa.Schema, new_schema: pa.Schema) -> pa.S
|
|
|
83
83
|
|
|
84
84
|
MAX_TABULAR_REQUEST_SIZE = 5 << 20 # in bytes
|
|
85
85
|
MAX_RECORD_BATCH_SLICE_SIZE = int(0.9 * MAX_TABULAR_REQUEST_SIZE)
|
|
86
|
+
MAX_QUERY_DATA_REQUEST_SIZE = int(0.9 * MAX_TABULAR_REQUEST_SIZE)
|
|
86
87
|
|
|
87
88
|
|
|
88
89
|
def iter_serialized_slices(batch: Union[pa.RecordBatch, pa.Table], max_rows_per_slice=None):
|
|
@@ -149,29 +149,29 @@ vast_flatbuf/tabular/S3File.py,sha256=KC9c2oS5-JXwTTriUVFdjOvRG0B54Cq9kviSDZY3NI
|
|
|
149
149
|
vast_flatbuf/tabular/VipRange.py,sha256=_BJd1RRZAcK76T9vlsHzXKYVsPVaz6WTEAqStMQCAUQ,2069
|
|
150
150
|
vast_flatbuf/tabular/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
151
151
|
vastdb/__init__.py,sha256=cMJtZuJ0IL9aKyM3DUWqTCzuP1H1MXXVivKKE1-q0DY,292
|
|
152
|
-
vastdb/bucket.py,sha256=
|
|
153
|
-
vastdb/conftest.py,sha256=
|
|
154
|
-
vastdb/errors.py,sha256=
|
|
155
|
-
vastdb/internal_commands.py,sha256=
|
|
156
|
-
vastdb/schema.py,sha256=
|
|
157
|
-
vastdb/session.py,sha256=
|
|
158
|
-
vastdb/table.py,sha256=
|
|
159
|
-
vastdb/transaction.py,sha256=
|
|
160
|
-
vastdb/util.py,sha256=
|
|
152
|
+
vastdb/bucket.py,sha256=T0qX8efIJsQvK8Zn1_B-Np6BZqu_i9IuU3aN3JE7kyQ,2536
|
|
153
|
+
vastdb/conftest.py,sha256=D4RvOhGvMQy-JliKY-uyzcB-_mFBwI6aMF__xwHiwOM,2359
|
|
154
|
+
vastdb/errors.py,sha256=nC7d05xwe0WxMFyM3cEEqIvA09OXNqcxiUGsKov822I,4098
|
|
155
|
+
vastdb/internal_commands.py,sha256=r8EjueIaqSkdiqV6Cv7YsCiuuTO7rMCshyGExeBnXVw,97586
|
|
156
|
+
vastdb/schema.py,sha256=ro4GrVlhJEN4HT8qLdyPtiufVZrNBPGtej-z6Y-v2jg,5642
|
|
157
|
+
vastdb/session.py,sha256=zuy0wjKKB8d388KgRA77vQwxoraU0tWZacqVVMrU5dU,2984
|
|
158
|
+
vastdb/table.py,sha256=JZeAqww6dBlhXWW7J-LqC54a5IH2Dl8GTne3hU3wL2I,30646
|
|
159
|
+
vastdb/transaction.py,sha256=6mCnd43uF9AJyhhUZViD799Mde6AczBi5Cp7LGGDuoM,3178
|
|
160
|
+
vastdb/util.py,sha256=vt4LWROOFdZieJXLpQMlcnF7YWQFpPqQTVaRbmQ241o,4342
|
|
161
161
|
vastdb/bench/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
162
|
-
vastdb/bench/test_perf.py,sha256=
|
|
162
|
+
vastdb/bench/test_perf.py,sha256=yn5gE7t_nzmJHBl9bCs1hxQOgzhvFphuYElsWGko8ts,1084
|
|
163
163
|
vastdb/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
164
164
|
vastdb/tests/test_duckdb.py,sha256=KDuv4PrjGEwChCGHG36xNT2JiFlBOt6K3DQ3L06Kq-A,1913
|
|
165
|
-
vastdb/tests/test_imports.py,sha256=
|
|
166
|
-
vastdb/tests/test_nested.py,sha256=
|
|
167
|
-
vastdb/tests/test_projections.py,sha256=
|
|
165
|
+
vastdb/tests/test_imports.py,sha256=xKub3-bisFjH0BsZM8COfiUWuMrtoOoQKprF6VQT9RI,5669
|
|
166
|
+
vastdb/tests/test_nested.py,sha256=22NAxBTm7Aq-Vn6AIYbi5Cb1ET8W0XeLK3pp4D8BYWI,3448
|
|
167
|
+
vastdb/tests/test_projections.py,sha256=11a-55VbJcqaFPkOKaKDEdM5nkeI0xtUhh6cQc1upSA,4223
|
|
168
168
|
vastdb/tests/test_sanity.py,sha256=ixx0QPo73hLHjAa7bByFXjS1XST0WvmSwLEpgnHh_JY,2960
|
|
169
|
-
vastdb/tests/test_schemas.py,sha256=
|
|
170
|
-
vastdb/tests/test_tables.py,sha256=
|
|
169
|
+
vastdb/tests/test_schemas.py,sha256=l70YQMlx2UL1KRQhApriiG2ZM7GJF-IzWU31H3Yqn1U,3312
|
|
170
|
+
vastdb/tests/test_tables.py,sha256=V1-WOxCOD8ELJF6Ebj57Jwtum7Z6iYG9JKo89HxC7rM,28342
|
|
171
171
|
vastdb/tests/test_util.py,sha256=owRAU3TCKMq-kz54NRdA5wX2O_bZIHqG5ucUR77jm5k,1046
|
|
172
172
|
vastdb/tests/util.py,sha256=dpRJYbboDnlqL4qIdvScpp8--5fxRUBIcIYitrfcj9o,555
|
|
173
|
-
vastdb-0.1.
|
|
174
|
-
vastdb-0.1.
|
|
175
|
-
vastdb-0.1.
|
|
176
|
-
vastdb-0.1.
|
|
177
|
-
vastdb-0.1.
|
|
173
|
+
vastdb-0.1.6.dist-info/LICENSE,sha256=obffan7LYrq7hLHNrY7vHcn2pKUTBUYXMKu-VOAvDxU,11333
|
|
174
|
+
vastdb-0.1.6.dist-info/METADATA,sha256=ibcsckhsDh4iGEN0xjK1_-FUrB24hNbwz9eAouRE6kY,1350
|
|
175
|
+
vastdb-0.1.6.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
176
|
+
vastdb-0.1.6.dist-info/top_level.txt,sha256=Vsj2MKtlhPg0J4so64slQtnwjhgoPmJgcG-6YcVAwVc,20
|
|
177
|
+
vastdb-0.1.6.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|