dwh 0.1.0

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.
Files changed (104) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +36 -0
  3. data/CHANGELOG.md +5 -0
  4. data/LICENSE +21 -0
  5. data/README.md +130 -0
  6. data/Rakefile +42 -0
  7. data/docs/DWH/Adapters/Adapter.html +3053 -0
  8. data/docs/DWH/Adapters/Athena.html +1704 -0
  9. data/docs/DWH/Adapters/Boolean.html +121 -0
  10. data/docs/DWH/Adapters/Druid.html +1626 -0
  11. data/docs/DWH/Adapters/DuckDb.html +2012 -0
  12. data/docs/DWH/Adapters/MySql.html +1704 -0
  13. data/docs/DWH/Adapters/OpenAuthorizable/ClassMethods.html +265 -0
  14. data/docs/DWH/Adapters/OpenAuthorizable.html +1102 -0
  15. data/docs/DWH/Adapters/Postgres.html +2000 -0
  16. data/docs/DWH/Adapters/Snowflake.html +1662 -0
  17. data/docs/DWH/Adapters/SqlServer.html +2084 -0
  18. data/docs/DWH/Adapters/Trino.html +1835 -0
  19. data/docs/DWH/Adapters.html +129 -0
  20. data/docs/DWH/AuthenticationError.html +142 -0
  21. data/docs/DWH/Behaviors.html +767 -0
  22. data/docs/DWH/Capabilities.html +748 -0
  23. data/docs/DWH/Column.html +1115 -0
  24. data/docs/DWH/ConfigError.html +143 -0
  25. data/docs/DWH/ConnectionError.html +143 -0
  26. data/docs/DWH/DWHError.html +138 -0
  27. data/docs/DWH/ExecutionError.html +143 -0
  28. data/docs/DWH/Factory.html +1133 -0
  29. data/docs/DWH/Functions/Arrays.html +505 -0
  30. data/docs/DWH/Functions/Dates.html +1644 -0
  31. data/docs/DWH/Functions/ExtractDatePart.html +804 -0
  32. data/docs/DWH/Functions/Nulls.html +377 -0
  33. data/docs/DWH/Functions.html +846 -0
  34. data/docs/DWH/Logger.html +258 -0
  35. data/docs/DWH/OAuthError.html +138 -0
  36. data/docs/DWH/Settings.html +658 -0
  37. data/docs/DWH/StreamingStats.html +804 -0
  38. data/docs/DWH/Table.html +1260 -0
  39. data/docs/DWH/TableStats.html +583 -0
  40. data/docs/DWH/TokenExpiredError.html +142 -0
  41. data/docs/DWH/UnsupportedCapability.html +135 -0
  42. data/docs/DWH.html +220 -0
  43. data/docs/_index.html +471 -0
  44. data/docs/class_list.html +54 -0
  45. data/docs/css/common.css +1 -0
  46. data/docs/css/full_list.css +58 -0
  47. data/docs/css/style.css +503 -0
  48. data/docs/file.README.html +210 -0
  49. data/docs/file.adapters.html +514 -0
  50. data/docs/file.creating-adapters.html +497 -0
  51. data/docs/file.getting-started.html +288 -0
  52. data/docs/file.usage.html +446 -0
  53. data/docs/file_list.html +79 -0
  54. data/docs/frames.html +22 -0
  55. data/docs/guides/adapters.md +445 -0
  56. data/docs/guides/creating-adapters.md +430 -0
  57. data/docs/guides/getting-started.md +225 -0
  58. data/docs/guides/usage.md +378 -0
  59. data/docs/index.html +210 -0
  60. data/docs/js/app.js +344 -0
  61. data/docs/js/full_list.js +242 -0
  62. data/docs/js/jquery.js +4 -0
  63. data/docs/method_list.html +2038 -0
  64. data/docs/top-level-namespace.html +110 -0
  65. data/lib/dwh/adapters/athena.rb +359 -0
  66. data/lib/dwh/adapters/druid.rb +267 -0
  67. data/lib/dwh/adapters/duck_db.rb +235 -0
  68. data/lib/dwh/adapters/my_sql.rb +235 -0
  69. data/lib/dwh/adapters/open_authorizable.rb +215 -0
  70. data/lib/dwh/adapters/postgres.rb +250 -0
  71. data/lib/dwh/adapters/snowflake.rb +489 -0
  72. data/lib/dwh/adapters/sql_server.rb +257 -0
  73. data/lib/dwh/adapters/trino.rb +213 -0
  74. data/lib/dwh/adapters.rb +363 -0
  75. data/lib/dwh/behaviors.rb +67 -0
  76. data/lib/dwh/capabilities.rb +39 -0
  77. data/lib/dwh/column.rb +79 -0
  78. data/lib/dwh/errors.rb +29 -0
  79. data/lib/dwh/factory.rb +125 -0
  80. data/lib/dwh/functions/arrays.rb +42 -0
  81. data/lib/dwh/functions/dates.rb +162 -0
  82. data/lib/dwh/functions/extract_date_part.rb +70 -0
  83. data/lib/dwh/functions/nulls.rb +31 -0
  84. data/lib/dwh/functions.rb +86 -0
  85. data/lib/dwh/logger.rb +50 -0
  86. data/lib/dwh/settings/athena.yml +77 -0
  87. data/lib/dwh/settings/base.yml +81 -0
  88. data/lib/dwh/settings/databricks.yml +51 -0
  89. data/lib/dwh/settings/druid.yml +59 -0
  90. data/lib/dwh/settings/duckdb.yml +44 -0
  91. data/lib/dwh/settings/mysql.yml +67 -0
  92. data/lib/dwh/settings/postgres.yml +30 -0
  93. data/lib/dwh/settings/redshift.yml +52 -0
  94. data/lib/dwh/settings/snowflake.yml +45 -0
  95. data/lib/dwh/settings/sqlserver.yml +80 -0
  96. data/lib/dwh/settings/trino.yml +77 -0
  97. data/lib/dwh/settings.rb +79 -0
  98. data/lib/dwh/streaming_stats.rb +69 -0
  99. data/lib/dwh/table.rb +105 -0
  100. data/lib/dwh/table_stats.rb +51 -0
  101. data/lib/dwh/version.rb +5 -0
  102. data/lib/dwh.rb +54 -0
  103. data/sig/dwh.rbs +4 -0
  104. metadata +231 -0
