Module: Sequel::Cubrid::DatabaseMethods

Includes:
Database::SplitAlterTable, UnmodifiedIdentifiers::DatabaseMethods
Included in:
Database, JDBC::Cubrid::DatabaseMethods
Defined in:
lib/sequel/adapters/shared/cubrid.rb

Constant Summary collapse

AUTOINCREMENT =
'AUTO_INCREMENT'.freeze
COLUMN_DEFINITION_ORDER =

.freeze # SEQUEL5

[:auto_increment, :default, :null, :unique, :primary_key, :references]

Instance Method Summary collapse

Instance Method Details

#database_typeObject



19
20
21
# File 'lib/sequel/adapters/shared/cubrid.rb', line 19

def database_type
  :cubrid
end

#indexes(table, opts = OPTS) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/sequel/adapters/shared/cubrid.rb', line 23

def indexes(table, opts=OPTS)
  m = output_identifier_meth
  m2 = input_identifier_meth
  indexes = {}
  .
    from{db_index[:i]}.
    join(Sequel[:db_index_key].as(:k), :index_name=>:index_name, :class_name=>:class_name).
    where{{i[:class_name]=>m2.call(table), :is_primary_key=>'NO'}}.
    order{k[:key_order]}.
    select{[i[:index_name], k[:key_attr_name].as(:column), :is_unique]}.
    each do |row|
      index = indexes[m.call(row[:index_name])] ||= {:columns=>[], :unique=>row[:is_unique]=='YES'}
      index[:columns] << m.call(row[:column])
    end
  indexes
end

#schema_parse_table(table_name, opts) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/sequel/adapters/shared/cubrid.rb', line 44

def schema_parse_table(table_name, opts)
  m = output_identifier_meth(opts[:dataset])
  m2 = input_identifier_meth(opts[:dataset])

  pks = .
    from{db_index[:i]}.
    join(Sequel[:db_index_key].as(:k), :index_name=>:index_name, :class_name=>:class_name).
    where{{i[:class_name]=>m2.call(table_name), :is_primary_key=>'YES'}}.
    order{k[:key_order]}.
    select_map{k[:key_attr_name]}.
    map{|c| m.call(c)}

  .
    from(:db_attribute).
    where(:class_name=>m2.call(table_name)).
    order(:def_order).
    select{[:attr_name, data_type.as(:db_type), default_value.as(:default), is_nullable.as(:allow_null), :prec]}.
    map do |row|
      name = m.call(row.delete(:attr_name))
      row[:allow_null] = row[:allow_null] == 'YES'
      row[:primary_key] = pks.include?(name)
      row[:type] = schema_column_type(row[:db_type])
      row[:max_length] = row[:prec] if row[:type] == :string
      [name, row]
    end
end

#supports_savepoints?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/sequel/adapters/shared/cubrid.rb', line 40

def supports_savepoints?
  false
end

#tables(opts = OPTS) ⇒ Object



71
72
73
# File 'lib/sequel/adapters/shared/cubrid.rb', line 71

def tables(opts=OPTS)
  _tables('CLASS')
end

#views(opts = OPTS) ⇒ Object



75
76
77
# File 'lib/sequel/adapters/shared/cubrid.rb', line 75

def views(opts=OPTS)
  _tables('VCLASS')
end