Class: RDBr::Metadata::Index

Inherits:
Data
  • Object
show all
Defined in:
lib/rdbr/metadata/index.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, columns: [], expressions: [], unique: false, where: nil, using: nil) ⇒ Index

Returns a new instance of Index.



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/rdbr/metadata/index.rb', line 4

def initialize(name:, columns: [], expressions: [], unique: false, where: nil, using: nil)
  index_columns = Values.names(columns, field: 'index columns', allow_empty: true)
  index_expressions = Values.names(expressions, field: 'index expressions', allow_empty: true)
  if index_columns.empty? && index_expressions.empty?
    raise InvalidMetadataError, 'index must contain columns or expressions'
  end

  super(
    name: Values.name(name, field: 'index name'),
    columns: index_columns,
    expressions: index_expressions,
    unique: Values.boolean(unique, field: 'index unique'),
    where: Values.optional_name(where, field: 'index predicate'),
    using: Values.optional_name(using, field: 'index method')
  )
end

Instance Attribute Details

#columnsObject (readonly)

Returns the value of attribute columns

Returns:

  • (Object)

    the current value of columns



3
4
5
# File 'lib/rdbr/metadata/index.rb', line 3

def columns
  @columns
end

#expressionsObject (readonly)

Returns the value of attribute expressions

Returns:

  • (Object)

    the current value of expressions



3
4
5
# File 'lib/rdbr/metadata/index.rb', line 3

def expressions
  @expressions
end

#nameObject (readonly)

Returns the value of attribute name

Returns:

  • (Object)

    the current value of name



3
4
5
# File 'lib/rdbr/metadata/index.rb', line 3

def name
  @name
end

#uniqueObject (readonly)

Returns the value of attribute unique

Returns:

  • (Object)

    the current value of unique



3
4
5
# File 'lib/rdbr/metadata/index.rb', line 3

def unique
  @unique
end

#usingObject (readonly)

Returns the value of attribute using

Returns:

  • (Object)

    the current value of using



3
4
5
# File 'lib/rdbr/metadata/index.rb', line 3

def using
  @using
end

#whereObject (readonly)

Returns the value of attribute where

Returns:

  • (Object)

    the current value of where



3
4
5
# File 'lib/rdbr/metadata/index.rb', line 3

def where
  @where
end

Instance Method Details

#expression?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/rdbr/metadata/index.rb', line 25

def expression?
  !expressions.empty?
end

#partial?Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/rdbr/metadata/index.rb', line 21

def partial?
  !where.nil?
end