From 1707132c2101a78de21ba06eaf77aa8b8a2887cb Mon Sep 17 00:00:00 2001 From: ugol Date: Fri, 24 Apr 2026 12:18:35 +0200 Subject: [PATCH] simplified validators code in config --- src/config.py | 694 ++++++++------------------------------------------ 1 file changed, 102 insertions(+), 592 deletions(-) diff --git a/src/config.py b/src/config.py index 1ac54fa225..d7ddc3fb9b 100644 --- a/src/config.py +++ b/src/config.py @@ -17,14 +17,55 @@ # Type for worker process parameters that must be >= 2 WorkerProcessInt = Annotated[int, Field(ge=2)] +# Generic PostgreSQL numeric ranges +PgIntMax = Annotated[int, Field(ge=0, le=2147483647)] +PgPositiveIntMax = Annotated[int, Field(ge=1, le=2147483647)] +PgSignedIntMax = Annotated[int, Field(ge=-1, le=2147483647)] +PercentFloat = Annotated[float, Field(ge=0, le=100)] +UnitIntervalFloat = Annotated[float, Field(ge=0, le=1)] +PgHugeFloat = Annotated[float, Field(ge=0, le=1.80e308)] +PgSignedHugeFloat = Annotated[float, Field(ge=-1, le=1.80e308)] + +# Reusable bounded ranges +AuthTimeoutInt = Annotated[int, Field(ge=1, le=600)] +MaxLocksPerTransactionInt = Annotated[int, Field(ge=64, le=2147483647)] +MaintenanceWorkMemInt = Annotated[int, Field(ge=1024, le=2147483647)] +MaxPreparedTransactionsInt = Annotated[int, Field(ge=0, le=262143)] +SharedBuffersInt = Annotated[int, Field(ge=16, le=1073741823)] +TempBuffersInt = Annotated[int, Field(ge=100, le=1073741823)] +WorkMemInt = Annotated[int, Field(ge=64, le=2147483647)] +StatisticsTargetInt = Annotated[int, Field(ge=1, le=10000)] +ExtraFloatDigitsInt = Annotated[int, Field(ge=-15, le=3)] +GeqoEffortInt = Annotated[int, Field(ge=1, le=10)] +GeqoThresholdInt = Annotated[int, Field(ge=2, le=2147483647)] +GeqoSeedFloat = Annotated[float, Field(ge=0, le=1)] +GeqoSelectionBiasFloat = Annotated[float, Field(ge=1.5, le=2)] +ParallelScanSizeInt = Annotated[int, Field(ge=0, le=715827882)] +OldSnapshotThresholdInt = Annotated[int, Field(ge=-1, le=86400)] +BgwriterLruMaxpagesInt = Annotated[int, Field(ge=0, le=1073741823)] +BgwriterLruMultiplierFloat = Annotated[float, Field(ge=0, le=10)] +TrackActivityQuerySizeInt = Annotated[int, Field(ge=100, le=1048576)] +GinPendingListLimitInt = Annotated[int, Field(ge=64, le=2147483647)] +AutoVacuumCostDelayFloat = Annotated[float, Field(ge=-1, le=100)] +AutoVacuumCostLimitInt = Annotated[int, Field(ge=-1, le=10000)] +VacuumCostDelayFloat = Annotated[float, Field(ge=0, le=100)] +VacuumCostLimitInt = Annotated[int, Field(ge=1, le=10000)] +VacuumCostInt = Annotated[int, Field(ge=0, le=10000)] +FreezeMaxAgeInt = Annotated[int, Field(ge=100000, le=2000000000)] +FreezeTableAgeInt = Annotated[int, Field(ge=0, le=2000000000)] +FailsafeAgeInt = Annotated[int, Field(ge=0, le=2100000000)] +FreezeMinAgeInt = Annotated[int, Field(ge=0, le=1000000000)] +AutovacuumNapTimeInt = Annotated[int, Field(ge=1, le=2147483)] +DeadlockTimeoutInt = Annotated[int, Field(ge=1, le=2147483647)] + class CharmConfig(BaseConfigModel): """Manager for the structured configuration.""" synchronous_node_count: Literal["all", "majority"] | PositiveInt synchronous_mode_strict: bool = Field(default=True) - connection_authentication_timeout: int | None - connection_statement_timeout: int | None + connection_authentication_timeout: AuthTimeoutInt | None + connection_statement_timeout: PgIntMax | None cpu_max_logical_replication_workers: Literal["auto"] | WorkerProcessInt | None cpu_max_parallel_maintenance_workers: Literal["auto"] | WorkerProcessInt | None cpu_max_parallel_workers: Literal["auto"] | WorkerProcessInt | None @@ -34,10 +75,10 @@ class CharmConfig(BaseConfigModel): cpu_wal_compression: bool | None durability_maximum_lag_on_failover: NonNegativeInt | None durability_synchronous_commit: str | None - durability_wal_keep_size: int | None + durability_wal_keep_size: PgIntMax | None experimental_max_connections: int | None instance_default_text_search_config: str | None - instance_max_locks_per_transaction: int | None + instance_max_locks_per_transaction: MaxLocksPerTransactionInt | None instance_password_encryption: str | None instance_synchronize_seqscans: bool | None ldap_map: str | None @@ -46,19 +87,19 @@ class CharmConfig(BaseConfigModel): logging_log_connections: bool | None logging_log_disconnections: bool | None logging_log_lock_waits: bool | None - logging_log_min_duration_statement: int | None + logging_log_min_duration_statement: PgSignedIntMax | None logging_track_functions: str | None - memory_maintenance_work_mem: int | None - memory_max_prepared_transactions: int | None - memory_shared_buffers: int | None - memory_temp_buffers: int | None - memory_work_mem: int | None + memory_maintenance_work_mem: MaintenanceWorkMemInt | None + memory_max_prepared_transactions: MaxPreparedTransactionsInt | None + memory_shared_buffers: SharedBuffersInt | None + memory_temp_buffers: TempBuffersInt | None + memory_work_mem: WorkMemInt | None optimizer_constraint_exclusion: str | None - optimizer_cpu_index_tuple_cost: float | None - optimizer_cpu_operator_cost: float | None - optimizer_cpu_tuple_cost: float | None - optimizer_cursor_tuple_fraction: float | None - optimizer_default_statistics_target: int | None + optimizer_cpu_index_tuple_cost: PgHugeFloat | None + optimizer_cpu_operator_cost: PgHugeFloat | None + optimizer_cpu_tuple_cost: PgHugeFloat | None + optimizer_cursor_tuple_fraction: UnitIntervalFloat | None + optimizer_default_statistics_target: StatisticsTargetInt | None optimizer_enable_async_append: bool | None optimizer_enable_bitmapscan: bool | None optimizer_enable_gathermerge: bool | None @@ -79,23 +120,23 @@ class CharmConfig(BaseConfigModel): optimizer_enable_seqscan: bool | None optimizer_enable_sort: bool | None optimizer_enable_tidscan: bool | None - optimizer_from_collapse_limit: int | None + optimizer_from_collapse_limit: PgPositiveIntMax | None optimizer_geqo: bool | None - optimizer_geqo_effort: int | None - optimizer_geqo_generations: int | None - optimizer_geqo_pool_size: int | None - optimizer_geqo_seed: float | None - optimizer_geqo_selection_bias: float | None - optimizer_geqo_threshold: int | None + optimizer_geqo_effort: GeqoEffortInt | None + optimizer_geqo_generations: PgIntMax | None + optimizer_geqo_pool_size: PgIntMax | None + optimizer_geqo_seed: GeqoSeedFloat | None + optimizer_geqo_selection_bias: GeqoSelectionBiasFloat | None + optimizer_geqo_threshold: GeqoThresholdInt | None optimizer_jit: bool | None - optimizer_jit_above_cost: float | None - optimizer_jit_inline_above_cost: float | None - optimizer_jit_optimize_above_cost: float | None - optimizer_join_collapse_limit: int | None - optimizer_min_parallel_index_scan_size: int | None - optimizer_min_parallel_table_scan_size: int | None - optimizer_parallel_setup_cost: float | None - optimizer_parallel_tuple_cost: float | None + optimizer_jit_above_cost: PgSignedHugeFloat | None + optimizer_jit_inline_above_cost: PgSignedHugeFloat | None + optimizer_jit_optimize_above_cost: PgSignedHugeFloat | None + optimizer_join_collapse_limit: PgPositiveIntMax | None + optimizer_min_parallel_index_scan_size: ParallelScanSizeInt | None + optimizer_min_parallel_table_scan_size: ParallelScanSizeInt | None + optimizer_parallel_setup_cost: PgHugeFloat | None + optimizer_parallel_tuple_cost: PgHugeFloat | None optimizer_pg_stat_statements_track: Literal["none", "top", "all"] optimizer_pg_stat_statements_track_utility: bool optimizer_pg_stat_statements_save: bool @@ -160,53 +201,53 @@ class CharmConfig(BaseConfigModel): request_array_nulls: bool | None request_backslash_quote: str | None request_date_style: str | None - request_deadlock_timeout: int | None + request_deadlock_timeout: DeadlockTimeoutInt | None request_default_transaction_deferrable: bool | None request_default_transaction_isolation: str | None request_default_transaction_read_only: bool | None request_escape_string_warning: bool | None - request_lock_timeout: int | None + request_lock_timeout: PgIntMax | None request_standard_conforming_strings: bool | None request_time_zone: str | None - request_track_activity_query_size: int | None + request_track_activity_query_size: TrackActivityQuerySizeInt | None request_transform_null_equals: bool | None request_xmlbinary: str | None request_xmloption: str | None response_bytea_output: str | None response_exit_on_error: bool | None - response_extra_float_digits: float | None - response_gin_fuzzy_search_limit: int | None + response_extra_float_digits: ExtraFloatDigitsInt | None + response_gin_fuzzy_search_limit: PgIntMax | None response_lc_monetary: Literal[tuple(SNAP_LOCALES)] | None response_lc_numeric: Literal[tuple(SNAP_LOCALES)] | None response_lc_time: Literal[tuple(SNAP_LOCALES)] | None - session_idle_in_transaction_session_timeout: int | None - storage_bgwriter_lru_maxpages: int | None - storage_bgwriter_lru_multiplier: float | None + session_idle_in_transaction_session_timeout: PgIntMax | None + storage_bgwriter_lru_maxpages: BgwriterLruMaxpagesInt | None + storage_bgwriter_lru_multiplier: BgwriterLruMultiplierFloat | None storage_default_table_access_method: str | None - storage_gin_pending_list_limit: int | None + storage_gin_pending_list_limit: GinPendingListLimitInt | None storage_hot_standby_feedback: bool | None - storage_old_snapshot_threshold: int | None - vacuum_autovacuum_analyze_scale_factor: float | None - vacuum_autovacuum_analyze_threshold: int | None - vacuum_autovacuum_freeze_max_age: int | None - vacuum_autovacuum_naptime: int | None - vacuum_autovacuum_vacuum_cost_delay: float | None - vacuum_autovacuum_vacuum_cost_limit: int | None - vacuum_autovacuum_vacuum_insert_scale_factor: float | None - vacuum_autovacuum_vacuum_insert_threshold: int | None - vacuum_autovacuum_vacuum_scale_factor: float | None - vacuum_autovacuum_vacuum_threshold: int | None - vacuum_vacuum_cost_delay: float | None - vacuum_vacuum_cost_limit: int | None - vacuum_vacuum_cost_page_dirty: int | None - vacuum_vacuum_cost_page_hit: int | None - vacuum_vacuum_cost_page_miss: int | None - vacuum_vacuum_failsafe_age: int | None - vacuum_vacuum_freeze_min_age: int | None - vacuum_vacuum_freeze_table_age: int | None - vacuum_vacuum_multixact_failsafe_age: int | None - vacuum_vacuum_multixact_freeze_min_age: int | None - vacuum_vacuum_multixact_freeze_table_age: int | None + storage_old_snapshot_threshold: OldSnapshotThresholdInt | None + vacuum_autovacuum_analyze_scale_factor: PercentFloat | None + vacuum_autovacuum_analyze_threshold: PgIntMax | None + vacuum_autovacuum_freeze_max_age: FreezeMaxAgeInt | None + vacuum_autovacuum_naptime: AutovacuumNapTimeInt | None + vacuum_autovacuum_vacuum_cost_delay: AutoVacuumCostDelayFloat | None + vacuum_autovacuum_vacuum_cost_limit: AutoVacuumCostLimitInt | None + vacuum_autovacuum_vacuum_insert_scale_factor: PercentFloat | None + vacuum_autovacuum_vacuum_insert_threshold: PgSignedIntMax | None + vacuum_autovacuum_vacuum_scale_factor: PercentFloat | None + vacuum_autovacuum_vacuum_threshold: PgIntMax | None + vacuum_vacuum_cost_delay: VacuumCostDelayFloat | None + vacuum_vacuum_cost_limit: VacuumCostLimitInt | None + vacuum_vacuum_cost_page_dirty: VacuumCostInt | None + vacuum_vacuum_cost_page_hit: VacuumCostInt | None + vacuum_vacuum_cost_page_miss: VacuumCostInt | None + vacuum_vacuum_failsafe_age: FailsafeAgeInt | None + vacuum_vacuum_freeze_min_age: FreezeMinAgeInt | None + vacuum_vacuum_freeze_table_age: FreezeTableAgeInt | None + vacuum_vacuum_multixact_failsafe_age: FailsafeAgeInt | None + vacuum_vacuum_multixact_freeze_min_age: FreezeMinAgeInt | None + vacuum_vacuum_multixact_freeze_table_age: FreezeTableAgeInt | None @classmethod def keys(cls) -> list[str]: @@ -227,15 +268,6 @@ def durability_synchronous_commit_values(cls, value: str) -> str | None: return value - @validator("durability_wal_keep_size") - @classmethod - def durability_wal_keep_size_values(cls, value: int) -> int | None: - """Check durability_wal_keep_size config option is between 0 and 2147483647.""" - if value < 0 or value > 2147483647: - raise ValueError("Value is not between 0 and 2147483647") - - return value - @validator("instance_password_encryption") @classmethod def instance_password_encryption_values(cls, value: str) -> str | None: @@ -245,69 +277,6 @@ def instance_password_encryption_values(cls, value: str) -> str | None: return value - @validator("instance_max_locks_per_transaction") - @classmethod - def instance_max_locks_per_transaction_values(cls, value: int) -> int | None: - """Check instance_max_locks_per_transaction config option is between 64 and 2147483647.""" - if value < 64 or value > 2147483647: - raise ValueError("Value is not between 64 and 2147483647") - - return value - - @validator("logging_log_min_duration_statement") - @classmethod - def logging_log_min_duration_statement_values(cls, value: int) -> int | None: - """Check logging_log_min_duration_statement config option is between -1 and 2147483647.""" - if value < -1 or value > 2147483647: - raise ValueError("Value is not between -1 and 2147483647") - - return value - - @validator("memory_maintenance_work_mem") - @classmethod - def memory_maintenance_work_mem_values(cls, value: int) -> int | None: - """Check memory_maintenance_work_mem config option is between 1024 and 2147483647.""" - if value < 1024 or value > 2147483647: - raise ValueError("Value is not between 1024 and 2147483647") - - return value - - @validator("memory_max_prepared_transactions") - @classmethod - def memory_max_prepared_transactions_values(cls, value: int) -> int | None: - """Check memory_max_prepared_transactions config option is between 0 and 262143.""" - if value < 0 or value > 262143: - raise ValueError("Value is not between 0 and 262143") - - return value - - @validator("memory_shared_buffers") - @classmethod - def memory_shared_buffers_values(cls, value: int) -> int | None: - """Check memory_shared_buffers config option is greater or equal than 16.""" - if value < 16 or value > 1073741823: - raise ValueError("Shared buffers config option should be at least 16") - - return value - - @validator("memory_temp_buffers") - @classmethod - def memory_temp_buffers_values(cls, value: int) -> int | None: - """Check memory_temp_buffers config option is between 100 and 1073741823.""" - if value < 100 or value > 1073741823: - raise ValueError("Value is not between 100 and 1073741823") - - return value - - @validator("memory_work_mem") - @classmethod - def memory_work_mem_values(cls, value: int) -> int | None: - """Check memory_work_mem config option is between 64 and 2147483647.""" - if value < 64 or value > 2147483647: - raise ValueError("Value is not between 64 and 2147483647") - - return value - @validator("optimizer_constraint_exclusion") @classmethod def optimizer_constraint_exclusion_values(cls, value: str) -> str | None: @@ -317,24 +286,6 @@ def optimizer_constraint_exclusion_values(cls, value: str) -> str | None: return value - @validator("optimizer_default_statistics_target") - @classmethod - def optimizer_default_statistics_target_values(cls, value: int) -> int | None: - """Check optimizer_default_statistics_target config option is between 1 and 10000.""" - if value < 1 or value > 10000: - raise ValueError("Value is not between 1 and 10000") - - return value - - @validator("optimizer_from_collapse_limit", "optimizer_join_collapse_limit") - @classmethod - def optimizer_collapse_limit_values(cls, value: int) -> int | None: - """Check optimizer collapse_limit config option is between 1 and 2147483647.""" - if value < 1 or value > 2147483647: - raise ValueError("Value is not between 1 and 2147483647") - - return value - @validator("profile") @classmethod def profile_values(cls, value: str) -> str | None: @@ -355,105 +306,6 @@ def profile_limit_memory_validator(cls, value: int) -> int | None: return value - @validator("vacuum_autovacuum_analyze_scale_factor", "vacuum_autovacuum_vacuum_scale_factor") - @classmethod - def vacuum_autovacuum_vacuum_scale_factor_values(cls, value: float) -> float | None: - """Check autovacuum scale_factor config option is between 0 and 100.""" - if value < 0 or value > 100: - raise ValueError("Value is not between 0 and 100") - - return value - - @validator("vacuum_autovacuum_analyze_threshold") - @classmethod - def vacuum_autovacuum_analyze_threshold_values(cls, value: int) -> int | None: - """Check vacuum_autovacuum_analyze_threshold config option is between 0 and 2147483647.""" - if value < 0 or value > 2147483647: - raise ValueError("Value is not between 0 and 2147483647") - - return value - - @validator("vacuum_autovacuum_freeze_max_age") - @classmethod - def vacuum_autovacuum_freeze_max_age_values(cls, value: int) -> int | None: - """Check vacuum_autovacuum_freeze_max_age config option is between 100000 and 2000000000.""" - if value < 100000 or value > 2000000000: - raise ValueError("Value is not between 100000 and 2000000000") - - return value - - @validator("vacuum_autovacuum_vacuum_cost_delay") - @classmethod - def vacuum_autovacuum_vacuum_cost_delay_values(cls, value: float) -> float | None: - """Check vacuum_autovacuum_vacuum_cost_delay config option is between -1 and 100.""" - if value < -1 or value > 100: - raise ValueError("Value is not between -1 and 100") - - return value - - @validator("vacuum_vacuum_freeze_table_age") - @classmethod - def vacuum_vacuum_freeze_table_age_values(cls, value: int) -> int | None: - """Check vacuum_vacuum_freeze_table_age config option is between 0 and 2000000000.""" - if value < 0 or value > 2000000000: - raise ValueError("Value is not between 0 and 2000000000") - - return value - - @validator("connection_authentication_timeout") - @classmethod - def connection_authentication_timeout_values(cls, value: int) -> int | None: - """Check connection_authentication_timeout config option is between 1 and 600.""" - if value < 1 or value > 600: - raise ValueError("Value is not between 1 and 600") - - return value - - @validator("vacuum_autovacuum_naptime") - @classmethod - def vacuum_autovacuum_naptime_values(cls, value: int) -> int | None: - """Check vacuum_autovacuum_naptime config option is between 1 and 2147483.""" - if value < 1 or value > 2147483: - raise ValueError("Value is not between 1 and 2147483") - - return value - - @validator("vacuum_autovacuum_vacuum_cost_limit") - @classmethod - def vacuum_autovacuum_vacuum_cost_limit_values(cls, value: int) -> int | None: - """Check vacuum_autovacuum_vacuum_cost_limit config option is between -1 and 10000.""" - if value < -1 or value > 10000: - raise ValueError("Value is not between -1 and 10000") - - return value - - @validator("vacuum_autovacuum_vacuum_insert_scale_factor") - @classmethod - def vacuum_autovacuum_vacuum_insert_scale_factor_values(cls, value: float) -> float | None: - """Check vacuum_autovacuum_vacuum_insert_scale_factor config option is between 0 and 100.""" - if value < 0 or value > 100: - raise ValueError("Value is not between 0 and 100") - - return value - - @validator("vacuum_autovacuum_vacuum_insert_threshold") - @classmethod - def vacuum_autovacuum_vacuum_insert_threshold_values(cls, value: int) -> int | None: - """Check vacuum_autovacuum_vacuum_insert_threshold config option is between -1 and 2147483647.""" - if value < -1 or value > 2147483647: - raise ValueError("Value is not between -1 and 2147483647") - - return value - - @validator("vacuum_autovacuum_vacuum_threshold") - @classmethod - def vacuum_autovacuum_vacuum_threshold_values(cls, value: int) -> int | None: - """Check vacuum_autovacuum_vacuum_threshold config option is between 0 and 2147483647.""" - if value < 0 or value > 2147483647: - raise ValueError("Value is not between 0 and 2147483647") - - return value - @validator("request_backslash_quote") @classmethod def request_backslash_quote_values(cls, value: str) -> str | None: @@ -463,24 +315,6 @@ def request_backslash_quote_values(cls, value: str) -> str | None: return value - @validator("storage_bgwriter_lru_maxpages") - @classmethod - def storage_bgwriter_lru_maxpages_values(cls, value: int) -> int | None: - """Check storage_bgwriter_lru_maxpages config option is between 0 and 1073741823.""" - if value < 0 or value > 1073741823: - raise ValueError("Value is not between 0 and 1073741823") - - return value - - @validator("storage_bgwriter_lru_multiplier") - @classmethod - def storage_bgwriter_lru_multiplier_values(cls, value: float) -> float | None: - """Check storage_bgwriter_lru_multiplier config option is between 0 and 10.""" - if value < 0 or value > 10: - raise ValueError("Value is not between 0 and 10") - - return value - @validator("response_bytea_output") @classmethod def response_bytea_output_values(cls, value: str) -> str | None: @@ -511,51 +345,6 @@ def logging_client_min_messages_values(cls, value: str) -> str | None: return value - @validator("optimizer_cpu_index_tuple_cost") - @classmethod - def optimizer_cpu_index_tuple_cost_values(cls, value: float) -> float | None: - """Check optimizer_cpu_index_tuple_cost config option is between 0 and 1.80E+308.""" - if value < 0 or value > 1.80e308: - raise ValueError("Value is not between 0 and 1.80E+308") - - return value - - @validator("optimizer_cpu_operator_cost") - @classmethod - def optimizer_cpu_operator_cost_values(cls, value: float) -> float | None: - """Check optimizer_cpu_operator_cost config option is between 0 and 1.80E+308.""" - if value < 0 or value > 1.80e308: - raise ValueError("Value is not between 0 and 1.80E+308") - - return value - - @validator("optimizer_cpu_tuple_cost") - @classmethod - def optimizer_cpu_tuple_cost_values(cls, value: float) -> float | None: - """Check optimizer_cpu_tuple_cost config option is between 0 and 1.80E+308.""" - if value < 0 or value > 1.80e308: - raise ValueError("Value is not between 0 and 1.80E+308") - - return value - - @validator("optimizer_cursor_tuple_fraction") - @classmethod - def optimizer_cursor_tuple_fraction_values(cls, value: float) -> float | None: - """Check optimizer_cursor_tuple_fraction config option is between 0 and 1.""" - if value < 0 or value > 1: - raise ValueError("Value is not between 0 and 1") - - return value - - @validator("request_deadlock_timeout") - @classmethod - def request_deadlock_timeout_values(cls, value: int) -> int | None: - """Check request_deadlock_timeout config option is between 1 and 2147483647.""" - if value < 1 or value > 2147483647: - raise ValueError("Value is not between 1 and 2147483647") - - return value - # storage_default_table_access_method: str | None @validator("request_default_transaction_isolation") @classmethod @@ -568,195 +357,6 @@ def request_default_transaction_isolation_values(cls, value: str) -> str | None: return value - @validator("response_extra_float_digits") - @classmethod - def response_extra_float_digits_values(cls, value: int) -> int | None: - """Check response_extra_float_digits config option is between -15 and 3.""" - if value < -15 or value > 3: - raise ValueError("Value is not between -15 and 3") - - return value - - @validator("optimizer_geqo_effort") - @classmethod - def optimizer_geqo_effort_values(cls, value: int) -> int | None: - """Check optimizer_geqo_effort config option is between 1 and 10.""" - if value < 1 or value > 10: - raise ValueError("Value is not between 1 and 10") - - return value - - @validator("optimizer_geqo_generations") - @classmethod - def optimizer_geqo_generations_values(cls, value: int) -> int | None: - """Check optimizer_geqo_generations config option is between 0 and 2147483647.""" - if value < 0 or value > 2147483647: - raise ValueError("Value is not between 0 and 2147483647") - - return value - - @validator("optimizer_geqo_pool_size") - @classmethod - def optimizer_geqo_pool_size_values(cls, value: int) -> int | None: - """Check optimizer_geqo_pool_size config option is between 0 and 2147483647.""" - if value < 0 or value > 2147483647: - raise ValueError("Value is not between 0 and 2147483647") - - return value - - @validator("optimizer_geqo_seed") - @classmethod - def optimizer_geqo_seed_values(cls, value: float) -> float | None: - """Check optimizer_geqo_seed config option is between 0 and 1.""" - if value < 0 or value > 1: - raise ValueError("Value is not between 0 and 1") - - return value - - @validator("optimizer_geqo_selection_bias") - @classmethod - def optimizer_geqo_selection_bias_values(cls, value: float) -> float | None: - """Check optimizer_geqo_selection_bias config option is between 1.5 and 2.""" - if value < 1.5 or value > 2: - raise ValueError("Value is not between 1.5 and 2") - - return value - - @validator("optimizer_geqo_threshold") - @classmethod - def optimizer_geqo_threshold_values(cls, value: int) -> int | None: - """Check optimizer_geqo_threshold config option is between 2 and 2147483647.""" - if value < 2 or value > 2147483647: - raise ValueError("Value is not between 2 and 2147483647") - - return value - - @validator("response_gin_fuzzy_search_limit") - @classmethod - def response_gin_fuzzy_search_limit_values(cls, value: int) -> int | None: - """Check response_gin_fuzzy_search_limit config option is between 0 and 2147483647.""" - if value < 0 or value > 2147483647: - raise ValueError("Value is not between 0 and 2147483647") - - return value - - @validator("storage_gin_pending_list_limit") - @classmethod - def storage_gin_pending_list_limit_values(cls, value: int) -> int | None: - """Check storage_gin_pending_list_limit config option is between 64 and 2147483647.""" - if value < 64 or value > 2147483647: - raise ValueError("Value is not between 64 and 2147483647") - - return value - - @validator("session_idle_in_transaction_session_timeout") - @classmethod - def session_idle_in_transaction_session_timeout_values(cls, value: int) -> int | None: - """Check session_idle_in_transaction_session_timeout config option is between 0 and 2147483647.""" - if value < 0 or value > 2147483647: - raise ValueError("Value is not between 0 and 2147483647") - - return value - - @validator("optimizer_jit_above_cost") - @classmethod - def optimizer_jit_above_cost_values(cls, value: float) -> float | None: - """Check optimizer_jit_above_cost config option is between -1 and 1.80E+308.""" - if value < -1 or value > 1.80e308: - raise ValueError("Value is not between -1 and 1.80E+308") - - return value - - @validator("optimizer_jit_inline_above_cost") - @classmethod - def optimizer_jit_inline_above_cost_values(cls, value: float) -> float | None: - """Check optimizer_jit_inline_above_cost config option is between -1 and 1.80E+308.""" - if value < -1 or value > 1.80e308: - raise ValueError("Value is not between -1 and 1.80E+308") - - return value - - @validator("optimizer_jit_optimize_above_cost") - @classmethod - def optimizer_jit_optimize_above_cost_values(cls, value: float) -> float | None: - """Check optimizer_jit_optimize_above_cost config option is between -1 and 1.80E+308.""" - if value < -1 or value > 1.80e308: - raise ValueError("Value is not between -1 and 1.80E+308") - - return value - - @validator("request_lock_timeout") - @classmethod - def request_lock_timeout_values(cls, value: int) -> int | None: - """Check request_lock_timeout config option is between 0 and 2147483647.""" - if value < 0 or value > 2147483647: - raise ValueError("Value is not between 0 and 2147483647") - - return value - - @validator("optimizer_min_parallel_index_scan_size") - @classmethod - def optimizer_min_parallel_index_scan_size_values(cls, value: int) -> int | None: - """Check optimizer_min_parallel_index_scan_size config option is between 0 and 715827882.""" - if value < 0 or value > 715827882: - raise ValueError("Value is not between 0 and 715827882") - - return value - - @validator("optimizer_min_parallel_table_scan_size") - @classmethod - def optimizer_min_parallel_table_scan_size_values(cls, value: int) -> int | None: - """Check optimizer_min_parallel_table_scan_size config option is between 0 and 715827882.""" - if value < 0 or value > 715827882: - raise ValueError("Value is not between 0 and 715827882") - - return value - - @validator("storage_old_snapshot_threshold") - @classmethod - def storage_old_snapshot_threshold_values(cls, value: int) -> int | None: - """Check storage_old_snapshot_threshold config option is between -1 and 86400.""" - if value < -1 or value > 86400: - raise ValueError("Value is not between -1 and 86400") - - return value - - @validator("optimizer_parallel_setup_cost") - @classmethod - def optimizer_parallel_setup_cost_values(cls, value: float) -> float | None: - """Check optimizer_parallel_setup_cost config option is between 0 and 1.80E+308.""" - if value < 0 or value > 1.80e308: - raise ValueError("Value is not between 0 and 1.80E+308") - - return value - - @validator("optimizer_parallel_tuple_cost") - @classmethod - def optimizer_parallel_tuple_cost_values(cls, value: float) -> float | None: - """Check optimizer_parallel_tuple_cost config option is between 0 and 1.80E+308.""" - if value < 0 or value > 1.80e308: - raise ValueError("Value is not between 0 and 1.80E+308") - - return value - - @validator("connection_statement_timeout") - @classmethod - def connection_statement_timeout_values(cls, value: int) -> int | None: - """Check connection_statement_timeout config option is between 0 and 2147483647.""" - if value < 0 or value > 2147483647: - raise ValueError("Value is not between 0 and 2147483647") - - return value - - @validator("request_track_activity_query_size") - @classmethod - def request_track_activity_query_size_values(cls, value: int) -> int | None: - """Check request_track_activity_query_size config option is between 100 and 1048576.""" - if value < 100 or value > 1048576: - raise ValueError("Value is not between 100 and 1048576") - - return value - @validator("logging_track_functions") @classmethod def logging_track_functions_values(cls, value: str) -> str | None: @@ -766,96 +366,6 @@ def logging_track_functions_values(cls, value: str) -> str | None: return value - @validator("vacuum_vacuum_cost_delay") - @classmethod - def vacuum_vacuum_cost_delay_values(cls, value: float) -> float | None: - """Check vacuum_vacuum_cost_delay config option is between 0 and 100.""" - if value < 0 or value > 100: - raise ValueError("Value is not between 0 and 100") - - return value - - @validator("vacuum_vacuum_cost_limit") - @classmethod - def vacuum_vacuum_cost_limit_values(cls, value: int) -> int | None: - """Check vacuum_vacuum_cost_limit config option is between 1 and 10000.""" - if value < 1 or value > 10000: - raise ValueError("Value is not between 1 and 10000") - - return value - - @validator("vacuum_vacuum_cost_page_dirty") - @classmethod - def vacuum_vacuum_cost_page_dirty_values(cls, value: int) -> int | None: - """Check vacuum_vacuum_cost_page_dirty config option is between 0 and 10000.""" - if value < 0 or value > 10000: - raise ValueError("Value is not between 0 and 10000") - - return value - - @validator("vacuum_vacuum_cost_page_hit") - @classmethod - def vacuum_vacuum_cost_page_hit_values(cls, value: int) -> int | None: - """Check vacuum_vacuum_cost_page_hit config option is between 0 and 10000.""" - if value < 0 or value > 10000: - raise ValueError("Value is not between 0 and 10000") - - return value - - @validator("vacuum_vacuum_cost_page_miss") - @classmethod - def vacuum_vacuum_cost_page_miss_values(cls, value: int) -> int | None: - """Check vacuum_vacuum_cost_page_miss config option is between 0 and 10000.""" - if value < 0 or value > 10000: - raise ValueError("Value is not between 0 and 10000") - - return value - - @validator("vacuum_vacuum_failsafe_age") - @classmethod - def vacuum_vacuum_failsafe_age_values(cls, value: int) -> int | None: - """Check vacuum_vacuum_failsafe_age config option is between 0 and 2100000000.""" - if value < 0 or value > 2100000000: - raise ValueError("Value is not between 0 and 2100000000") - - return value - - @validator("vacuum_vacuum_freeze_min_age") - @classmethod - def vacuum_vacuum_freeze_min_age_values(cls, value: int) -> int | None: - """Check vacuum_vacuum_freeze_min_age config option is between 0 and 1000000000.""" - if value < 0 or value > 1000000000: - raise ValueError("Value is not between 0 and 1000000000") - - return value - - @validator("vacuum_vacuum_multixact_failsafe_age") - @classmethod - def vacuum_vacuum_multixact_failsafe_age_values(cls, value: int) -> int | None: - """Check vacuum_vacuum_multixact_failsafe_age config option is between 0 and 2100000000.""" - if value < 0 or value > 2100000000: - raise ValueError("Value is not between 0 and 2100000000") - - return value - - @validator("vacuum_vacuum_multixact_freeze_min_age") - @classmethod - def vacuum_vacuum_multixact_freeze_min_age_values(cls, value: int) -> int | None: - """Check vacuum_vacuum_multixact_freeze_min_age config option is between 0 and 1000000000.""" - if value < 0 or value > 1000000000: - raise ValueError("Value is not between 0 and 1000000000") - - return value - - @validator("vacuum_vacuum_multixact_freeze_table_age") - @classmethod - def vacuum_vacuum_multixact_freeze_table_age_values(cls, value: int) -> int | None: - """Check vacuum_vacuum_multixact_freeze_table_age config option is between 0 and 2000000000.""" - if value < 0 or value > 2000000000: - raise ValueError("Value is not between 0 and 2000000000") - - return value - @validator("request_xmlbinary") @classmethod def request_xmlbinary_values(cls, value: str) -> str | None: