Sha256: 146846343e9bf398ae1244b96ae24c9cf69da9ad53a154c968d33d4d2c2df862

Contents?: true

Size: 1.73 KB

Versions: 44

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.downcase}`"
      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 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

44 entries across 44 versions & 1 rubygems

Version Path
fossil-0.5.50 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.49 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.48 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.47 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.46 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.45 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.44 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.43 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.42 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.41 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.40 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.39 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.38 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.37 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.36 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.35 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.34 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.33 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.32 lib/sequel/mysql_pervasive_adapter.rb
fossil-0.5.31 lib/sequel/mysql_pervasive_adapter.rb