@@ -0,0 +1,767 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Module: DWH::Behaviors
8
+
9
+ &mdash; Documentation by YARD 0.9.37
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css" />
14
+
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css" />
16
+
17
+ <script type="text/javascript">
18
+ pathId = "DWH::Behaviors";
19
+ relpath = '../';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="../class_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="../_index.html">Index (B)</a> &raquo;
40
+ <span class='title'><span class='object_link'><a href="../DWH.html" title="DWH (module)">DWH</a></span></span>
41
+ &raquo;
42
+ <span class="title">Behaviors</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="../class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <div id="content"><h1>Module: DWH::Behaviors
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+ <dl>
78
+ <dt>Included in:</dt>
79
+ <dd><span class='object_link'><a href="Adapters/Adapter.html" title="DWH::Adapters::Adapter (class)">Adapters::Adapter</a></span></dd>
80
+ </dl>
81
+
82
+
83
+
84
+ <dl>
85
+ <dt>Defined in:</dt>
86
+ <dd>lib/dwh/behaviors.rb</dd>
87
+ </dl>
88
+
89
+ </div>
90
+
91
+ <h2>Overview</h2><div class="docstring">
92
+ <div class="discussion">
93
+ <p>The Behaviors module will help us write SQL queries that are
94
+ optimized for the target database. These are setup primarily for
95
+ the purposes of Strata. However, any sql writer can use this to
96
+ write better sql.</p>
97
+
98
+ <p>For exmaple temp_table_type will tell us what the preferred temporary
99
+ table strategy should be. intermediate_measure_filter? will let us know
100
+ if an aggregation should be filtered in a CTE, final pass, or both.</p>
101
+
102
+
103
+ </div>
104
+ </div>
105
+ <div class="tags">
106
+
107
+
108
+ </div>
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+ <h2>
117
+ Instance Method Summary
118
+ <small><a href="#" class="summary_toggle">collapse</a></small>
119
+ </h2>
120
+
121
+ <ul class="summary">
122
+
123
+ <li class="public ">
124
+ <span class="summary_signature">
125
+
126
+ <a href="#apply_advanced_filtering_on_array_projections%3F-instance_method" title="#apply_advanced_filtering_on_array_projections? (instance method)">#<strong>apply_advanced_filtering_on_array_projections?</strong> &#x21d2; Boolean </a>
127
+
128
+
129
+
130
+ </span>
131
+
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+ <span class="summary_desc"><div class='inline'><p>When an array dimension is projected and it is filtered in the where clause, some db’s like Druid needs a having clause to ensure the projected set matches the filtered set.</p>
141
+ </div></span>
142
+
143
+ </li>
144
+
145
+
146
+ <li class="public ">
147
+ <span class="summary_signature">
148
+
149
+ <a href="#cross_universe_measure_filtering_strategy-instance_method" title="#cross_universe_measure_filtering_strategy (instance method)">#<strong>cross_universe_measure_filtering_strategy</strong> &#x21d2; Object </a>
150
+
151
+
152
+
153
+ </span>
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+ <span class="summary_desc"><div class='inline'><p>Whether to apply a measure filter to intermediate stages and final pass when appropriate.</p>
164
+ </div></span>
165
+
166
+ </li>
167
+
168
+
169
+ <li class="public ">
170
+ <span class="summary_signature">
171
+
172
+ <a href="#extend_ending_date_to_last_hour_of_day%3F-instance_method" title="#extend_ending_date_to_last_hour_of_day? (instance method)">#<strong>extend_ending_date_to_last_hour_of_day?</strong> &#x21d2; Boolean </a>
173
+
174
+
175
+
176
+ </span>
177
+
178
+
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+ <span class="summary_desc"><div class='inline'><p>In druid when you do specific time range you need to apply the last hour of the day to the date value to get all inclusive data for that date.</p>
187
+ </div></span>
188
+
189
+ </li>
190
+
191
+
192
+ <li class="public ">
193
+ <span class="summary_signature">
194
+
195
+ <a href="#final_measure_filter%3F-instance_method" title="#final_measure_filter? (instance method)">#<strong>final_measure_filter?</strong> &#x21d2; Boolean </a>
196
+
197
+
198
+
199
+ </span>
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+
208
+
209
+ <span class="summary_desc"><div class='inline'>
210
+ </div></span>
211
+
212
+ </li>
213
+
214
+
215
+ <li class="public ">
216
+ <span class="summary_signature">
217
+
218
+ <a href="#final_pass_measure_join_type-instance_method" title="#final_pass_measure_join_type (instance method)">#<strong>final_pass_measure_join_type</strong> &#x21d2; Object </a>
219
+
220
+
221
+
222
+ </span>
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+
231
+
232
+ <span class="summary_desc"><div class='inline'><p>When measures from multiple fact universes are combined they need to be merged in a Merge stage SQL statement.</p>
233
+ </div></span>
234
+
235
+ </li>
236
+
237
+
238
+ <li class="public ">
239
+ <span class="summary_signature">
240
+
241
+ <a href="#greedy_apply_date_filters-instance_method" title="#greedy_apply_date_filters (instance method)">#<strong>greedy_apply_date_filters</strong> &#x21d2; Object </a>
242
+
243
+
244
+
245
+ </span>
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+ <span class="summary_desc"><div class='inline'><p>When a filter on a Date time field can be applied to multiple tables in the join tree should we apply to all of them or just the first one.</p>
256
+ </div></span>
257
+
258
+ </li>
259
+
260
+
261
+ <li class="public ">
262
+ <span class="summary_signature">
263
+
264
+ <a href="#intermediate_measure_filter%3F-instance_method" title="#intermediate_measure_filter? (instance method)">#<strong>intermediate_measure_filter?</strong> &#x21d2; Boolean </a>
265
+
266
+
267
+
268
+ </span>
269
+
270
+
271
+
272
+
273
+
274
+
275
+
276
+
277
+
278
+ <span class="summary_desc"><div class='inline'>
279
+ </div></span>
280
+
281
+ </li>
282
+
283
+
284
+ <li class="public ">
285
+ <span class="summary_signature">
286
+
287
+ <a href="#temp_table_prefix-instance_method" title="#temp_table_prefix (instance method)">#<strong>temp_table_prefix</strong> &#x21d2; Object </a>
288
+
289
+
290
+
291
+ </span>
292
+
293
+
294
+
295
+
296
+
297
+
298
+
299
+
300
+
301
+ <span class="summary_desc"><div class='inline'>
302
+ </div></span>
303
+
304
+ </li>
305
+
306
+
307
+ <li class="public ">
308
+ <span class="summary_signature">
309
+
310
+ <a href="#temp_table_type-instance_method" title="#temp_table_type (instance method)">#<strong>temp_table_type</strong> &#x21d2; Object </a>
311
+
312
+
313
+
314
+ </span>
315
+
316
+
317
+
318
+
319
+
320
+
321
+
322
+
323
+
324
+ <span class="summary_desc"><div class='inline'><p>Defines how intermediate queries should be handled.</p>
325
+ </div></span>
326
+
327
+ </li>
328
+
329
+
330
+ </ul>
331
+
332
+
333
+
334
+
335
+ <div id="instance_method_details" class="method_details_list">
336
+ <h2>Instance Method Details</h2>
337
+
338
+
339
+ <div class="method_details first">
340
+ <h3 class="signature first" id="apply_advanced_filtering_on_array_projections?-instance_method">
341
+
342
+ #<strong>apply_advanced_filtering_on_array_projections?</strong> &#x21d2; <tt>Boolean</tt>
343
+
344
+
345
+
346
+
347
+
348
+ </h3><div class="docstring">
349
+ <div class="discussion">
350
+ <p>When an array dimension is projected and it is filtered
351
+ in the where clause, some db’s like Druid needs a
352
+ having clause to ensure the projected set matches
353
+ the filtered set.</p>
354
+
355
+
356
+ </div>
357
+ </div>
358
+ <div class="tags">
359
+
360
+ <p class="tag_title">Returns:</p>
361
+ <ul class="return">
362
+
363
+ <li>
364
+
365
+
366
+ <span class='type'>(<tt>Boolean</tt>)</span>
367
+
368
+
369
+
370
+ </li>
371
+
372
+ </ul>
373
+
374
+ </div><table class="source_code">
375
+ <tr>
376
+ <td>
377
+ <pre class="lines">
378
+
379
+
380
+ 32
381
+ 33
382
+ 34</pre>
383
+ </td>
384
+ <td>
385
+ <pre class="code"><span class="info file"># File 'lib/dwh/behaviors.rb', line 32</span>
386
+
387
+ <span class='kw'>def</span> <span class='id identifier rubyid_apply_advanced_filtering_on_array_projections?'>apply_advanced_filtering_on_array_projections?</span>
388
+ <span class='id identifier rubyid_settings'>settings</span><span class='lbracket'>[</span><span class='symbol'>:apply_advanced_filtering_on_array_projections</span><span class='rbracket'>]</span>
389
+ <span class='kw'>end</span></pre>
390
+ </td>
391
+ </tr>
392
+ </table>
393
+ </div>
394
+
395
+ <div class="method_details ">
396
+ <h3 class="signature " id="cross_universe_measure_filtering_strategy-instance_method">
397
+
398
+ #<strong>cross_universe_measure_filtering_strategy</strong> &#x21d2; <tt>Object</tt>
399
+
400
+
401
+
402
+
403
+
404
+ </h3><div class="docstring">
405
+ <div class="discussion">
406
+ <p>Whether to apply a measure filter to intermediate stages and
407
+ final pass when appropriate. This is the case of multi universe
408
+ query with measure filter. Default behavior is to apply the filter
409
+ in the intermediate stage and final pass.</p>
410
+
411
+
412
+ </div>
413
+ </div>
414
+ <div class="tags">
415
+
416
+
417
+ </div><table class="source_code">
418
+ <tr>
419
+ <td>
420
+ <pre class="lines">
421
+
422
+
423
+ 55
424
+ 56
425
+ 57</pre>
426
+ </td>
427
+ <td>
428
+ <pre class="code"><span class="info file"># File 'lib/dwh/behaviors.rb', line 55</span>
429
+
430
+ <span class='kw'>def</span> <span class='id identifier rubyid_cross_universe_measure_filtering_strategy'>cross_universe_measure_filtering_strategy</span>
431
+ <span class='id identifier rubyid_settings'>settings</span><span class='lbracket'>[</span><span class='symbol'>:cross_universe_measure_filtering_strategy</span><span class='rbracket'>]</span>
432
+ <span class='kw'>end</span></pre>
433
+ </td>
434
+ </tr>
435
+ </table>
436
+ </div>
437
+
438
+ <div class="method_details ">
439
+ <h3 class="signature " id="extend_ending_date_to_last_hour_of_day?-instance_method">
440
+
441
+ #<strong>extend_ending_date_to_last_hour_of_day?</strong> &#x21d2; <tt>Boolean</tt>
442
+
443
+
444
+
445
+
446
+
447
+ </h3><div class="docstring">
448
+ <div class="discussion">
449
+ <p>In druid when you do specific time range you need
450
+ to apply the last hour of the day to the date value
451
+ to get all inclusive data for that date.</p>
452
+
453
+
454
+ </div>
455
+ </div>
456
+ <div class="tags">
457
+
458
+ <p class="tag_title">Returns:</p>
459
+ <ul class="return">
460
+
461
+ <li>
462
+
463
+
464
+ <span class='type'>(<tt>Boolean</tt>)</span>
465
+
466
+
467
+
468
+ </li>
469
+
470
+ </ul>
471
+
472
+ </div><table class="source_code">
473
+ <tr>
474
+ <td>
475
+ <pre class="lines">
476
+
477
+
478
+ 14
479
+ 15
480
+ 16</pre>
481
+ </td>
482
+ <td>
483
+ <pre class="code"><span class="info file"># File 'lib/dwh/behaviors.rb', line 14</span>
484
+
485
+ <span class='kw'>def</span> <span class='id identifier rubyid_extend_ending_date_to_last_hour_of_day?'>extend_ending_date_to_last_hour_of_day?</span>
486
+ <span class='id identifier rubyid_settings'>settings</span><span class='lbracket'>[</span><span class='symbol'>:extend_ending_date_to_last_hour_of_day</span><span class='rbracket'>]</span>
487
+ <span class='kw'>end</span></pre>
488
+ </td>
489
+ </tr>
490
+ </table>
491
+ </div>
492
+
493
+ <div class="method_details ">
494
+ <h3 class="signature " id="final_measure_filter?-instance_method">
495
+
496
+ #<strong>final_measure_filter?</strong> &#x21d2; <tt>Boolean</tt>
497
+
498
+
499
+
500
+
501
+
502
+ </h3><div class="docstring">
503
+ <div class="discussion">
504
+
505
+
506
+
507
+ </div>
508
+ </div>
509
+ <div class="tags">
510
+
511
+ <p class="tag_title">Returns:</p>
512
+ <ul class="return">
513
+
514
+ <li>
515
+
516
+
517
+ <span class='type'>(<tt>Boolean</tt>)</span>
518
+
519
+
520
+
521
+ </li>
522
+
523
+ </ul>
524
+
525
+ </div><table class="source_code">
526
+ <tr>
527
+ <td>
528
+ <pre class="lines">
529
+
530
+
531
+ 63
532
+ 64
533
+ 65</pre>
534
+ </td>
535
+ <td>
536
+ <pre class="code"><span class="info file"># File 'lib/dwh/behaviors.rb', line 63</span>
537
+
538
+ <span class='kw'>def</span> <span class='id identifier rubyid_final_measure_filter?'>final_measure_filter?</span>
539
+ <span class='qwords_beg'>%w[</span><span class='tstring_content'>both</span><span class='words_sep'> </span><span class='tstring_content'>final</span><span class='tstring_end'>]</span></span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_settings'>settings</span><span class='lbracket'>[</span><span class='symbol'>:cross_universe_measure_filtering_strategy</span><span class='rbracket'>]</span><span class='rparen'>)</span>
540
+ <span class='kw'>end</span></pre>
541
+ </td>
542
+ </tr>
543
+ </table>
544
+ </div>
545
+
546
+ <div class="method_details ">
547
+ <h3 class="signature " id="final_pass_measure_join_type-instance_method">
548
+
549
+ #<strong>final_pass_measure_join_type</strong> &#x21d2; <tt>Object</tt>
550
+
551
+
552
+
553
+
554
+
555
+ </h3><div class="docstring">
556
+ <div class="discussion">
557
+ <p>When measures from multiple fact universes are combined
558
+ they need to be merged in a Merge stage SQL statement.
559
+ The components is typically combined by Full Outer Join
560
+ but could be modified as needed.</p>
561
+
562
+
563
+ </div>
564
+ </div>
565
+ <div class="tags">
566
+
567
+
568
+ </div><table class="source_code">
569
+ <tr>
570
+ <td>
571
+ <pre class="lines">
572
+
573
+
574
+ 40
575
+ 41
576
+ 42</pre>
577
+ </td>
578
+ <td>
579
+ <pre class="code"><span class="info file"># File 'lib/dwh/behaviors.rb', line 40</span>
580
+
581
+ <span class='kw'>def</span> <span class='id identifier rubyid_final_pass_measure_join_type'>final_pass_measure_join_type</span>
582
+ <span class='id identifier rubyid_settings'>settings</span><span class='lbracket'>[</span><span class='symbol'>:final_pass_measure_join_type</span><span class='rbracket'>]</span>
583
+ <span class='kw'>end</span></pre>
584
+ </td>
585
+ </tr>
586
+ </table>
587
+ </div>
588
+
589
+ <div class="method_details ">
590
+ <h3 class="signature " id="greedy_apply_date_filters-instance_method">
591
+
592
+ #<strong>greedy_apply_date_filters</strong> &#x21d2; <tt>Object</tt>
593
+
594
+
595
+
596
+
597
+
598
+ </h3><div class="docstring">
599
+ <div class="discussion">
600
+ <p>When a filter on a Date time field can be applied to multiple
601
+ tables in the join tree should we apply to all of them or
602
+ just the first one.</p>
603
+
604
+
605
+ </div>
606
+ </div>
607
+ <div class="tags">
608
+
609
+
610
+ </div><table class="source_code">
611
+ <tr>
612
+ <td>
613
+ <pre class="lines">
614
+
615
+
616
+ 47
617
+ 48
618
+ 49</pre>
619
+ </td>
620
+ <td>
621
+ <pre class="code"><span class="info file"># File 'lib/dwh/behaviors.rb', line 47</span>
622
+
623
+ <span class='kw'>def</span> <span class='id identifier rubyid_greedy_apply_date_filters'>greedy_apply_date_filters</span>
624
+ <span class='id identifier rubyid_settings'>settings</span><span class='lbracket'>[</span><span class='symbol'>:greedy_apply_date_filters</span><span class='rbracket'>]</span>
625
+ <span class='kw'>end</span></pre>
626
+ </td>
627
+ </tr>
628
+ </table>
629
+ </div>
630
+
631
+ <div class="method_details ">
632
+ <h3 class="signature " id="intermediate_measure_filter?-instance_method">
633
+
634
+ #<strong>intermediate_measure_filter?</strong> &#x21d2; <tt>Boolean</tt>
635
+
636
+
637
+
638
+
639
+
640
+ </h3><div class="docstring">
641
+ <div class="discussion">
642
+
643
+
644
+
645
+ </div>
646
+ </div>
647
+ <div class="tags">
648
+
649
+ <p class="tag_title">Returns:</p>
650
+ <ul class="return">
651
+
652
+ <li>
653
+
654
+
655
+ <span class='type'>(<tt>Boolean</tt>)</span>
656
+
657
+
658
+
659
+ </li>
660
+
661
+ </ul>
662
+
663
+ </div><table class="source_code">
664
+ <tr>
665
+ <td>
666
+ <pre class="lines">
667
+
668
+
669
+ 59
670
+ 60
671
+ 61</pre>
672
+ </td>
673
+ <td>
674
+ <pre class="code"><span class="info file"># File 'lib/dwh/behaviors.rb', line 59</span>
675
+
676
+ <span class='kw'>def</span> <span class='id identifier rubyid_intermediate_measure_filter?'>intermediate_measure_filter?</span>
677
+ <span class='qwords_beg'>%w[</span><span class='tstring_content'>both</span><span class='words_sep'> </span><span class='tstring_content'>intermediate</span><span class='tstring_end'>]</span></span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_settings'>settings</span><span class='lbracket'>[</span><span class='symbol'>:cross_universe_measure_filtering_strategy</span><span class='rbracket'>]</span><span class='rparen'>)</span>
678
+ <span class='kw'>end</span></pre>
679
+ </td>
680
+ </tr>
681
+ </table>
682
+ </div>
683
+
684
+ <div class="method_details ">
685
+ <h3 class="signature " id="temp_table_prefix-instance_method">
686
+
687
+ #<strong>temp_table_prefix</strong> &#x21d2; <tt>Object</tt>
688
+
689
+
690
+
691
+
692
+
693
+ </h3><table class="source_code">
694
+ <tr>
695
+ <td>
696
+ <pre class="lines">
697
+
698
+
699
+ 24
700
+ 25
701
+ 26</pre>
702
+ </td>
703
+ <td>
704
+ <pre class="code"><span class="info file"># File 'lib/dwh/behaviors.rb', line 24</span>
705
+
706
+ <span class='kw'>def</span> <span class='id identifier rubyid_temp_table_prefix'>temp_table_prefix</span>
707
+ <span class='id identifier rubyid_settings'>settings</span><span class='lbracket'>[</span><span class='symbol'>:temp_table_prefix</span><span class='rbracket'>]</span>
708
+ <span class='kw'>end</span></pre>
709
+ </td>
710
+ </tr>
711
+ </table>
712
+ </div>
713
+
714
+ <div class="method_details ">
715
+ <h3 class="signature " id="temp_table_type-instance_method">
716
+
717
+ #<strong>temp_table_type</strong> &#x21d2; <tt>Object</tt>
718
+
719
+
720
+
721
+
722
+
723
+ </h3><div class="docstring">
724
+ <div class="discussion">
725
+ <p>Defines how intermediate queries should be handled.
726
+ Could be one off cte, subquery, temp (future view, permanent)</p>
727
+
728
+
729
+ </div>
730
+ </div>
731
+ <div class="tags">
732
+
733
+
734
+ </div><table class="source_code">
735
+ <tr>
736
+ <td>
737
+ <pre class="lines">
738
+
739
+
740
+ 20
741
+ 21
742
+ 22</pre>
743
+ </td>
744
+ <td>
745
+ <pre class="code"><span class="info file"># File 'lib/dwh/behaviors.rb', line 20</span>
746
+
747
+ <span class='kw'>def</span> <span class='id identifier rubyid_temp_table_type'>temp_table_type</span>
748
+ <span class='id identifier rubyid_settings'>settings</span><span class='lbracket'>[</span><span class='symbol'>:temp_table_type</span><span class='rbracket'>]</span>
749
+ <span class='kw'>end</span></pre>
750
+ </td>
751
+ </tr>
752
+ </table>
753
+ </div>
754
+
755
+ </div>
756
+
757
+ </div>
758
+
759
+ <div id="footer">
760
+ Generated on Fri Aug 22 08:31:21 2025 by
761
+ <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
762
+ 0.9.37 (ruby-3.4.4).
763
+ </div>
764
+
765
+ </div>
766
+ </body>
767
+ </html>