Module: Sequel::Cubrid::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
- #database_type ⇒ Object
- #indexes(table, opts = OPTS) ⇒ Object
- #schema_parse_table(table_name, opts) ⇒ Object
- #supports_savepoints? ⇒ Boolean
- #tables(opts = OPTS) ⇒ Object
- #views(opts = OPTS) ⇒ Object
Instance Method Details
#database_type ⇒ Object
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
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 |