Issues (393)

plans/rubis_expert.rb (5 issues)

1
# frozen_string_literal: true
2
3
NoSE::Plans::ExecutionPlans.new do
0 ignored issues
show
Block has too many lines. [350/25]
Loading history...
4
  Schema 'rubis_expert'
5
6
  DefaultMix :browsing
7
8
  Group 'BrowseCategories', browsing: 4.44,
9
                            bidding: 7.65,
10
                            write_medium: 7.65,
11
                            write_heavy: 7.65 do
12
    Plan 'Authentication' do
13
      Select users.password
14
      Param  users.id, :==
15
      Lookup 'user_data', [users.id, :==]
16
    end
17
18
    Plan 'Categories' do
19
      Select categories['*']
20
      Param  categories.dummy, :==, 1
21
      Lookup 'category_list', [categories.dummy, :==]
22
    end
23
  end
24
25
  Group 'ViewBidHistory', browsing: 2.38,
26
                          bidding: 1.54,
27
                          write_medium: 1.54,
28
                          write_heavy: 1.54 do
29
    Plan 'ItemName' do
30
      Select items.name
31
      Param  items.id, :==
32
      Lookup 'items_with_category', [items.id, :==]
33
    end
34
35
    Plan 'Bids' do
36
      Select bids['*'], users.id, users.nickname
37
      Param  items.id, :==
38
      Lookup 'item_bids', [items.id, :==]
39
    end
40
  end
41
42
  Group 'ViewItem', browsing: 22.95,
43
                    bidding: 14.17,
44
                    write_medium: 14.17,
45
                    write_heavy: 14.17 do
46
    Plan 'ItemData' do
47
      Select items['*']
48
      Param  items.id, :==
49
      Lookup 'items_with_category', [items.id, :==]
50
    end
51
52
    Plan 'Bids' do
53
      Select bids['*']
54
      Param  items.id, :==
55
      Lookup 'item_bids', [items.id, :==]
56
    end
57
  end
58
59
  Group 'SearchItemsByCategory', browsing: 27.77,
60
                                 bidding: 15.94,
61
                                 write_medium: 15.94,
62
                                 write_heavy: 15.94 do
63
    Plan 'ItemList' do
64
      Select items['*']
65
      Param  categories.id, :==
66
      Param  items.end_date, :>=
67
      Lookup 'items_by_category',
68
             [categories.id, :==],
69
             [items.end_date, :>=], limit: 25
70
      Lookup 'items_with_category', [items.id, :==]
71
    end
72
  end
73
74
  Group 'SearchItemsByRegion', browsing: 8.26,
75
                               bidding: 6.34,
76
                               write_medium: 6.34,
77
                               write_heavy: 6.34 do
78
    Plan 'UserList' do
79
      Select users.id
80
      Param regions.id, :==
81
      Lookup 'users_by_region',
82
             [regions.id, :==]
83
    end
84
85
    Plan 'ItemList' do
86
      Select items['*']
87
      Param  categories.id, :==
88
      Param  items.end_date, :>=
89
      Lookup 'items_by_category',
90
             [categories.id, :==],
91
             # limit multiplied by 5 since we have to filter by region
92
             [items.end_date, :>=], limit: 25 * 5
93
      Lookup 'items_with_category', [items.id, :==]
94
    end
95
  end
96
97
  Group 'BrowseRegions', browsing: 3.21,
98
                         bidding: 5.39,
99
                         write_medium: 5.39,
100
                         write_heavy: 5.39 do
101
    Plan 'Regions' do
102
      Select regions['*']
103
      Param  regions.dummy, :==, 1
104
      Lookup 'region_list', [regions.dummy, :==]
105
      Lookup 'regions', [regions.id, :==]
106
    end
107
  end
108
109
  Group 'ViewUserInfo', browsing: 4.41,
110
                        bidding: 2.48,
111
                        write_medium: 2.48,
112
                        write_heavy: 2.48 do
113
    Plan 'UserData' do
114
      Select users['*'], regions.name
115
      Param  users.id, :==
116
      Lookup 'user_data', [users.id, :==]
117
    end
118
119
    Plan 'CommentsReceived' do
120
      Select comments['*']
121
      Param  users.id, :==
122
      Lookup 'user_comments_received', [users.id, :==]
123
      Lookup 'commenter', [comments.id, :==]
124
    end
125
  end
126
127
  Group 'RegisterItem', bidding: 0.53,
0 ignored issues
show
Block has too many lines. [27/25]
Loading history...
128
                        write_medium: 0.53 * 10,
