jdbc-helper 0.4.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,6 +12,7 @@ require 'jdbc-helper/connection/row'
|
|
12
12
|
require 'jdbc-helper/wrapper/object_wrapper'
|
13
13
|
require 'jdbc-helper/wrapper/table_wrapper'
|
14
14
|
require 'jdbc-helper/wrapper/table_wrapper'
|
15
|
+
require 'jdbc-helper/wrapper/sequence_wrapper'
|
15
16
|
require 'jdbc-helper/wrapper/function_wrapper'
|
16
17
|
require 'jdbc-helper/wrapper/procedure_wrapper'
|
17
18
|
|
@@ -353,6 +354,14 @@ class Connection
|
|
353
354
|
JDBCHelper::TableWrapper.new self, table_name
|
354
355
|
end
|
355
356
|
|
357
|
+
# Returns a sequence wrapper for the given name
|
358
|
+
# @since 0.4.2
|
359
|
+
# @param [String/Symbol] sequence_name Name of the sequence to be wrapped
|
360
|
+
# @return [JDBCHelper::SequenceWrapper]
|
361
|
+
def sequence sequence_name
|
362
|
+
JDBCHelper::SequenceWrapper.new self, sequence_name
|
363
|
+
end
|
364
|
+
|
356
365
|
# Returns a function wrapper for the given function name
|
357
366
|
# @since 0.2.2
|
358
367
|
# @param [String/Symbol] func_name Name of the function to be wrapped
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
# Junegunn Choi (junegunn.c@gmail.com)
|
3
|
+
|
4
|
+
module JDBCHelper
|
5
|
+
# A wrapper object representing a database sequence.
|
6
|
+
# @since 0.4.2
|
7
|
+
# @example Usage
|
8
|
+
# conn.sequence(:my_seq).create!(1)
|
9
|
+
# conn.sequence(:my_seq).nextval
|
10
|
+
# conn.sequence(:my_seq).currval
|
11
|
+
# conn.sequence(:my_seq).reset!(1)
|
12
|
+
# conn.sequence(:my_seq).drop!
|
13
|
+
class SequenceWrapper < ObjectWrapper
|
14
|
+
# Returns the name of the sequence
|
15
|
+
# @return [String]
|
16
|
+
alias to_s name
|
17
|
+
|
18
|
+
# Increments the sequence and returns the value
|
19
|
+
# @return [Fixnum]
|
20
|
+
def nextval
|
21
|
+
@connection.query("select #{name}.nextval from dual")[0][0].to_i
|
22
|
+
end
|
23
|
+
|
24
|
+
# Returns the incremented value of the sequence
|
25
|
+
# @return [Fixnum]
|
26
|
+
def currval
|
27
|
+
@connection.query("select #{name}.currval from dual")[0][0].to_i
|
28
|
+
end
|
29
|
+
|
30
|
+
# Recreates the sequence. Cannot be undone.
|
31
|
+
# @param [Fixnum] value Initial value
|
32
|
+
# @param [Fixnum] increment_by Increment size for a single nextval call
|
33
|
+
# @return [JDBCHelper::SequenceWrapper] Self.
|
34
|
+
def reset! value = 1, increment_by = 1
|
35
|
+
drop! rescue nil
|
36
|
+
create! value, increment_by
|
37
|
+
self
|
38
|
+
end
|
39
|
+
|
40
|
+
# Drops the sequence. Cannot be undone.
|
41
|
+
# @return [JDBCHelper::SequenceWrapper] Self.
|
42
|
+
def drop!
|
43
|
+
@connection.update("drop sequence #{name}")
|
44
|
+
self
|
45
|
+
end
|
46
|
+
|
47
|
+
# Creates the sequence. Cannot be undone.
|
48
|
+
# @param [Fixnum] value Initial value
|
49
|
+
# @param [Fixnum] increment_by Increment size for a single nextval call
|
50
|
+
# @return [JDBCHelper::SequenceWrapper] Self.
|
51
|
+
def create! value = 1, increment_by = 1
|
52
|
+
create = JDBCHelper::SQL.check(
|
53
|
+
"create sequence #{name} start with #{value} increment by #{increment_by}")
|
54
|
+
@connection.update(create)
|
55
|
+
self
|
56
|
+
end
|
57
|
+
end#SequenceWrapper
|
58
|
+
end#JDBCHelper
|
59
|
+
|
60
|
+
|
@@ -103,17 +103,21 @@ class TableWrapper < ObjectWrapper
|
|
103
103
|
|
104
104
|
# Empties the table.
|
105
105
|
# @note This operation cannot be undone
|
106
|
-
# @return [
|
107
|
-
def
|
106
|
+
# @return [JDBCHelper::TableWrapper] Self.
|
107
|
+
def truncate!
|
108
108
|
@connection.update(JDBCHelper::SQL.check "truncate table #{name}")
|
109
|
+
self
|
109
110
|
end
|
111
|
+
alias truncate_table! truncate!
|
110
112
|
|
111
113
|
# Drops the table.
|
112
114
|
# @note This operation cannot be undone
|
113
|
-
# @return [
|
114
|
-
def
|
115
|
+
# @return [JDBCHelper::TableWrapper] Self.
|
116
|
+
def drop!
|
115
117
|
@connection.update(JDBCHelper::SQL.check "drop table #{name}")
|
118
|
+
self
|
116
119
|
end
|
120
|
+
alias drop_table! truncate!
|
117
121
|
|
118
122
|
# Select SQL wrapper
|
119
123
|
include Enumerable
|
data/test/database.yml
CHANGED
@@ -5,9 +5,9 @@ mysql:
|
|
5
5
|
user: root
|
6
6
|
password:
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
8
|
+
oracle:
|
9
|
+
driver: oracle.jdbc.driver.OracleDriver
|
10
|
+
url: jdbc:oracle:thin:@10.20.253.105/didev
|
11
|
+
user: wisefn
|
12
|
+
password: wisefndb
|
13
13
|
|
data/test/test_object_wrapper.rb
CHANGED
@@ -339,7 +339,7 @@ class TestObjectWrapper < Test::Unit::TestCase
|
|
339
339
|
table = conn.table(@table_name)
|
340
340
|
insert table
|
341
341
|
|
342
|
-
table.
|
342
|
+
table.truncate!
|
343
343
|
assert table.empty?
|
344
344
|
end
|
345
345
|
end
|
@@ -348,10 +348,33 @@ class TestObjectWrapper < Test::Unit::TestCase
|
|
348
348
|
each_connection do |conn|
|
349
349
|
create_table conn
|
350
350
|
table = conn.table(@table_name)
|
351
|
-
table.
|
351
|
+
table.drop!
|
352
352
|
|
353
353
|
assert_equal false, drop_table(conn)
|
354
354
|
end
|
355
355
|
end
|
356
|
+
|
357
|
+
def test_sequence
|
358
|
+
each_connection do |conn|
|
359
|
+
# MySQL doesn't support sequences
|
360
|
+
next if @type == :mysql
|
361
|
+
|
362
|
+
seq = conn.sequence(@table_name + '_seq')
|
363
|
+
seq.reset!(100)
|
364
|
+
assert (prev = seq.nextval) >= 100
|
365
|
+
assert_equal prev, seq.currval
|
366
|
+
assert_equal 1, seq.nextval - prev
|
367
|
+
|
368
|
+
seq.reset! 1, 2
|
369
|
+
assert seq.nextval >= 1
|
370
|
+
assert seq.nextval <= 4
|
371
|
+
assert seq.nextval >= 5
|
372
|
+
|
373
|
+
seq.drop!
|
374
|
+
seq.create!(10)
|
375
|
+
assert seq.nextval >= 10
|
376
|
+
seq.drop!
|
377
|
+
end
|
378
|
+
end
|
356
379
|
end
|
357
380
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: jdbc-helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.4.
|
5
|
+
version: 0.4.2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Junegunn Choi
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-06-
|
13
|
+
date: 2011-06-04 00:00:00 +09:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -84,6 +84,7 @@ files:
|
|
84
84
|
- lib/jdbc-helper/wrapper/function_wrapper.rb
|
85
85
|
- lib/jdbc-helper/wrapper/object_wrapper.rb
|
86
86
|
- lib/jdbc-helper/wrapper/procedure_wrapper.rb
|
87
|
+
- lib/jdbc-helper/wrapper/sequence_wrapper.rb
|
87
88
|
- lib/jdbc-helper/wrapper/table_wrapper.rb
|
88
89
|
- LICENSE.txt
|
89
90
|
- README.rdoc
|