reloading type map on extension changing
This commit is contained in:
parent
95e87bfaa3
commit
efd2be3551
@ -239,6 +239,10 @@ def [](oid)
|
||||
@mapping[oid]
|
||||
end
|
||||
|
||||
def clear
|
||||
@mapping.clear
|
||||
end
|
||||
|
||||
def key?(oid)
|
||||
@mapping.key? oid
|
||||
end
|
||||
|
@ -586,11 +586,15 @@ def supports_ranges?
|
||||
end
|
||||
|
||||
def enable_extension(name)
|
||||
exec_query "CREATE EXTENSION IF NOT EXISTS #{name}"
|
||||
exec_query("CREATE EXTENSION IF NOT EXISTS #{name}").tap {
|
||||
reload_type_map
|
||||
}
|
||||
end
|
||||
|
||||
def disable_extension(name)
|
||||
exec_query "DROP EXTENSION IF EXISTS #{name} CASCADE"
|
||||
exec_query("DROP EXTENSION IF EXISTS #{name} CASCADE").tap {
|
||||
reload_type_map
|
||||
}
|
||||
end
|
||||
|
||||
def extension_enabled?(name)
|
||||
@ -666,6 +670,11 @@ def translate_exception(exception, message)
|
||||
|
||||
private
|
||||
|
||||
def reload_type_map
|
||||
OID::TYPE_MAP.clear
|
||||
initialize_type_map
|
||||
end
|
||||
|
||||
def initialize_type_map
|
||||
result = execute('SELECT oid, typname, typelem, typdelim, typinput FROM pg_type', 'SCHEMA')
|
||||
leaves, nodes = result.partition { |row| row['typelem'] == '0' }
|
||||
|
Loading…
Reference in New Issue
Block a user