class Sequel::Postgres::CreatePartitionOfTableGenerator
Generator used for creating tables that are partitions of other tables.
Constants
- MAXVALUE
- MINVALUE
Public Class Methods
Source
# File lib/sequel/adapters/shared/postgres.rb 174 def initialize(&block) 175 instance_exec(&block) 176 end
Public Instance Methods
Source
# File lib/sequel/adapters/shared/postgres.rb 219 def default 220 @default = true 221 end
Sets that this is a default partition, where values not in other partitions are stored.
Source
# File lib/sequel/adapters/shared/postgres.rb 192 def from(*v) 193 @from = v 194 end
Assumes range partitioning, sets the inclusive minimum value of the range for this partition.
Source
# File lib/sequel/adapters/shared/postgres.rb 234 def hash_values 235 [@modulus, @remainder] 236 end
The modulus and remainder to use for this partition for a hash partition.
Source
# File lib/sequel/adapters/shared/postgres.rb 229 def list 230 @in 231 end
The values to include in this partition for a list partition.
Source
# File lib/sequel/adapters/shared/postgres.rb 186 def maxvalue 187 MAXVALUE 188 end
The minimum value of the data type used in range partitions, useful as an argument to to.
Source
# File lib/sequel/adapters/shared/postgres.rb 180 def minvalue 181 MINVALUE 182 end
The minimum value of the data type used in range partitions, useful as an argument to from.
Source
# File lib/sequel/adapters/shared/postgres.rb 208 def modulus(v) 209 @modulus = v 210 end
Assumes hash partitioning, sets the modulus for this parition.
Source
# File lib/sequel/adapters/shared/postgres.rb 240 def partition_type 241 raise Error, "Unable to determine partition type, multiple different partitioning methods called" if [@from || @to, @list, @modulus || @remainder, @default].compact.length > 1 242 243 if @from || @to 244 raise Error, "must call both from and to when creating a partition of a table if calling either" unless @from && @to 245 :range 246 elsif @in 247 :list 248 elsif @modulus || @remainder 249 raise Error, "must call both modulus and remainder when creating a partition of a table if calling either" unless @modulus && @remainder 250 :hash 251 elsif @default 252 :default 253 else 254 raise Error, "unable to determine partition type, no partitioning methods called" 255 end 256 end
Determine the appropriate partition type for this partition by which methods were called on it.
Source
# File lib/sequel/adapters/shared/postgres.rb 224 def range 225 [@from, @to] 226 end
The from and to values of this partition for a range partition.
Source
# File lib/sequel/adapters/shared/postgres.rb 213 def remainder(v) 214 @remainder = v 215 end
Assumes hash partitioning, sets the remainder for this parition.
Source
# File lib/sequel/adapters/shared/postgres.rb 198 def to(*v) 199 @to = v 200 end
Assumes range partitioning, sets the exclusive maximum value of the range for this partition.
Source
# File lib/sequel/adapters/shared/postgres.rb 203 def values_in(*v) 204 @in = v 205 end
Assumes list partitioning, sets the values to be included in this partition.