File tree Expand file tree Collapse file tree 2 files changed +9
-11
lines changed
frameworks/Ruby/rack-sequel Expand file tree Collapse file tree 2 files changed +9
-11
lines changed Original file line number Diff line number Diff line change @@ -41,16 +41,11 @@ def connect(dbtype)
41
41
42
42
# Define ORM models
43
43
class World < Sequel ::Model ( :World )
44
- BY_ID = naked . where ( id : :$id ) . prepare ( :first , :world_by_id )
45
- UPDATE = where ( id : :$id ) . prepare ( :update , :world_update , randomnumber : :$randomnumber )
46
-
47
44
def_column_alias ( :randomnumber , :randomNumber ) if DB . database_type == :mysql
48
45
49
46
def self . batch_update ( worlds )
50
47
if DB . database_type == :mysql
51
- worlds . each do |world |
52
- UPDATE . ( id : world [ :id ] , randomnumber : world [ :randomnumber ] )
53
- end
48
+ worlds . map ( &:save_changes )
54
49
else
55
50
ids = [ ]
56
51
sql = String . new ( "UPDATE world SET randomnumber = CASE id " )
Original file line number Diff line number Diff line change @@ -30,14 +30,14 @@ def rand1
30
30
end
31
31
32
32
def db
33
- World :: BY_ID . ( id : rand1 )
33
+ World . with_pk ( rand1 ) . values
34
34
end
35
35
36
36
def queries ( env )
37
37
ids = ALL_IDS . sample ( bounded_queries ( env ) )
38
38
DB . synchronize do
39
39
ids . map do |id |
40
- World :: BY_ID . ( id : id )
40
+ World . with_pk ( id ) . values
41
41
end
42
42
end
43
43
end
@@ -84,17 +84,20 @@ def fortunes
84
84
end
85
85
86
86
def updates ( env )
87
+ worlds = [ ]
87
88
ids = ALL_IDS . sample ( bounded_queries ( env ) )
88
89
DB . synchronize do
89
90
worlds =
90
91
ids . map do |id |
91
- world = World ::BY_ID . ( id : id )
92
- world [ :randomnumber ] = rand1
92
+ world = World . with_pk ( id )
93
+ new_value = rand1
94
+ new_value = rand1 while new_value == world . randomnumber
95
+ world . randomnumber = new_value
93
96
world
94
97
end
95
98
World . batch_update ( worlds )
96
- worlds
97
99
end
100
+ worlds . map! ( &:values )
98
101
end
99
102
100
103
def call ( env )
You can’t perform that action at this time.
0 commit comments