Module: Sequel::Firebird::DatasetMethods

Defined in:
lib/sequel/adapters/shared/firebird.rb

Constant Summary collapse

BOOL_TRUE =
'1'.freeze
BOOL_FALSE =
'0'.freeze
NULL =
LiteralString.new('NULL').freeze
FIRST =
" FIRST ".freeze
SKIP =
" SKIP ".freeze
DEFAULT_FROM =
" FROM RDB$DATABASE"

Instance Method Summary collapse

Instance Method Details

#insert(*values) ⇒ Object

Insert given values into the database.



168
169
170
171
172
173
174
# File 'lib/sequel/adapters/shared/firebird.rb', line 168

def insert(*values)
  if @opts[:sql] || @opts[:returning]
    super
  else
    returning(insert_pk).insert(*values){|r| return r.values.first}
  end
end

#insert_select(*values) ⇒ Object

Insert a record returning the record inserted



177
178
179
# File 'lib/sequel/adapters/shared/firebird.rb', line 177

def insert_select(*values)
  with_sql_first(insert_select_sql(*values))
end

#insert_select_sql(*values) ⇒ Object

The SQL to use for an insert_select, adds a RETURNING clause to the insert unless the RETURNING clause is already present.



183
184
185
186
# File 'lib/sequel/adapters/shared/firebird.rb', line 183

def insert_select_sql(*values)
  ds = opts[:returning] ? self : returning
  ds.insert_sql(*values)
end

#requires_sql_standard_datetimes?Boolean

Returns:

  • (Boolean)


188
189
190
# File 'lib/sequel/adapters/shared/firebird.rb', line 188

def requires_sql_standard_datetimes?
  true
end

#supports_cte?(type = :select) ⇒ Boolean

Returns:

  • (Boolean)


192
193
194
# File 'lib/sequel/adapters/shared/firebird.rb', line 192

def supports_cte?(type=:select)
  type == :select
end

#supports_insert_select?Boolean

Returns:

  • (Boolean)


196
197
198
# File 'lib/sequel/adapters/shared/firebird.rb', line 196

def supports_insert_select?
  true
end

#supports_intersect_except?Boolean

Firebird does not support INTERSECT or EXCEPT

Returns:

  • (Boolean)


201
202
203
# File 'lib/sequel/adapters/shared/firebird.rb', line 201

def supports_intersect_except?
  false
end

#supports_returning?(type) ⇒ Boolean

Returns:

  • (Boolean)


205
206
207
# File 'lib/sequel/adapters/shared/firebird.rb', line 205

def supports_returning?(type)
  type == :insert
end