129
                        write_heavy: 0.53 * 100 do
130
    Plan 'InsertItem' do
131
      Param  items.id, :==
132
      Param  categories.id, :==
133
      Param  items.name, :==
134
      Param  items.description, :==
135
      Param  items.initial_price, :==
136
      Param  items.quantity, :==
137
      Param  items.reserve_price, :==
138
      Param  items.buy_now, :==
139
      Param  items.nb_of_bids, :==
140
      Param  items.max_bid, :==
141
      Param  items.start_date, :==
142
      Param  items.end_date, :==
143
      Insert 'items_with_category'
144
    end
145
146
    Plan 'AddToSold' do
147
      Param  items.id, :==
148
      Param  items.end_date, :==
149
      Param  users.id, :==
150
      Insert 'user_items_sold'
151
    end
152
153
    Plan 'AddToCategory' do
154
      Param  items.id, :==
155
      Param  items.end_date, :==
156
      Param  categories.id, :==
157
      Insert 'items_by_category'
158
    end
159
  end
160
161
  Group 'RegisterUser', bidding: 1.07,
0 ignored issues
show
Block has too many lines. [27/25]
Loading history...
162
                        write_medium: 1.07 * 10,
163
                        write_heavy: 1.07 * 100 do
164
    Plan 'AddUser' do
165
      Support do
166
        Plan 'GetRegionName' do
167
          Select regions.name
168
          Param  regions.id, :==
169
          Lookup 'regions', [regions.id, :==]
170
        end
171
      end
172
173
      Param  users.id, :==
174
      Param  users.firstname, :==
175
      Param  users.lastname, :==
176
      Param  users.nickname, :==
177
      Param  users.password, :==
178
      Param  users.email, :==
179
      Param  users.rating, :==, 0
180
      Param  users.balance, :==, 0
181
      Param  users.creation_date, :==
182
      Param  regions.id, :==
183
      Param  regions.name, :==
184
      Insert 'user_data'
185
    end
186
187
    Plan 'AddToRegion' do
188
      Param  users.id, :==
189
      Param  users.nickname, :==
190
      Param  regions.id, :==
191
      Insert 'users_by_region'
192
    end
193
  end
194
195
  Group 'BuyNow', bidding: 1.16,
196
                  write_medium: 1.16,
197
                  write_heavy: 1.16 do
198
    Plan 'Authentication' do
199
      Select users.password
200
      Param  users.id, :==
201
      Lookup 'user_data', [users.id, :==]
202
    end
203
204
    Plan 'ItemData' do
205
      Select items['*']
206
      Param  items.id, :==
207
      Lookup 'items_with_category', [items.id, :==]
208
    end
209
  end
210
211
  Group 'StoreBuyNow', bidding: 1.10,
212
                       write_medium: 1.10 * 10,
213
                       write_heavy: 1.10 * 100 do
214
    Plan 'ReduceQuantity' do
215
      Support do
216
        Plan 'OldQuantity' do
217
          Select items.quantity, items.end_date, categories.id
218
          Param items.id, :==
219
          Lookup 'items_with_category', [items.id, :==]
220
        end
221
      end
222
223
      Param  items.id, :==
224
      Param  items.end_date, :==
225
      Insert 'items_with_category', items.id, categories.id, items.quantity,
226
             items.end_date
227
      Delete 'items_by_category'
228
      Insert 'items_by_category', categories.id, items.end_date, items.id
229
    end
230
231
    Plan 'AddToBought' do
232
      Param users.id, :==
233
      Param items.id, :==
234
      Param buynow.id, :==
235
      Param buynow.qty, :==
236
      Param buynow.date, :==
237
      Insert 'user_buynow'
238
    end
239
  end
240
241
  Group 'PutBid', bidding: 5.40,
242
                  write_medium: 5.40,
243
                  write_heavy: 5.40 do
244
    Plan 'Authentication' do
245
      Select users.password
246
      Param  users.id, :==
247
      Lookup 'user_data', [users.id, :==]
248
    end
249
250
    Plan 'ItemData' do
251
      Select items['*']
252
      Param  items.id, :==
253
      Lookup 'items_with_category', [items.id, :==]
254
    end
255
256
    Plan 'Bids' do
257
      Select bids['*']
258
      Param  items.id, :==
259
      Lookup 'item_bids', [items.id, :==]
260
    end
261
  end
262
263
  Group 'StoreBid', bidding: 3.74,
0 ignored issues
show
Block has too many lines. [37/25]
Loading history...
264
                    write_medium: 3.74 * 10,
