method
extract_value_from_default
v8.1.1 -
Show latest stable
- Class:
ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
extract_value_from_default(default)private
Extracts the value from a PostgreSQL column default definition.
# File activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb, line 765
def extract_value_from_default(default)
case default
# Quoted types
when /\A[(B]?'(.*)'.*::"?([\w. ]+)"?(?:\[\])?\z/
# The default 'now'::date is CURRENT_DATE
if $1 == "now" && $2 == "date"
nil
else
$1.gsub("''", "'")
end
# Boolean types
when "true", "false"
default
# Numeric types
when /\A\(?(-?\d+(\.\d*)?)\)?(::bigint)?\z/
$1
# Object identifier types
when /\A-?\d+\z/
$1
else
# Anything else is blank, some user type, or some function
# and we can't know the value of that, so return nil.
nil
end
end Related methods
- Instance methods
- active?
- add_enum_value
- build_insert_sql
- check_version
- connected?
- create_enum
- default_index_type?
- disable_extension
- discard!
- disconnect!
- drop_enum
- enable_extension
- enum_types
- extension_available?
- extension_enabled?
- extensions
- get_advisory_lock
- get_database_version
- index_algorithms
- max_identifier_length
- release_advisory_lock
- reload_type_map
- rename_enum
- rename_enum_value
- reset!
- session_auth=
- set_standard_conforming_strings
- supports_advisory_locks?
- supports_bulk_alter?
- supports_check_constraints?
- supports_close_prepared?
- supports_comments?
- supports_common_table_expressions?
- supports_datetime_with_precision?
- supports_ddl_transactions?
- supports_deferrable_constraints?
- supports_exclusion_constraints?
- supports_explain?
- supports_expression_index?
- supports_extensions?
- supports_foreign_keys?
- supports_foreign_tables?
- supports_identity_columns?
- supports_index_include?
- supports_index_sort_order?
- supports_insert_conflict_target?
- supports_insert_on_conflict?
- supports_insert_on_duplicate_skip?
- supports_insert_on_duplicate_update?
- supports_insert_returning?
- supports_json?
- supports_lazy_transactions?
- supports_materialized_views?
- supports_native_partitioning?
- supports_nulls_not_distinct?
- supports_optimizer_hints?
- supports_partial_index?
- supports_partitioned_indexes?
- supports_pgcrypto_uuid?
- supports_restart_db_transaction?
- supports_savepoints?
- supports_transaction_isolation?
- supports_unique_constraints?
- supports_validate_constraints?
- supports_views?
- supports_virtual_columns?
- use_insert_returning?
- Class methods
- create_unlogged_tables
- datetime_type
- dbconsole
- decode_dates
- initialize_type_map
- native_database_types
- new
- new_client
- Private methods
-
add_pg_decoders -
add_pg_encoders -
arel_visitor -
build_statement_pool -
can_perform_case_insensitive_comparison_for? -
column_definitions -
configure_connection -
connect -
extract_default_function -
extract_value_from_default -
get_oid_type -
has_default_function? -
in_transaction? -
initialize_type_map -
is_cached_plan_failure? -
load_additional_types -
load_types_queries -
prepare_statement -
reconfigure_connection_timezone -
reconnect -
retryable_query_error? -
sql_key -
translate_exception -
update_typemap_for_default_timezone