Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ydb-api-protos
571 changes: 375 additions & 196 deletions ydb/_grpc/v3/protos/ydb_table_pb2.py

Large diffs are not rendered by default.

396 changes: 201 additions & 195 deletions ydb/_grpc/v4/protos/ydb_table_pb2.py

Large diffs are not rendered by default.

30 changes: 28 additions & 2 deletions ydb/_grpc/v4/protos/ydb_table_pb2.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -607,6 +607,12 @@ class DropTableResponse(_message.Message):
operation: _ydb_operation_pb2.Operation
def __init__(self, operation: _Optional[_Union[_ydb_operation_pb2.Operation, _Mapping]] = ...) -> None: ...

class EvictionToExternalStorageSettings(_message.Message):
__slots__ = ["storage"]
STORAGE_FIELD_NUMBER: _ClassVar[int]
storage: str
def __init__(self, storage: _Optional[str] = ...) -> None: ...

class ExecuteDataQueryRequest(_message.Message):
__slots__ = ["collect_stats", "operation_params", "parameters", "query", "query_cache_policy", "session_id", "tx_control"]
class ParametersEntry(_message.Message):
Expand Down Expand Up @@ -1340,6 +1346,12 @@ class TableStats(_message.Message):
store_size: int
def __init__(self, partition_stats: _Optional[_Iterable[_Union[PartitionStats, _Mapping]]] = ..., rows_estimate: _Optional[int] = ..., store_size: _Optional[int] = ..., partitions: _Optional[int] = ..., creation_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., modification_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...

class TieredModeSettings(_message.Message):
__slots__ = ["tiers"]
TIERS_FIELD_NUMBER: _ClassVar[int]
tiers: _containers.RepeatedCompositeFieldContainer[TtlTier]
def __init__(self, tiers: _Optional[_Iterable[_Union[TtlTier, _Mapping]]] = ...) -> None: ...

class TransactionControl(_message.Message):
__slots__ = ["begin_tx", "commit_tx", "tx_id"]
BEGIN_TX_FIELD_NUMBER: _ClassVar[int]
Expand Down Expand Up @@ -1369,14 +1381,28 @@ class TransactionSettings(_message.Message):
def __init__(self, serializable_read_write: _Optional[_Union[SerializableModeSettings, _Mapping]] = ..., online_read_only: _Optional[_Union[OnlineModeSettings, _Mapping]] = ..., stale_read_only: _Optional[_Union[StaleModeSettings, _Mapping]] = ..., snapshot_read_only: _Optional[_Union[SnapshotModeSettings, _Mapping]] = ...) -> None: ...

class TtlSettings(_message.Message):
__slots__ = ["date_type_column", "run_interval_seconds", "value_since_unix_epoch"]
__slots__ = ["date_type_column", "run_interval_seconds", "tiered_ttl", "value_since_unix_epoch"]
DATE_TYPE_COLUMN_FIELD_NUMBER: _ClassVar[int]
RUN_INTERVAL_SECONDS_FIELD_NUMBER: _ClassVar[int]
TIERED_TTL_FIELD_NUMBER: _ClassVar[int]
VALUE_SINCE_UNIX_EPOCH_FIELD_NUMBER: _ClassVar[int]
date_type_column: DateTypeColumnModeSettings
run_interval_seconds: int
tiered_ttl: TieredModeSettings
value_since_unix_epoch: ValueSinceUnixEpochModeSettings
def __init__(self, date_type_column: _Optional[_Union[DateTypeColumnModeSettings, _Mapping]] = ..., value_since_unix_epoch: _Optional[_Union[ValueSinceUnixEpochModeSettings, _Mapping]] = ..., tiered_ttl: _Optional[_Union[TieredModeSettings, _Mapping]] = ..., run_interval_seconds: _Optional[int] = ...) -> None: ...

class TtlTier(_message.Message):
__slots__ = ["date_type_column", "delete", "evict_to_external_storage", "value_since_unix_epoch"]
DATE_TYPE_COLUMN_FIELD_NUMBER: _ClassVar[int]
DELETE_FIELD_NUMBER: _ClassVar[int]
EVICT_TO_EXTERNAL_STORAGE_FIELD_NUMBER: _ClassVar[int]
VALUE_SINCE_UNIX_EPOCH_FIELD_NUMBER: _ClassVar[int]
date_type_column: DateTypeColumnModeSettings
delete: _empty_pb2.Empty
evict_to_external_storage: EvictionToExternalStorageSettings
value_since_unix_epoch: ValueSinceUnixEpochModeSettings
def __init__(self, date_type_column: _Optional[_Union[DateTypeColumnModeSettings, _Mapping]] = ..., value_since_unix_epoch: _Optional[_Union[ValueSinceUnixEpochModeSettings, _Mapping]] = ..., run_interval_seconds: _Optional[int] = ...) -> None: ...
def __init__(self, date_type_column: _Optional[_Union[DateTypeColumnModeSettings, _Mapping]] = ..., value_since_unix_epoch: _Optional[_Union[ValueSinceUnixEpochModeSettings, _Mapping]] = ..., delete: _Optional[_Union[_empty_pb2.Empty, _Mapping]] = ..., evict_to_external_storage: _Optional[_Union[EvictionToExternalStorageSettings, _Mapping]] = ...) -> None: ...

class ValueSinceUnixEpochModeSettings(_message.Message):
__slots__ = ["column_name", "column_unit", "expire_after_seconds"]
Expand Down
396 changes: 201 additions & 195 deletions ydb/_grpc/v5/protos/ydb_table_pb2.py

Large diffs are not rendered by default.

30 changes: 28 additions & 2 deletions ydb/_grpc/v5/protos/ydb_table_pb2.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -607,6 +607,12 @@ class DropTableResponse(_message.Message):
operation: _ydb_operation_pb2.Operation
def __init__(self, operation: _Optional[_Union[_ydb_operation_pb2.Operation, _Mapping]] = ...) -> None: ...

class EvictionToExternalStorageSettings(_message.Message):
__slots__ = ["storage"]
STORAGE_FIELD_NUMBER: _ClassVar[int]
storage: str
def __init__(self, storage: _Optional[str] = ...) -> None: ...

class ExecuteDataQueryRequest(_message.Message):
__slots__ = ["collect_stats", "operation_params", "parameters", "query", "query_cache_policy", "session_id", "tx_control"]
class ParametersEntry(_message.Message):
Expand Down Expand Up @@ -1340,6 +1346,12 @@ class TableStats(_message.Message):
store_size: int
def __init__(self, partition_stats: _Optional[_Iterable[_Union[PartitionStats, _Mapping]]] = ..., rows_estimate: _Optional[int] = ..., store_size: _Optional[int] = ..., partitions: _Optional[int] = ..., creation_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., modification_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...

class TieredModeSettings(_message.Message):
__slots__ = ["tiers"]
TIERS_FIELD_NUMBER: _ClassVar[int]
tiers: _containers.RepeatedCompositeFieldContainer[TtlTier]
def __init__(self, tiers: _Optional[_Iterable[_Union[TtlTier, _Mapping]]] = ...) -> None: ...

class TransactionControl(_message.Message):
__slots__ = ["begin_tx", "commit_tx", "tx_id"]
BEGIN_TX_FIELD_NUMBER: _ClassVar[int]
Expand Down Expand Up @@ -1369,14 +1381,28 @@ class TransactionSettings(_message.Message):
def __init__(self, serializable_read_write: _Optional[_Union[SerializableModeSettings, _Mapping]] = ..., online_read_only: _Optional[_Union[OnlineModeSettings, _Mapping]] = ..., stale_read_only: _Optional[_Union[StaleModeSettings, _Mapping]] = ..., snapshot_read_only: _Optional[_Union[SnapshotModeSettings, _Mapping]] = ...) -> None: ...

class TtlSettings(_message.Message):
__slots__ = ["date_type_column", "run_interval_seconds", "value_since_unix_epoch"]
__slots__ = ["date_type_column", "run_interval_seconds", "tiered_ttl", "value_since_unix_epoch"]
DATE_TYPE_COLUMN_FIELD_NUMBER: _ClassVar[int]
RUN_INTERVAL_SECONDS_FIELD_NUMBER: _ClassVar[int]
TIERED_TTL_FIELD_NUMBER: _ClassVar[int]
VALUE_SINCE_UNIX_EPOCH_FIELD_NUMBER: _ClassVar[int]
date_type_column: DateTypeColumnModeSettings
run_interval_seconds: int
tiered_ttl: TieredModeSettings
value_since_unix_epoch: ValueSinceUnixEpochModeSettings
def __init__(self, date_type_column: _Optional[_Union[DateTypeColumnModeSettings, _Mapping]] = ..., value_since_unix_epoch: _Optional[_Union[ValueSinceUnixEpochModeSettings, _Mapping]] = ..., tiered_ttl: _Optional[_Union[TieredModeSettings, _Mapping]] = ..., run_interval_seconds: _Optional[int] = ...) -> None: ...

class TtlTier(_message.Message):
__slots__ = ["date_type_column", "delete", "evict_to_external_storage", "value_since_unix_epoch"]
DATE_TYPE_COLUMN_FIELD_NUMBER: _ClassVar[int]
DELETE_FIELD_NUMBER: _ClassVar[int]
EVICT_TO_EXTERNAL_STORAGE_FIELD_NUMBER: _ClassVar[int]
VALUE_SINCE_UNIX_EPOCH_FIELD_NUMBER: _ClassVar[int]
date_type_column: DateTypeColumnModeSettings
delete: _empty_pb2.Empty
evict_to_external_storage: EvictionToExternalStorageSettings
value_since_unix_epoch: ValueSinceUnixEpochModeSettings
def __init__(self, date_type_column: _Optional[_Union[DateTypeColumnModeSettings, _Mapping]] = ..., value_since_unix_epoch: _Optional[_Union[ValueSinceUnixEpochModeSettings, _Mapping]] = ..., run_interval_seconds: _Optional[int] = ...) -> None: ...
def __init__(self, date_type_column: _Optional[_Union[DateTypeColumnModeSettings, _Mapping]] = ..., value_since_unix_epoch: _Optional[_Union[ValueSinceUnixEpochModeSettings, _Mapping]] = ..., delete: _Optional[_Union[_empty_pb2.Empty, _Mapping]] = ..., evict_to_external_storage: _Optional[_Union[EvictionToExternalStorageSettings, _Mapping]] = ...) -> None: ...

class ValueSinceUnixEpochModeSettings(_message.Message):
__slots__ = ["column_name", "column_unit", "expire_after_seconds"]
Expand Down
9 changes: 9 additions & 0 deletions ydb/table.py
Original file line number Diff line number Diff line change
Expand Up @@ -534,6 +534,7 @@ class TtlSettings(object):
def __init__(self):
self.date_type_column = None
self.value_since_unix_epoch = None
self.tiered_ttl = None

def with_date_type_column(self, column_name, expire_after_seconds=0):
self.date_type_column = DateTypeColumnModeSettings(column_name, expire_after_seconds)
Expand All @@ -543,13 +544,19 @@ def with_value_since_unix_epoch(self, column_name, column_unit, expire_after_sec
self.value_since_unix_epoch = ValueSinceUnixEpochModeSettings(column_name, column_unit, expire_after_seconds)
return self

def with_tiered_ttl(self, tiered_ttl):
self.tiered_ttl = tiered_ttl
return self

def to_pb(self):
pb = _apis.ydb_table.TtlSettings()

if self.date_type_column is not None:
pb.date_type_column.MergeFrom(self.date_type_column.to_pb())
elif self.value_since_unix_epoch is not None:
pb.value_since_unix_epoch.MergeFrom(self.value_since_unix_epoch.to_pb())
elif self.with_tiered_ttl is not None:
pb.tiered_ttl.MergeFrom(self.tiered_ttl.to_pb())
else:
raise RuntimeError("Unspecified ttl settings mode")

Expand Down Expand Up @@ -1608,6 +1615,8 @@ def __init__(
ColumnUnit(ttl_settings.value_since_unix_epoch.column_unit),
ttl_settings.value_since_unix_epoch.expire_after_seconds,
)
elif ttl_settings.HasField("tiered_ttl"):
self.ttl_settings = TtlSettings().with_tiered_ttl(ttl_settings.tiered_ttl)

self.table_stats = None
if table_stats is not None:
Expand Down
Loading