265
                    write_heavy: 3.74 * 100 do
266
    Plan 'AddBid' do
267
      Support do
268
        Plan 'GetMaxBid' do
269
          Select items.max_bid, items.end_date
270
          Param  items.id, :==
271
          Lookup 'item_bids', [items.id, :==], limit: 1
272
        end
273
      end
274
275
      Param  items.id, :==
276
      Param  items.nb_of_bids, :==
277
      Param  users.id, :==
278
      Param  bids.id, :==
279
      Param  bids.qty, :==
280
      Param  bids.bid, :==
281
      Param  bids.date, :==
282
      Insert 'item_bids'
283
    end
284
285
    Plan 'UpdateItem' do
286
      Support do
287
        Plan 'GetItemData' do
288
          Select categories.id, items.max_bid, items.end_date, items.nb_of_bids
289
          Param  items.id, :==
290
          Lookup 'items_with_category', [items.id, :==]
291
        end
292
      end
293
294
      Param items.id, :==
295
      Insert 'items_with_category', items.id, categories.id,
296
             items.max_bid, items.end_date, items.nb_of_bids
297
    end
298
299
    Plan 'AddToUserBids' do
300
      Param users.id, :==
301
      Param items.id, :==
302
      Param items.end_date, :==
303
      Param bids.id, :==
304
      Param bids.qty, :==
305
      Insert 'user_items_bid_on'
306
    end
307
  end
308
309
  Group 'PutComment', bidding: 0.46,
310
                      write_medium: 0.46,
311
                      write_heavy: 0.46 do
312
    Plan 'Authentication' do
313
      Select users.password
314
      Param  users.id, :==
315
      Lookup 'user_data', [users.id, :==]
316
    end
317
318
    Plan 'ItemData' do
319
      Select items['*']
320
      Param  items.id, :==
321
      Lookup 'items_with_category', [items.id, :==]
322
    end
323
324
    Plan 'UserData' do
325
      Select users['*']
326
      Param  users.id, :==
327
      Lookup 'user_data', [users.id, :==]
328
    end
329
  end
330
331
  Group 'StoreComment', bidding: 0.45,
332
                        write_medium: 0.45 * 10,
333
                        write_heavy: 0.45 * 100 do
334
    Plan 'UpdateRating' do
335
      Support do
336
        Plan 'GetRating' do
337
          Select users.rating, regions.id
338
          Param  users.id, :==
339
          Lookup 'user_data', [users.id, :==]
340
        end
341
      end
342
343
      Param  users.id, :==
344
      Insert 'user_data', users.id, users.rating, regions.id
345
    end
346
347
    Plan 'InsertComment' do
348
      Param  comments.id, :==
349
      Param  comments.rating, :==
350
      Param  comments.date, :==
351
      Param  comments.comment, :==
352
      Param  items.id, :==
353
      Param  users.id, :==
354
      Insert 'user_comments_received'
355
    end
356
  end
357
358
  Group 'AboutMe', bidding: 1.71,
0 ignored issues
show
Block has too many lines. [32/25]
Loading history...
359
                   write_medium: 1.71,
360
                   write_heavy: 1.71 do
361
    Plan 'UserData' do
362
      Select users['*']
363
      Param  users.id, :==
364
      Lookup 'user_data', [users.id, :==]
365
    end
366
367
    Plan 'CommentsReceived' do
368
      Select comments['*']
369
      Param  users.id, :==
370
      Lookup 'user_comments_received', [users.id, :==]
371
      Lookup 'commenter', [comments.id, :==]
372
    end
373
374
    Plan 'BuyNow' do
375
      Select  items['*']
376
      Param   users.id, :==
377
      Param   buynow.date, :>=
378
      Lookup 'user_buynow', [users.id, :==], [buynow.date, :>=]
379
      Lookup 'items_with_category', [items.id, :==]
380
    end
381
382
    Plan 'ItemsSold' do
383
      Select  items['*']
384
      Param   users.id, :==
385
      Param   items.end_date, :>=
386
      Lookup 'user_items_sold', [users.id, :==], [items.end_date, :>=]
387
      Lookup 'items_with_category', [items.id, :==]
388
    end
389
390
    Plan 'ItemsBid' do
391
      Select items['*']
392
      Param  users.id, :==
393
      Param  items.end_date, :>=
394
      Lookup 'user_items_bid_on', [users.id, :==], [items.end_date, :>=]
395
      Lookup 'items_with_category', [items.id, :==]
396
    end
397
  end
398
end
399