Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/lib/sequel/adapters/informix.rb b/lib/sequel/adapters/informix.rb
- index d90fcbf..f727954 100644
- --- a/lib/sequel/adapters/informix.rb
- +++ b/lib/sequel/adapters/informix.rb
- @@ -1,12 +1,13 @@
- require 'informix'
- +Sequel.require 'adapters/shared/informix'
- module Sequel
- module Informix
- class Database < Sequel::Database
- + include DatabaseMethods
- +
- set_adapter_scheme :informix
- - TEMPORARY = 'TEMP '.freeze
- -
- def connect(server)
- opts = server_opts(server)
- ::Informix.connect(opts[:database], opts[:user], opts[:password])
- @@ -35,7 +36,7 @@ module Sequel
- end
- class Dataset < Sequel::Dataset
- - SELECT_CLAUSE_METHODS = clause_methods(:select, %w'limit distinct columns from join where having group compounds order')
- + include DatasetMethods
- def fetch_rows(sql)
- execute(sql) do |cursor|
- @@ -56,22 +57,6 @@ module Sequel
- end
- self
- end
- -
- - private
- -
- - # Informix does not support INTERSECT or EXCEPT
- - def supports_intersect_except?
- - false
- - end
- -
- - def select_clause_methods
- - SELECT_CLAUSE_METHODS
- - end
- -
- - def select_limit_sql(sql)
- - sql << " SKIP #{@opts[:offset]}" if @opts[:offset]
- - sql << " FIRST #{@opts[:limit]}" if @opts[:limit]
- - end
- end
- end
- end
- diff --git a/lib/sequel/adapters/jdbc.rb b/lib/sequel/adapters/jdbc.rb
- index d82547c..79344a2 100644
- --- a/lib/sequel/adapters/jdbc.rb
- +++ b/lib/sequel/adapters/jdbc.rb
- @@ -75,6 +75,11 @@ module Sequel
- Sequel.ts_require 'adapters/jdbc/as400'
- db.extend(Sequel::JDBC::AS400::DatabaseMethods)
- com.ibm.as400.access.AS400JDBCDriver
- + end,
- + :"informix-sqli"=>proc do |db|
- + Sequel.ts_require 'adapters/jdbc/informix'
- + db.extend(Sequel::JDBC::Informix::DatabaseMethods)
- + com.informix.jdbc.IfxDriver
- end
- }
- diff --git a/lib/sequel/adapters/jdbc/informix.rb b/lib/sequel/adapters/jdbc/informix.rb
- new file mode 100644
- index 0000000..e0020ba
- --- /dev/null
- +++ b/lib/sequel/adapters/jdbc/informix.rb
- @@ -0,0 +1,31 @@
- +Sequel.require 'adapters/shared/informix'
- +
- +module Sequel
- + module JDBC
- + # Database and Dataset instance methods for Informix specific
- + # support via JDBC.
- + module Informix
- + # Database instance methods for Informix databases accessed via JDBC.
- + module DatabaseMethods
- + include Sequel::Informix::DatabaseMethods
- +
- + # Return instance of Sequel::JDBC::MSSQL::Dataset with the given opts.
- + def dataset(opts=nil)
- + Sequel::JDBC::Informix::Dataset.new(self, opts)
- + end
- +
- + private
- +
- + # TODO: implement
- + def last_insert_id(conn, opts={})
- + nil
- + end
- + end
- +
- + # Dataset class for MSSQL datasets accessed via JDBC.
- + class Dataset < JDBC::Dataset
- + include Sequel::Informix::DatasetMethods
- + end
- + end
- + end
- +end
- diff --git a/lib/sequel/adapters/shared/informix.rb b/lib/sequel/adapters/shared/informix.rb
- new file mode 100644
- index 0000000..04bc190
- --- /dev/null
- +++ b/lib/sequel/adapters/shared/informix.rb
- @@ -0,0 +1,41 @@
- +require 'informix'
- +
- +module Sequel
- + module Informix
- + module DatabaseMethods
- + TEMPORARY = 'TEMP '.freeze
- +
- + # Informix uses the :informix database type
- + def database_type
- + :informix
- + end
- +
- + private
- +
- + # SQL fragment for showing a table is temporary
- + def temporary_table_sql
- + TEMPORARY
- + end
- + end
- +
- + module DatasetMethods
- + SELECT_CLAUSE_METHODS = Dataset.clause_methods(:select, %w'limit distinct columns from join where having group compounds order')
- +
- + private
- +
- + # Informix does not support INTERSECT or EXCEPT
- + def supports_intersect_except?
- + false
- + end
- +
- + def select_clause_methods
- + SELECT_CLAUSE_METHODS
- + end
- +
- + def select_limit_sql(sql)
- + sql << " SKIP #{@opts[:offset]}" if @opts[:offset]
- + sql << " FIRST #{@opts[:limit]}" if @opts[:limit]
- + end
- + end
- + end
- +end
Add Comment
Please, Sign In to add comment