method
query_conditions_for_initial_load
Ruby on Rails latest stable (v7.1.3.2)
-
0 notes -
Class: TypeMapInitializer
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0
- 3.0.9
- 3.1.0
- 3.2.1
- 3.2.8
- 3.2.13
- 4.0.2
- 4.1.8
- 4.2.1
- 4.2.7 (0)
- 4.2.9 (0)
- 5.0.0.1 (0)
- 5.1.7 (0)
- 5.2.3 (0)
- 6.0.0 (0)
- 6.1.3.1 (0)
- 6.1.7.7 (0)
- 7.0.0
- 7.1.3.2
- 7.1.3.4
- What's this?
query_conditions_for_initial_load()
public
Hide source
# File activerecord/lib/active_record/connection_adapters/postgresql/oid/type_map_initializer.rb, line 36 def query_conditions_for_initial_load known_type_names = @store.keys.map { |n| "'#{n}'" } known_type_types = %('r' 'e' 'd') <<~SQL % [known_type_names.join(", "), known_type_types.join(", ")] WHERE t.typname IN (%( OR t.typtype IN (%s) OR t.typinput = 'array_in(cstring,oid,integer)'::regprocedure OR t.typelem != 0 SQL end private def register_mapped_type(row) alias_type row["oid"], row["typname"] end def register_enum_type(row) register row["oid"], OID::Enum.new end def register_array_type(row) register_with_subtype(row["oid"], row["typelem"].to_i) do |subtype| OID::Array.new(subtype, row["typdelim"]) end end def register_range_type(row) register_with_subtype(row["oid"], row["rngsubtype"].to_i) do |subtype| OID::Range.new(subtype, row["typname"].to_sym) end end def register_domain_type(row) if base_type = @store.lookup(row["typbasetype"].to_i) register row["oid"], base_type else warn "unknown base type (OID: #{row["typbasetype"]}) for domain #{row["typname"]}." end end def register_composite_type(row) if subtype = @store.lookup(row["typelem"].to_i) register row["oid"], OID::Vector.new(row["typdelim"], subtype) end end def register(oid, oid_type = nil, &block) oid = assert_valid_registration(oid, oid_type || block) if block_given? @store.register_type(oid, &block) else @store.register_type(oid, oid_type) end end def alias_type(oid, target) oid = assert_valid_registration(oid, target) @store.alias_type(oid, target) end def register_with_subtype(oid, target_oid) if @store.key?(target_oid) register(oid) do |_, *args| yield @store.lookup(target_oid, *args) end end end def assert_valid_registration(oid, oid_type) raise ArgumentError, "can't register nil type for OID #{oid}" if oid_type.nil? oid.to_i end end end end end end