Sha256: bc3d76d4d7e46c9bdec2b98758053f0740c2eb9d414b43e32fb31fc797838762
Contents?: true
Size: 1.97 KB
Versions: 2
Compression:
Stored size: 1.97 KB
Contents
module Sequel module JDBC # Database and Dataset support for H2 databases accessed via JDBC. module H2 # Instance methods for H2 Database objects accessed via JDBC. module DatabaseMethods # H2 needs to add a primary key column as a constraint def alter_table_sql(table, op) case op[:op] when :add_column if op.delete(:primary_key) sql = super(table, op) [sql, "ALTER TABLE #{quote_schema_table(table)} ADD PRIMARY KEY (#{quote_identifier(op[:name])})"] else super(table, op) end else super(table, op) end end # Return Sequel::JDBC::H2::Dataset object with the given opts. def dataset(opts=nil) Sequel::JDBC::H2::Dataset.new(self, opts) end # H2 uses an IDENTITY type def serial_primary_key_options {:primary_key => true, :type => :identity} end private # Use IDENTITY() to get the last inserted id. def last_insert_id(conn, opts={}) stmt = conn.createStatement begin rs = stmt.executeQuery('SELECT IDENTITY();') rs.next rs.getInt(1) ensure stmt.close end end # Default to a single connection for a memory database. def connection_pool_default_options o = super uri == 'jdbc:h2:mem:' ? o.merge(:max_connections=>1) : o end end # Dataset class for H2 datasets accessed via JDBC. class Dataset < JDBC::Dataset # Use H2 syntax for Date, DateTime, and Time types. def literal(v) case v when Date v.strftime("DATE '%Y-%m-%d'") when DateTime, Time v.strftime("TIMESTAMP '%Y-%m-%d %H:%M:%S'") else super end end end end end end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
colincasey-sequel-2.10.1 | lib/sequel_core/adapters/jdbc/h2.rb |
sequel-2.10.0 | lib/sequel_core/adapters/jdbc/h2.rb |