Sha256: d9a12695df6f2c7623b2ae85bc22d9a23891404a986697424fb14fafaa34b34c

Contents?: true

Size: 1.73 KB

Versions: 34

Compression:

Stored size: 1.73 KB

Contents

module MySql
  module Pervasive
    module DatabaseMethods

      def dataset(opts = nil)
        ds = super
        ds.extend(DatasetMethods)
        ds
      end

      def select_fields(table, *fields)
        dataset.select_fields(table, *fields)
      end

      # if its not windows/linux where pervasive db is running in tests
      # modify the pervasive adapter to act more like mysql for certain things
      def auto_increment_sql;"AUTO_INCREMENT"; end
      def begin_transaction_sql; "BEGIN" end
      def commit_transaction_sql; "COMMIT" end
      def rollback_transaction_sql; "ROLLBACK" end

      def get_column_type(column_name)
        if model and model.respond_to?(:datatypes) and model.datatypes and model.datatypes[column_name]
          return model.datatypes[column_name][:type]
        end
        nil
      end

    end

    module DatasetMethods

      def select_clause_methods
        super
      end

      def select_limit_sql(sql)
        super(sql)
      end

      def quoted_identifier(name, convert=true)
        convert ? "`#{convert_aliased_col_to_real_col(name)}`" : "`#{name}`"
      end

      def convert_aliased_col_to_real_col(col_name)
        if respond_to?(:model) and model.respond_to?(:aliases) and model.aliases
          sym_name = col_name.to_s.downcase.to_sym
          col_name = model.aliases[sym_name].to_s.upcase if model.aliases.include? sym_name
        end
        col_name
      end

      def convert_aliased_col_to_real_col_with_model(col_name, model)
        if model.respond_to?(:aliases) and model.aliases
          sym_name = col_name.to_s.downcase.to_sym
          col_name = model.aliases[sym_name].to_s.upcase if model.aliases.include? sym_name
        end
        col_name
      end
    end
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
fossil-0.5.6 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.5 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.3 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.2 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.1 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.0 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.4.26 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.4.25 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.4.24 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.4.23 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.4.22 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.4.20 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.4.19 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.4.18 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.4.17 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.4.16 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.4.15 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.4.14 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.4.13 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.4.12 lib/sequel/mysql_pervasive_adapter.rb