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,2000 @@
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
+ Class: DWH::Adapters::Postgres
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::Adapters::Postgres";
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 (P)</a> &raquo;
40
+ <span class='title'><span class='object_link'><a href="../../DWH.html" title="DWH (module)">DWH</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../Adapters.html" title="DWH::Adapters (module)">Adapters</a></span></span>
41
+ &raquo;
42
+ <span class="title">Postgres</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>Class: DWH::Adapters::Postgres
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+ <dl>
70
+ <dt>Inherits:</dt>
71
+ <dd>
72
+ <span class="inheritName"><span class='object_link'><a href="Adapter.html" title="DWH::Adapters::Adapter (class)">Adapter</a></span></span>
73
+
74
+ <ul class="fullTree">
75
+ <li>Object</li>
76
+
77
+ <li class="next"><span class='object_link'><a href="Adapter.html" title="DWH::Adapters::Adapter (class)">Adapter</a></span></li>
78
+
79
+ <li class="next">DWH::Adapters::Postgres</li>
80
+
81
+ </ul>
82
+ <a href="#" class="inheritanceTree">show all</a>
83
+
84
+ </dd>
85
+ </dl>
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+ <dl>
98
+ <dt>Defined in:</dt>
99
+ <dd>lib/dwh/adapters/postgres.rb</dd>
100
+ </dl>
101
+
102
+ </div>
103
+
104
+ <h2>Overview</h2><div class="docstring">
105
+ <div class="discussion">
106
+ <p>Postgres adapter. Please ensure the pg gem is available before using this adapter.
107
+ Generally, adapters should be created using <span class='object_link'><a href="../Factory.html#create-instance_method" title="DWH::Factory#create (method)">DWH.create</a></span>. Where a configuration
108
+ is passed in as options hash or argument list.</p>
109
+
110
+
111
+ </div>
112
+ </div>
113
+ <div class="tags">
114
+
115
+ <div class="examples">
116
+ <h4 class="tag_title">Examples:</h4>
117
+
118
+
119
+ <h5 class="example_title"><div class='inline'><p>Basic connection with required only options</p>
120
+ </div></h5>
121
+
122
+ <pre class="example code"><code><span class='const'><span class='object_link'><a href="../../DWH.html" title="DWH (module)">DWH</a></span></span><span class='period'>.</span><span class='id identifier rubyid_create'><span class='object_link'><a href="../Factory.html#create-instance_method" title="DWH::Factory#create (method)">create</a></span></span><span class='lparen'>(</span><span class='symbol'>:postgres</span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='label'>host:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>localhost</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='label'>database:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>postgres</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
123
+ <span class='label'>username:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>postgres</span><span class='tstring_end'>&#39;</span></span><span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
124
+
125
+
126
+ <h5 class="example_title"><div class='inline'><p>Connection with cert based SSL connection</p>
127
+ </div></h5>
128
+
129
+ <pre class="example code"><code>DWH.create(:postgres, {host: &#39;localhost&#39;, database: &#39;postgres&#39;,
130
+ username: &#39;postgres&#39;, ssl: true,
131
+ extra_connection_params: { sslmode: &#39;require&#39; })
132
+
133
+ valid sslmodes: disable, prefer, require, verify-ca, verify-full
134
+ For modes requiring Certs make sure you add the appropirate params
135
+ to extra_connection_params. (ie sslrootcert, sslcert etc.)</code></pre>
136
+
137
+
138
+ <h5 class="example_title"><div class='inline'><p>Connection sending custom application name</p>
139
+ </div></h5>
140
+
141
+ <pre class="example code"><code><span class='const'><span class='object_link'><a href="../../DWH.html" title="DWH (module)">DWH</a></span></span><span class='period'>.</span><span class='id identifier rubyid_create'><span class='object_link'><a href="../Factory.html#create-instance_method" title="DWH::Factory#create (method)">create</a></span></span><span class='lparen'>(</span><span class='symbol'>:postgres</span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='label'>host:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>localhost</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='label'>database:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>postgres</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span>
142
+ <span class='label'>username:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>postgres</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='label'>application_name:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Strata CLI</span><span class='tstring_end'>&quot;</span></span> <span class='rbrace'>}</span><span class='rparen'>)</span></code></pre>
143
+
144
+ </div>
145
+
146
+
147
+ </div>
148
+
149
+
150
+ <h2>Constant Summary</h2>
151
+
152
+ <h3 class="inherited">Constants included
153
+ from <span class='object_link'><a href="../Settings.html" title="DWH::Settings (module)">Settings</a></span></h3>
154
+ <p class="inherited"><span class='object_link'><a href="../Settings.html#BASE_SETTINGS_FILE-constant" title="DWH::Settings::BASE_SETTINGS_FILE (constant)">Settings::BASE_SETTINGS_FILE</a></span></p>
155
+
156
+
157
+
158
+ <h3 class="inherited">Constants included
159
+ from <span class='object_link'><a href="../Functions/Dates.html" title="DWH::Functions::Dates (module)">Functions::Dates</a></span></h3>
160
+ <p class="inherited"><span class='object_link'><a href="../Functions/Dates.html#DATE_CLASSES-constant" title="DWH::Functions::Dates::DATE_CLASSES (constant)">Functions::Dates::DATE_CLASSES</a></span>, <span class='object_link'><a href="../Functions/Dates.html#TIMESTAMPABLE_UNITS-constant" title="DWH::Functions::Dates::TIMESTAMPABLE_UNITS (constant)">Functions::Dates::TIMESTAMPABLE_UNITS</a></span></p>
161
+
162
+
163
+
164
+
165
+ <h2>Instance Attribute Summary</h2>
166
+
167
+ <h3 class="inherited">Attributes inherited from <span class='object_link'><a href="Adapter.html" title="DWH::Adapters::Adapter (class)">Adapter</a></span></h3>
168
+ <p class="inherited"><span class='object_link'><a href="Adapter.html#config-instance_method" title="DWH::Adapters::Adapter#config (method)">#config</a></span>, <span class='object_link'><a href="Adapter.html#settings-instance_method" title="DWH::Adapters::Adapter#settings (method)">#settings</a></span></p>
169
+
170
+
171
+
172
+ <h3 class="inherited">Attributes included from <span class='object_link'><a href="../Settings.html" title="DWH::Settings (module)">Settings</a></span></h3>
173
+ <p class="inherited"><span class='object_link'><a href="../Settings.html#adapter_settings-instance_method" title="DWH::Settings#adapter_settings (method)">#adapter_settings</a></span></p>
174
+
175
+
176
+
177
+ <h2>
178
+ Instance Method Summary
179
+ <small><a href="#" class="summary_toggle">collapse</a></small>
180
+ </h2>
181
+
182
+ <ul class="summary">
183
+
184
+ <li class="public ">
185
+ <span class="summary_signature">
186
+
187
+ <a href="#connection-instance_method" title="#connection (instance method)">#<strong>connection</strong> &#x21d2; Object </a>
188
+
189
+
190
+
191
+ </span>
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+ <span class="summary_desc"><div class='inline'><p>Creates a connection to the target database and returns the connection object or self.</p>
202
+ </div></span>
203
+
204
+ </li>
205
+
206
+
207
+ <li class="public ">
208
+ <span class="summary_signature">
209
+
210
+ <a href="#date_add-instance_method" title="#date_add (instance method)">#<strong>date_add</strong>(unit, val, exp) &#x21d2; Object </a>
211
+
212
+
213
+
214
+ </span>
215
+
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+ <span class="summary_desc"><div class='inline'><p>Need to override default add method since postgres doesn’t support quarter as an interval.</p>
225
+ </div></span>
226
+
227
+ </li>
228
+
229
+
230
+ <li class="public ">
231
+ <span class="summary_signature">
232
+
233
+ <a href="#execute-instance_method" title="#execute (instance method)">#<strong>execute</strong>(sql, format: :array, retries: 0) &#x21d2; Array&lt;Array&gt;, ... </a>
234
+
235
+
236
+
237
+ </span>
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+ <span class="summary_desc"><div class='inline'><p>Execute sql on the target database.</p>
248
+ </div></span>
249
+
250
+ </li>
251
+
252
+
253
+ <li class="public ">
254
+ <span class="summary_signature">
255
+
256
+ <a href="#execute_stream-instance_method" title="#execute_stream (instance method)">#<strong>execute_stream</strong>(sql, io, stats: nil, retries: 0) &#x21d2; IO </a>
257
+
258
+
259
+
260
+ </span>
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+
270
+ <span class="summary_desc"><div class='inline'><p>Execute sql and stream responses back.</p>
271
+ </div></span>
272
+
273
+ </li>
274
+
275
+
276
+ <li class="public ">
277
+ <span class="summary_signature">
278
+
279
+ <a href="#metadata-instance_method" title="#metadata (instance method)">#<strong>metadata</strong>(table, **qualifiers) &#x21d2; DWH::Table </a>
280
+
281
+
282
+
283
+ </span>
284
+
285
+
286
+
287
+
288
+
289
+
290
+
291
+
292
+
293
+ <span class="summary_desc"><div class='inline'><p>Get the schema structure of a given a given table_name.</p>
294
+ </div></span>
295
+
296
+ </li>
297
+
298
+
299
+ <li class="public ">
300
+ <span class="summary_signature">
301
+
302
+ <a href="#schema%3F-instance_method" title="#schema? (instance method)">#<strong>schema?</strong> &#x21d2; Boolean </a>
303
+
304
+
305
+
306
+ </span>
307
+
308
+
309
+
310
+
311
+
312
+
313
+
314
+
315
+
316
+ <span class="summary_desc"><div class='inline'><p>True if the configuration was setup with a schema.</p>
317
+ </div></span>
318
+
319
+ </li>
320
+
321
+
322
+ <li class="public ">
323
+ <span class="summary_signature">
324
+
325
+ <a href="#stats-instance_method" title="#stats (instance method)">#<strong>stats</strong>(table, date_column: nil, **qualifiers) &#x21d2; DWH::Table </a>
326
+
327
+
328
+
329
+ </span>
330
+
331
+
332
+
333
+
334
+
335
+
336
+
337
+
338
+
339
+ <span class="summary_desc"><div class='inline'><p>Returns basic stats of a given table.</p>
340
+ </div></span>
341
+
342
+ </li>
343
+
344
+
345
+ <li class="public ">
346
+ <span class="summary_signature">
347
+
348
+ <a href="#stream-instance_method" title="#stream (instance method)">#<strong>stream</strong>(sql) {|chunk| ... } &#x21d2; Object </a>
349
+
350
+
351
+
352
+ </span>
353
+
354
+
355
+
356
+
357
+
358
+
359
+
360
+
361
+
362
+ <span class="summary_desc"><div class='inline'><p>Executes the given sql and yields the streamed results to the given block.</p>
363
+ </div></span>
364
+
365
+ </li>
366
+
367
+
368
+ <li class="public ">
369
+ <span class="summary_signature">
370
+
371
+ <a href="#table%3F-instance_method" title="#table? (instance method)">#<strong>table?</strong>(table_name) &#x21d2; Boolean </a>
372
+
373
+
374
+
375
+ </span>
376
+
377
+
378
+
379
+
380
+
381
+
382
+
383
+
384
+
385
+ <span class="summary_desc"><div class='inline'><p>Check if table exists in remote db.</p>
386
+ </div></span>
387
+
388
+ </li>
389
+
390
+
391
+ <li class="public ">
392
+ <span class="summary_signature">
393
+
394
+ <a href="#tables-instance_method" title="#tables (instance method)">#<strong>tables</strong>(**qualifiers) &#x21d2; Array&lt;String&gt; </a>
395
+
396
+
397
+
398
+ </span>
399
+
400
+
401
+
402
+
403
+
404
+
405
+
406
+
407
+
408
+ <span class="summary_desc"><div class='inline'><p>Get all tables available in the target db.</p>
409
+ </div></span>
410
+
411
+ </li>
412
+
413
+
414
+ <li class="public ">
415
+ <span class="summary_signature">
416
+
417
+ <a href="#test_connection-instance_method" title="#test_connection (instance method)">#<strong>test_connection</strong>(raise_exception: false) &#x21d2; Boolean </a>
418
+
419
+
420
+
421
+ </span>
422
+
423
+
424
+
425
+
426
+
427
+
428
+
429
+
430
+
431
+ <span class="summary_desc"><div class='inline'><p>Tests the connection to the target database and returns true if successful, or raise Exception or false connection object or self.</p>
432
+ </div></span>
433
+
434
+ </li>
435
+
436
+
437
+ <li class="public ">
438
+ <span class="summary_signature">
439
+
440
+ <a href="#valid_config%3F-instance_method" title="#valid_config? (instance method)">#<strong>valid_config?</strong> &#x21d2; Boolean </a>
441
+
442
+
443
+
444
+ </span>
445
+
446
+
447
+
448
+
449
+
450
+
451
+
452
+
453
+
454
+ <span class="summary_desc"><div class='inline'>
455
+ </div></span>
456
+
457
+ </li>
458
+
459
+
460
+ </ul>
461
+
462
+
463
+
464
+
465
+
466
+
467
+
468
+
469
+
470
+
471
+
472
+ <h3 class="inherited">Methods inherited from <span class='object_link'><a href="Adapter.html" title="DWH::Adapters::Adapter (class)">Adapter</a></span></h3>
473
+ <p class="inherited"><span class='object_link'><a href="Adapter.html#adapter_name-instance_method" title="DWH::Adapters::Adapter#adapter_name (method)">#adapter_name</a></span>, <span class='object_link'><a href="Adapter.html#alter_settings-instance_method" title="DWH::Adapters::Adapter#alter_settings (method)">#alter_settings</a></span>, <span class='object_link'><a href="Adapter.html#close-instance_method" title="DWH::Adapters::Adapter#close (method)">#close</a></span>, <span class='object_link'><a href="Adapter.html#config-class_method" title="DWH::Adapters::Adapter.config (method)">config</a></span>, <span class='object_link'><a href="Adapter.html#configuration-class_method" title="DWH::Adapters::Adapter.configuration (method)">configuration</a></span>, <span class='object_link'><a href="Adapter.html#connect!-instance_method" title="DWH::Adapters::Adapter#connect! (method)">#connect!</a></span>, <span class='object_link'><a href="Adapter.html#connect%3F-instance_method" title="DWH::Adapters::Adapter#connect? (method)">#connect?</a></span>, <span class='object_link'><a href="Adapter.html#extra_connection_params-instance_method" title="DWH::Adapters::Adapter#extra_connection_params (method)">#extra_connection_params</a></span>, <span class='object_link'><a href="Adapter.html#extra_query_params-instance_method" title="DWH::Adapters::Adapter#extra_query_params (method)">#extra_query_params</a></span>, <span class='object_link'><a href="Adapter.html#initialize-instance_method" title="DWH::Adapters::Adapter#initialize (method)">#initialize</a></span>, <span class='object_link'><a href="Adapter.html#reset_settings-instance_method" title="DWH::Adapters::Adapter#reset_settings (method)">#reset_settings</a></span>, <span class='object_link'><a href="Adapter.html#token_expired%3F-instance_method" title="DWH::Adapters::Adapter#token_expired? (method)">#token_expired?</a></span>, <span class='object_link'><a href="Adapter.html#with_debug-instance_method" title="DWH::Adapters::Adapter#with_debug (method)">#with_debug</a></span>, <span class='object_link'><a href="Adapter.html#with_retry-instance_method" title="DWH::Adapters::Adapter#with_retry (method)">#with_retry</a></span></p>
474
+
475
+
476
+
477
+
478
+
479
+
480
+
481
+
482
+
483
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="../Settings.html" title="DWH::Settings (module)">Settings</a></span></h3>
484
+ <p class="inherited"><span class='object_link'><a href="../Settings.html#adapter_name-instance_method" title="DWH::Settings#adapter_name (method)">#adapter_name</a></span>, <span class='object_link'><a href="../Settings.html#load_settings-instance_method" title="DWH::Settings#load_settings (method)">#load_settings</a></span>, <span class='object_link'><a href="../Settings.html#settings_file-instance_method" title="DWH::Settings#settings_file (method)">#settings_file</a></span>, <span class='object_link'><a href="../Settings.html#settings_file_path-instance_method" title="DWH::Settings#settings_file_path (method)">#settings_file_path</a></span>, <span class='object_link'><a href="../Settings.html#using_base_settings%3F-instance_method" title="DWH::Settings#using_base_settings? (method)">#using_base_settings?</a></span></p>
485
+
486
+
487
+
488
+
489
+
490
+
491
+
492
+
493
+
494
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="../Logger.html" title="DWH::Logger (module)">Logger</a></span></h3>
495
+ <p class="inherited"><span class='object_link'><a href="../Logger.html#logger-instance_method" title="DWH::Logger#logger (method)">#logger</a></span>, <span class='object_link'><a href="../Logger.html#logger-class_method" title="DWH::Logger.logger (method)">logger</a></span></p>
496
+
497
+
498
+
499
+
500
+
501
+
502
+
503
+
504
+
505
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="../Behaviors.html" title="DWH::Behaviors (module)">Behaviors</a></span></h3>
506
+ <p class="inherited"><span class='object_link'><a href="../Behaviors.html#apply_advanced_filtering_on_array_projections%3F-instance_method" title="DWH::Behaviors#apply_advanced_filtering_on_array_projections? (method)">#apply_advanced_filtering_on_array_projections?</a></span>, <span class='object_link'><a href="../Behaviors.html#cross_universe_measure_filtering_strategy-instance_method" title="DWH::Behaviors#cross_universe_measure_filtering_strategy (method)">#cross_universe_measure_filtering_strategy</a></span>, <span class='object_link'><a href="../Behaviors.html#extend_ending_date_to_last_hour_of_day%3F-instance_method" title="DWH::Behaviors#extend_ending_date_to_last_hour_of_day? (method)">#extend_ending_date_to_last_hour_of_day?</a></span>, <span class='object_link'><a href="../Behaviors.html#final_measure_filter%3F-instance_method" title="DWH::Behaviors#final_measure_filter? (method)">#final_measure_filter?</a></span>, <span class='object_link'><a href="../Behaviors.html#final_pass_measure_join_type-instance_method" title="DWH::Behaviors#final_pass_measure_join_type (method)">#final_pass_measure_join_type</a></span>, <span class='object_link'><a href="../Behaviors.html#greedy_apply_date_filters-instance_method" title="DWH::Behaviors#greedy_apply_date_filters (method)">#greedy_apply_date_filters</a></span>, <span class='object_link'><a href="../Behaviors.html#intermediate_measure_filter%3F-instance_method" title="DWH::Behaviors#intermediate_measure_filter? (method)">#intermediate_measure_filter?</a></span>, <span class='object_link'><a href="../Behaviors.html#temp_table_prefix-instance_method" title="DWH::Behaviors#temp_table_prefix (method)">#temp_table_prefix</a></span>, <span class='object_link'><a href="../Behaviors.html#temp_table_type-instance_method" title="DWH::Behaviors#temp_table_type (method)">#temp_table_type</a></span></p>
507
+
508
+
509
+
510
+
511
+
512
+
513
+
514
+
515
+
516
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="../Functions.html" title="DWH::Functions (module)">Functions</a></span></h3>
517
+ <p class="inherited"><span class='object_link'><a href="../Functions.html#cast-instance_method" title="DWH::Functions#cast (method)">#cast</a></span>, <span class='object_link'><a href="../Functions.html#cross_join-instance_method" title="DWH::Functions#cross_join (method)">#cross_join</a></span>, <span class='object_link'><a href="../Functions.html#gsk-instance_method" title="DWH::Functions#gsk (method)">#gsk</a></span>, <span class='object_link'><a href="../Functions.html#lower_case-instance_method" title="DWH::Functions#lower_case (method)">#lower_case</a></span>, <span class='object_link'><a href="../Functions.html#quote-instance_method" title="DWH::Functions#quote (method)">#quote</a></span>, <span class='object_link'><a href="../Functions.html#string_lit-instance_method" title="DWH::Functions#string_lit (method)">#string_lit</a></span>, <span class='object_link'><a href="../Functions.html#trim-instance_method" title="DWH::Functions#trim (method)">#trim</a></span>, <span class='object_link'><a href="../Functions.html#upper_case-instance_method" title="DWH::Functions#upper_case (method)">#upper_case</a></span></p>
518
+
519
+
520
+
521
+
522
+
523
+
524
+
525
+
526
+
527
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="../Functions/Arrays.html" title="DWH::Functions::Arrays (module)">Functions::Arrays</a></span></h3>
528
+ <p class="inherited"><span class='object_link'><a href="../Functions/Arrays.html#array_exclude_list-instance_method" title="DWH::Functions::Arrays#array_exclude_list (method)">#array_exclude_list</a></span>, <span class='object_link'><a href="../Functions/Arrays.html#array_in_list-instance_method" title="DWH::Functions::Arrays#array_in_list (method)">#array_in_list</a></span>, <span class='object_link'><a href="../Functions/Arrays.html#array_unnest_join-instance_method" title="DWH::Functions::Arrays#array_unnest_join (method)">#array_unnest_join</a></span></p>
529
+
530
+
531
+
532
+
533
+
534
+
535
+
536
+
537
+
538
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="../Functions/Nulls.html" title="DWH::Functions::Nulls (module)">Functions::Nulls</a></span></h3>
539
+ <p class="inherited"><span class='object_link'><a href="../Functions/Nulls.html#if_null-instance_method" title="DWH::Functions::Nulls#if_null (method)">#if_null</a></span>, <span class='object_link'><a href="../Functions/Nulls.html#null_if-instance_method" title="DWH::Functions::Nulls#null_if (method)">#null_if</a></span>, <span class='object_link'><a href="../Functions/Nulls.html#null_if_zero-instance_method" title="DWH::Functions::Nulls#null_if_zero (method)">#null_if_zero</a></span></p>
540
+
541
+
542
+
543
+
544
+
545
+
546
+
547
+
548
+
549
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="../Functions/ExtractDatePart.html" title="DWH::Functions::ExtractDatePart (module)">Functions::ExtractDatePart</a></span></h3>
550
+ <p class="inherited"><span class='object_link'><a href="../Functions/ExtractDatePart.html#extract_day_name-instance_method" title="DWH::Functions::ExtractDatePart#extract_day_name (method)">#extract_day_name</a></span>, <span class='object_link'><a href="../Functions/ExtractDatePart.html#extract_day_of_month-instance_method" title="DWH::Functions::ExtractDatePart#extract_day_of_month (method)">#extract_day_of_month</a></span>, <span class='object_link'><a href="../Functions/ExtractDatePart.html#extract_day_of_week-instance_method" title="DWH::Functions::ExtractDatePart#extract_day_of_week (method)">#extract_day_of_week</a></span>, <span class='object_link'><a href="../Functions/ExtractDatePart.html#extract_day_of_year-instance_method" title="DWH::Functions::ExtractDatePart#extract_day_of_year (method)">#extract_day_of_year</a></span>, <span class='object_link'><a href="../Functions/ExtractDatePart.html#extract_hour-instance_method" title="DWH::Functions::ExtractDatePart#extract_hour (method)">#extract_hour</a></span>, <span class='object_link'><a href="../Functions/ExtractDatePart.html#extract_minute-instance_method" title="DWH::Functions::ExtractDatePart#extract_minute (method)">#extract_minute</a></span>, <span class='object_link'><a href="../Functions/ExtractDatePart.html#extract_month-instance_method" title="DWH::Functions::ExtractDatePart#extract_month (method)">#extract_month</a></span>, <span class='object_link'><a href="../Functions/ExtractDatePart.html#extract_month_name-instance_method" title="DWH::Functions::ExtractDatePart#extract_month_name (method)">#extract_month_name</a></span>, <span class='object_link'><a href="../Functions/ExtractDatePart.html#extract_quarter-instance_method" title="DWH::Functions::ExtractDatePart#extract_quarter (method)">#extract_quarter</a></span>, <span class='object_link'><a href="../Functions/ExtractDatePart.html#extract_week_of_year-instance_method" title="DWH::Functions::ExtractDatePart#extract_week_of_year (method)">#extract_week_of_year</a></span>, <span class='object_link'><a href="../Functions/ExtractDatePart.html#extract_year-instance_method" title="DWH::Functions::ExtractDatePart#extract_year (method)">#extract_year</a></span>, <span class='object_link'><a href="../Functions/ExtractDatePart.html#extract_year_month-instance_method" title="DWH::Functions::ExtractDatePart#extract_year_month (method)">#extract_year_month</a></span></p>
551
+
552
+
553
+
554
+
555
+
556
+
557
+
558
+
559
+
560
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="../Functions/Dates.html" title="DWH::Functions::Dates (module)">Functions::Dates</a></span></h3>
561
+ <p class="inherited"><span class='object_link'><a href="../Functions/Dates.html#adjust_week_start_day-instance_method" title="DWH::Functions::Dates#adjust_week_start_day (method)">#adjust_week_start_day</a></span>, <span class='object_link'><a href="../Functions/Dates.html#adjust_week_start_day%3F-instance_method" title="DWH::Functions::Dates#adjust_week_start_day? (method)">#adjust_week_start_day?</a></span>, <span class='object_link'><a href="../Functions/Dates.html#current_date-instance_method" title="DWH::Functions::Dates#current_date (method)">#current_date</a></span>, <span class='object_link'><a href="../Functions/Dates.html#current_time-instance_method" title="DWH::Functions::Dates#current_time (method)">#current_time</a></span>, <span class='object_link'><a href="../Functions/Dates.html#current_timestamp-instance_method" title="DWH::Functions::Dates#current_timestamp (method)">#current_timestamp</a></span>, <span class='object_link'><a href="../Functions/Dates.html#date_data_type-instance_method" title="DWH::Functions::Dates#date_data_type (method)">#date_data_type</a></span>, <span class='object_link'><a href="../Functions/Dates.html#date_diff-instance_method" title="DWH::Functions::Dates#date_diff (method)">#date_diff</a></span>, <span class='object_link'><a href="../Functions/Dates.html#date_format-instance_method" title="DWH::Functions::Dates#date_format (method)">#date_format</a></span>, <span class='object_link'><a href="../Functions/Dates.html#date_format_sql-instance_method" title="DWH::Functions::Dates#date_format_sql (method)">#date_format_sql</a></span>, <span class='object_link'><a href="../Functions/Dates.html#date_int%3F-instance_method" title="DWH::Functions::Dates#date_int? (method)">#date_int?</a></span>, <span class='object_link'><a href="../Functions/Dates.html#date_literal-instance_method" title="DWH::Functions::Dates#date_literal (method)">#date_literal</a></span>, <span class='object_link'><a href="../Functions/Dates.html#date_time_format-instance_method" title="DWH::Functions::Dates#date_time_format (method)">#date_time_format</a></span>, <span class='object_link'><a href="../Functions/Dates.html#date_time_literal-instance_method" title="DWH::Functions::Dates#date_time_literal (method)">#date_time_literal</a></span>, <span class='object_link'><a href="../Functions/Dates.html#date_time_tz_format-instance_method" title="DWH::Functions::Dates#date_time_tz_format (method)">#date_time_tz_format</a></span>, <span class='object_link'><a href="../Functions/Dates.html#default_week_start_day-instance_method" title="DWH::Functions::Dates#default_week_start_day (method)">#default_week_start_day</a></span>, <span class='object_link'><a href="../Functions/Dates.html#truncate_date-instance_method" title="DWH::Functions::Dates#truncate_date (method)">#truncate_date</a></span>, <span class='object_link'><a href="../Functions/Dates.html#week_start_day-instance_method" title="DWH::Functions::Dates#week_start_day (method)">#week_start_day</a></span>, <span class='object_link'><a href="../Functions/Dates.html#week_starts_on_sunday%3F-instance_method" title="DWH::Functions::Dates#week_starts_on_sunday? (method)">#week_starts_on_sunday?</a></span></p>
562
+
563
+
564
+
565
+
566
+
567
+
568
+
569
+
570
+
571
+ <h3 class="inherited">Methods included from <span class='object_link'><a href="../Capabilities.html" title="DWH::Capabilities (module)">Capabilities</a></span></h3>
572
+ <p class="inherited"><span class='object_link'><a href="../Capabilities.html#supports_array_functions%3F-instance_method" title="DWH::Capabilities#supports_array_functions? (method)">#supports_array_functions?</a></span>, <span class='object_link'><a href="../Capabilities.html#supports_common_table_expressions%3F-instance_method" title="DWH::Capabilities#supports_common_table_expressions? (method)">#supports_common_table_expressions?</a></span>, <span class='object_link'><a href="../Capabilities.html#supports_cross_join%3F-instance_method" title="DWH::Capabilities#supports_cross_join? (method)">#supports_cross_join?</a></span>, <span class='object_link'><a href="../Capabilities.html#supports_full_join%3F-instance_method" title="DWH::Capabilities#supports_full_join? (method)">#supports_full_join?</a></span>, <span class='object_link'><a href="../Capabilities.html#supports_sub_queries%3F-instance_method" title="DWH::Capabilities#supports_sub_queries? (method)">#supports_sub_queries?</a></span>, <span class='object_link'><a href="../Capabilities.html#supports_table_join%3F-instance_method" title="DWH::Capabilities#supports_table_join? (method)">#supports_table_join?</a></span>, <span class='object_link'><a href="../Capabilities.html#supports_temp_tables%3F-instance_method" title="DWH::Capabilities#supports_temp_tables? (method)">#supports_temp_tables?</a></span>, <span class='object_link'><a href="../Capabilities.html#supports_window_functions%3F-instance_method" title="DWH::Capabilities#supports_window_functions? (method)">#supports_window_functions?</a></span></p>
573
+ <div id="constructor_details" class="method_details_list">
574
+ <h2>Constructor Details</h2>
575
+
576
+ <p class="notice">This class inherits a constructor from <span class='object_link'><a href="Adapter.html#initialize-instance_method" title="DWH::Adapters::Adapter#initialize (method)">DWH::Adapters::Adapter</a></span></p>
577
+
578
+ </div>
579
+
580
+
581
+ <div id="instance_method_details" class="method_details_list">
582
+ <h2>Instance Method Details</h2>
583
+
584
+
585
+ <div class="method_details first">
586
+ <h3 class="signature first" id="connection-instance_method">
587
+
588
+ #<strong>connection</strong> &#x21d2; <tt>Object</tt>
589
+
590
+
591
+
592
+
593
+
594
+ </h3><div class="docstring">
595
+ <div class="discussion">
596
+ <p>Creates a connection to the target database and returns the
597
+ connection object or self</p>
598
+
599
+
600
+ </div>
601
+ </div>
602
+ <div class="tags">
603
+
604
+
605
+ </div><table class="source_code">
606
+ <tr>
607
+ <td>
608
+ <pre class="lines">
609
+
610
+
611
+ 35
612
+ 36
613
+ 37
614
+ 38
615
+ 39
616
+ 40
617
+ 41
618
+ 42
619
+ 43
620
+ 44
621
+ 45
622
+ 46
623
+ 47
624
+ 48
625
+ 49
626
+ 50
627
+ 51
628
+ 52
629
+ 53
630
+ 54
631
+ 55
632
+ 56
633
+ 57
634
+ 58</pre>
635
+ </td>
636
+ <td>
637
+ <pre class="code"><span class="info file"># File 'lib/dwh/adapters/postgres.rb', line 35</span>
638
+
639
+ <span class='kw'>def</span> <span class='id identifier rubyid_connection'>connection</span>
640
+ <span class='kw'>return</span> <span class='ivar'>@connection</span> <span class='kw'>if</span> <span class='ivar'>@connection</span>
641
+
642
+ <span class='id identifier rubyid_set_default_ssl_mode_if_needed'>set_default_ssl_mode_if_needed</span>
643
+
644
+ <span class='id identifier rubyid_properties'>properties</span> <span class='op'>=</span> <span class='lbrace'>{</span>
645
+ <span class='label'>host:</span> <span class='id identifier rubyid_config'>config</span><span class='lbracket'>[</span><span class='symbol'>:host</span><span class='rbracket'>]</span><span class='comma'>,</span>
646
+ <span class='label'>port:</span> <span class='id identifier rubyid_config'>config</span><span class='lbracket'>[</span><span class='symbol'>:port</span><span class='rbracket'>]</span><span class='comma'>,</span>
647
+ <span class='label'>dbname:</span> <span class='id identifier rubyid_config'>config</span><span class='lbracket'>[</span><span class='symbol'>:database</span><span class='rbracket'>]</span><span class='comma'>,</span>
648
+ <span class='label'>user:</span> <span class='id identifier rubyid_config'>config</span><span class='lbracket'>[</span><span class='symbol'>:username</span><span class='rbracket'>]</span><span class='comma'>,</span>
649
+ <span class='label'>password:</span> <span class='id identifier rubyid_config'>config</span><span class='lbracket'>[</span><span class='symbol'>:password</span><span class='rbracket'>]</span><span class='comma'>,</span>
650
+ <span class='label'>application_name:</span> <span class='id identifier rubyid_config'>config</span><span class='lbracket'>[</span><span class='symbol'>:client_name</span><span class='rbracket'>]</span>
651
+ <span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_extra_connection_params'>extra_connection_params</span><span class='rparen'>)</span>
652
+ <span class='id identifier rubyid_properties'>properties</span><span class='lbracket'>[</span><span class='symbol'>:options</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_properties'>properties</span><span class='lbracket'>[</span><span class='symbol'>:options</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_content'> -c statement_timeout=</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_config'>config</span><span class='lbracket'>[</span><span class='symbol'>:query_timeout</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_content'>s</span><span class='tstring_end'>&quot;</span></span>
653
+
654
+ <span class='ivar'>@connection</span> <span class='op'>=</span> <span class='const'>PG</span><span class='period'>.</span><span class='id identifier rubyid_connect'>connect</span><span class='lparen'>(</span><span class='id identifier rubyid_properties'>properties</span><span class='rparen'>)</span>
655
+
656
+ <span class='comment'># this could be comma separated list
657
+ </span> <span class='ivar'>@connection</span><span class='period'>.</span><span class='id identifier rubyid_exec'>exec</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>SET search_path TO </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_config'>config</span><span class='lbracket'>[</span><span class='symbol'>:schema</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_schema?'>schema?</span>
658
+
659
+ <span class='ivar'>@connection</span>
660
+ <span class='kw'>rescue</span> <span class='const'>StandardError</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
661
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../ConfigError.html" title="DWH::ConfigError (class)">ConfigError</a></span></span><span class='comma'>,</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span>
662
+ <span class='kw'>end</span></pre>
663
+ </td>
664
+ </tr>
665
+ </table>
666
+ </div>
667
+
668
+ <div class="method_details ">
669
+ <h3 class="signature " id="date_add-instance_method">
670
+
671
+ #<strong>date_add</strong>(unit, val, exp) &#x21d2; <tt>Object</tt>
672
+
673
+
674
+
675
+
676
+
677
+ </h3><div class="docstring">
678
+ <div class="discussion">
679
+ <p>Need to override default add method
680
+ since postgres doesn’t support quarter as an
681
+ interval.</p>
682
+
683
+
684
+ </div>
685
+ </div>
686
+ <div class="tags">
687
+ <p class="tag_title">Parameters:</p>
688
+ <ul class="param">
689
+
690
+ <li>
691
+
692
+ <span class='name'>unit</span>
693
+
694
+
695
+ <span class='type'>(<tt>String</tt>)</span>
696
+
697
+
698
+
699
+ &mdash;
700
+ <div class='inline'><p>Should be one of day, month, quarter etc</p>
701
+ </div>
702
+
703
+ </li>
704
+
705
+ <li>
706
+
707
+ <span class='name'>val</span>
708
+
709
+
710
+ <span class='type'>(<tt>String</tt>, <tt>Integer</tt>)</span>
711
+
712
+
713
+
714
+ &mdash;
715
+ <div class='inline'><p>The number of days to add</p>
716
+ </div>
717
+
718
+ </li>
719
+
720
+ <li>
721
+
722
+ <span class='name'>exp</span>
723
+
724
+
725
+ <span class='type'>(<tt>String</tt>)</span>
726
+
727
+
728
+
729
+ &mdash;
730
+ <div class='inline'><p>The sql expresssion to modify</p>
731
+ </div>
732
+
733
+ </li>
734
+
735
+ </ul>
736
+
737
+
738
+ </div><table class="source_code">
739
+ <tr>
740
+ <td>
741
+ <pre class="lines">
742
+
743
+
744
+ 209
745
+ 210
746
+ 211
747
+ 212
748
+ 213
749
+ 214
750
+ 215
751
+ 216
752
+ 217
753
+ 218</pre>
754
+ </td>
755
+ <td>
756
+ <pre class="code"><span class="info file"># File 'lib/dwh/adapters/postgres.rb', line 209</span>
757
+
758
+ <span class='kw'>def</span> <span class='id identifier rubyid_date_add'>date_add</span><span class='lparen'>(</span><span class='id identifier rubyid_unit'>unit</span><span class='comma'>,</span> <span class='id identifier rubyid_val'>val</span><span class='comma'>,</span> <span class='id identifier rubyid_exp'>exp</span><span class='rparen'>)</span>
759
+ <span class='kw'>if</span> <span class='id identifier rubyid_unit'>unit</span><span class='period'>.</span><span class='id identifier rubyid_downcase'>downcase</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>quarter</span><span class='tstring_end'>&#39;</span></span>
760
+ <span class='id identifier rubyid_unit'>unit</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>months</span><span class='tstring_end'>&#39;</span></span>
761
+ <span class='id identifier rubyid_val'>val</span> <span class='op'>=</span> <span class='id identifier rubyid_val'>val</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span> <span class='op'>*</span> <span class='int'>3</span>
762
+ <span class='kw'>end</span>
763
+ <span class='id identifier rubyid_gsk'>gsk</span><span class='lparen'>(</span><span class='symbol'>:date_add</span><span class='rparen'>)</span>
764
+ <span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>@unit</span><span class='regexp_end'>/i</span></span><span class='comma'>,</span> <span class='id identifier rubyid_unit'>unit</span><span class='rparen'>)</span>
765
+ <span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>@val</span><span class='regexp_end'>/i</span></span><span class='comma'>,</span> <span class='id identifier rubyid_val'>val</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
766
+ <span class='period'>.</span><span class='id identifier rubyid_gsub'>gsub</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>@exp</span><span class='regexp_end'>/i</span></span><span class='comma'>,</span> <span class='id identifier rubyid_exp'>exp</span><span class='rparen'>)</span>
767
+ <span class='kw'>end</span></pre>
768
+ </td>
769
+ </tr>
770
+ </table>
771
+ </div>
772
+
773
+ <div class="method_details ">
774
+ <h3 class="signature " id="execute-instance_method">
775
+
776
+ #<strong>execute</strong>(sql, format: :array, retries: 0) &#x21d2; <tt>Array&lt;Array&gt;</tt>, ...
777
+
778
+
779
+
780
+
781
+
782
+ </h3><div class="docstring">
783
+ <div class="discussion">
784
+ <p>Execute sql on the target database.</p>
785
+
786
+
787
+ </div>
788
+ </div>
789
+ <div class="tags">
790
+ <p class="tag_title">Parameters:</p>
791
+ <ul class="param">
792
+
793
+ <li>
794
+
795
+ <span class='name'>sql</span>
796
+
797
+
798
+ <span class='type'>(<tt>String</tt>)</span>
799
+
800
+
801
+
802
+ &mdash;
803
+ <div class='inline'><p>actual sql</p>
804
+ </div>
805
+
806
+ </li>
807
+
808
+ <li>
809
+
810
+ <span class='name'>format</span>
811
+
812
+
813
+ <span class='type'>(<tt>Symbol</tt>, <tt>String</tt>)</span>
814
+
815
+
816
+ <em class="default">(defaults to: <tt>:array</tt>)</em>
817
+
818
+
819
+ &mdash;
820
+ <div class='inline'><p>return format type
821
+ - array returns array of array
822
+ - object returns array of Hashes
823
+ - csv returns as csv
824
+ - native returns the native result from any clients used
825
+ - For example: Postgres using pg client will return PG::Result
826
+ - Http clients will returns the HTTP response object</p>
827
+ </div>
828
+
829
+ </li>
830
+
831
+ <li>
832
+
833
+ <span class='name'>retries</span>
834
+
835
+
836
+ <span class='type'>(<tt>Integer</tt>)</span>
837
+
838
+
839
+ <em class="default">(defaults to: <tt>0</tt>)</em>
840
+
841
+
842
+ &mdash;
843
+ <div class='inline'><p>number of retries in case of failure. Default is 0</p>
844
+ </div>
845
+
846
+ </li>
847
+
848
+ </ul>
849
+
850
+ <p class="tag_title">Returns:</p>
851
+ <ul class="return">
852
+
853
+ <li>
854
+
855
+
856
+ <span class='type'>(<tt>Array&lt;Array&gt;</tt>, <tt>Hash</tt>, <tt>CSV</tt>, <tt>Native</tt>)</span>
857
+
858
+
859
+
860
+ </li>
861
+
862
+ </ul>
863
+ <p class="tag_title">Raises:</p>
864
+ <ul class="raise">
865
+
866
+ <li>
867
+
868
+
869
+ <span class='type'>(<tt><span class='object_link'><a href="../ConnectionError.html" title="DWH::ConnectionError (class)">ConnectionError</a></span></tt>, <tt><span class='object_link'><a href="../ExecutionError.html" title="DWH::ExecutionError (class)">ExecutionError</a></span></tt>)</span>
870
+
871
+
872
+
873
+ </li>
874
+
875
+ </ul>
876
+
877
+ </div><table class="source_code">
878
+ <tr>
879
+ <td>
880
+ <pre class="lines">
881
+
882
+
883
+ 150
884
+ 151
885
+ 152
886
+ 153
887
+ 154
888
+ 155
889
+ 156
890
+ 157
891
+ 158
892
+ 159
893
+ 160
894
+ 161
895
+ 162
896
+ 163
897
+ 164
898
+ 165
899
+ 166
900
+ 167
901
+ 168
902
+ 169
903
+ 170</pre>
904
+ </td>
905
+ <td>
906
+ <pre class="code"><span class="info file"># File 'lib/dwh/adapters/postgres.rb', line 150</span>
907
+
908
+ <span class='kw'>def</span> <span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='id identifier rubyid_sql'>sql</span><span class='comma'>,</span> <span class='label'>format:</span> <span class='symbol'>:array</span><span class='comma'>,</span> <span class='label'>retries:</span> <span class='int'>0</span><span class='rparen'>)</span>
909
+ <span class='kw'>begin</span>
910
+ <span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='id identifier rubyid_with_debug'>with_debug</span><span class='lparen'>(</span><span class='id identifier rubyid_sql'>sql</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_with_retry'>with_retry</span><span class='lparen'>(</span><span class='id identifier rubyid_retries'>retries</span><span class='rparen'>)</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_connection'>connection</span><span class='period'>.</span><span class='id identifier rubyid_exec'>exec</span><span class='lparen'>(</span><span class='id identifier rubyid_sql'>sql</span><span class='rparen'>)</span> <span class='rbrace'>}</span> <span class='rbrace'>}</span>
911
+ <span class='kw'>rescue</span> <span class='const'>StandardError</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
912
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../ExecutionError.html" title="DWH::ExecutionError (class)">ExecutionError</a></span></span><span class='comma'>,</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span>
913
+ <span class='kw'>end</span>
914
+
915
+ <span class='id identifier rubyid_format'>format</span> <span class='op'>=</span> <span class='id identifier rubyid_format'>format</span><span class='period'>.</span><span class='id identifier rubyid_downcase'>downcase</span> <span class='kw'>if</span> <span class='id identifier rubyid_format'>format</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>String</span><span class='rparen'>)</span>
916
+ <span class='kw'>case</span> <span class='id identifier rubyid_format'>format</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span>
917
+ <span class='kw'>when</span> <span class='symbol'>:array</span>
918
+ <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span>
919
+ <span class='kw'>when</span> <span class='symbol'>:object</span>
920
+ <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_to_a'>to_a</span>
921
+ <span class='kw'>when</span> <span class='symbol'>:csv</span>
922
+ <span class='id identifier rubyid_result_to_csv'>result_to_csv</span><span class='lparen'>(</span><span class='id identifier rubyid_result'>result</span><span class='rparen'>)</span>
923
+ <span class='kw'>when</span> <span class='symbol'>:native</span>
924
+ <span class='id identifier rubyid_result'>result</span>
925
+ <span class='kw'>else</span>
926
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../UnsupportedCapability.html" title="DWH::UnsupportedCapability (class)">UnsupportedCapability</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Unsupported format: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_format'>format</span><span class='embexpr_end'>}</span><span class='tstring_content'> for this </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
927
+ <span class='kw'>end</span>
928
+ <span class='kw'>end</span></pre>
929
+ </td>
930
+ </tr>
931
+ </table>
932
+ </div>
933
+
934
+ <div class="method_details ">
935
+ <h3 class="signature " id="execute_stream-instance_method">
936
+
937
+ #<strong>execute_stream</strong>(sql, io, stats: nil, retries: 0) &#x21d2; <tt>IO</tt>
938
+
939
+
940
+
941
+
942
+
943
+ </h3><div class="docstring">
944
+ <div class="discussion">
945
+ <p>Execute sql and stream responses back. Data is writtent out in CSV format
946
+ to the provided IO object.</p>
947
+
948
+
949
+ </div>
950
+ </div>
951
+ <div class="tags">
952
+ <p class="tag_title">Parameters:</p>
953
+ <ul class="param">
954
+
955
+ <li>
956
+
957
+ <span class='name'>sql</span>
958
+
959
+
960
+ <span class='type'>(<tt>String</tt>)</span>
961
+
962
+
963
+
964
+ &mdash;
965
+ <div class='inline'><p>actual sql</p>
966
+ </div>
967
+
968
+ </li>
969
+
970
+ <li>
971
+
972
+ <span class='name'>io</span>
973
+
974
+
975
+ <span class='type'>(<tt>IO</tt>)</span>
976
+
977
+
978
+
979
+ &mdash;
980
+ <div class='inline'><p>IO object to write records to</p>
981
+ </div>
982
+
983
+ </li>
984
+
985
+ <li>
986
+
987
+ <span class='name'>stats</span>
988
+
989
+
990
+ <span class='type'>(<tt><span class='object_link'><a href="../StreamingStats.html" title="DWH::StreamingStats (class)">StreamingStats</a></span></tt>)</span>
991
+
992
+
993
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
994
+
995
+
996
+ &mdash;
997
+ <div class='inline'><p>collect stats and preview data this is optional</p>
998
+ </div>
999
+
1000
+ </li>
1001
+
1002
+ <li>
1003
+
1004
+ <span class='name'>retries</span>
1005
+
1006
+
1007
+ <span class='type'>(<tt>Integer</tt>)</span>
1008
+
1009
+
1010
+ <em class="default">(defaults to: <tt>0</tt>)</em>
1011
+
1012
+
1013
+ &mdash;
1014
+ <div class='inline'><p>number of retries in case of failure</p>
1015
+ </div>
1016
+
1017
+ </li>
1018
+
1019
+ </ul>
1020
+
1021
+ <p class="tag_title">Returns:</p>
1022
+ <ul class="return">
1023
+
1024
+ <li>
1025
+
1026
+
1027
+ <span class='type'>(<tt>IO</tt>)</span>
1028
+
1029
+
1030
+
1031
+ </li>
1032
+
1033
+ </ul>
1034
+ <p class="tag_title">Raises:</p>
1035
+ <ul class="raise">
1036
+
1037
+ <li>
1038
+
1039
+
1040
+ <span class='type'>(<tt><span class='object_link'><a href="../ConnectionError.html" title="DWH::ConnectionError (class)">ConnectionError</a></span></tt>, <tt><span class='object_link'><a href="../ExecutionError.html" title="DWH::ExecutionError (class)">ExecutionError</a></span></tt>)</span>
1041
+
1042
+
1043
+
1044
+ </li>
1045
+
1046
+ </ul>
1047
+
1048
+ </div><table class="source_code">
1049
+ <tr>
1050
+ <td>
1051
+ <pre class="lines">
1052
+
1053
+
1054
+ 173
1055
+ 174
1056
+ 175
1057
+ 176
1058
+ 177
1059
+ 178
1060
+ 179
1061
+ 180
1062
+ 181
1063
+ 182
1064
+ 183
1065
+ 184
1066
+ 185
1067
+ 186
1068
+ 187
1069
+ 188
1070
+ 189
1071
+ 190</pre>
1072
+ </td>
1073
+ <td>
1074
+ <pre class="code"><span class="info file"># File 'lib/dwh/adapters/postgres.rb', line 173</span>
1075
+
1076
+ <span class='kw'>def</span> <span class='id identifier rubyid_execute_stream'>execute_stream</span><span class='lparen'>(</span><span class='id identifier rubyid_sql'>sql</span><span class='comma'>,</span> <span class='id identifier rubyid_io'>io</span><span class='comma'>,</span> <span class='label'>stats:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>retries:</span> <span class='int'>0</span><span class='rparen'>)</span>
1077
+ <span class='id identifier rubyid_with_debug'>with_debug</span><span class='lparen'>(</span><span class='id identifier rubyid_sql'>sql</span><span class='rparen'>)</span> <span class='kw'>do</span>
1078
+ <span class='id identifier rubyid_with_retry'>with_retry</span><span class='lparen'>(</span><span class='id identifier rubyid_retries'>retries</span><span class='rparen'>)</span> <span class='kw'>do</span>
1079
+ <span class='id identifier rubyid_connection'>connection</span><span class='period'>.</span><span class='id identifier rubyid_exec'>exec</span><span class='lparen'>(</span><span class='id identifier rubyid_sql'>sql</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_result'>result</span><span class='op'>|</span>
1080
+ <span class='id identifier rubyid_io'>io</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span><span class='const'>CSV</span><span class='period'>.</span><span class='id identifier rubyid_generate_line'>generate_line</span><span class='lparen'>(</span><span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_fields'>fields</span><span class='rparen'>)</span><span class='rparen'>)</span>
1081
+ <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_each_row'>each_row</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_row'>row</span><span class='op'>|</span>
1082
+ <span class='id identifier rubyid_stats'>stats</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_row'>row</span> <span class='kw'>unless</span> <span class='id identifier rubyid_stats'>stats</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
1083
+ <span class='id identifier rubyid_io'>io</span><span class='period'>.</span><span class='id identifier rubyid_write'>write</span><span class='lparen'>(</span><span class='const'>CSV</span><span class='period'>.</span><span class='id identifier rubyid_generate_line'>generate_line</span><span class='lparen'>(</span><span class='id identifier rubyid_row'>row</span><span class='rparen'>)</span><span class='rparen'>)</span>
1084
+ <span class='kw'>end</span>
1085
+ <span class='kw'>end</span>
1086
+ <span class='kw'>end</span>
1087
+ <span class='kw'>end</span>
1088
+
1089
+ <span class='id identifier rubyid_io'>io</span><span class='period'>.</span><span class='id identifier rubyid_rewind'>rewind</span>
1090
+ <span class='id identifier rubyid_io'>io</span>
1091
+ <span class='kw'>rescue</span> <span class='const'>StandardError</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
1092
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../ExecutionError.html" title="DWH::ExecutionError (class)">ExecutionError</a></span></span><span class='comma'>,</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span>
1093
+ <span class='kw'>end</span></pre>
1094
+ </td>
1095
+ </tr>
1096
+ </table>
1097
+ </div>
1098
+
1099
+ <div class="method_details ">
1100
+ <h3 class="signature " id="metadata-instance_method">
1101
+
1102
+ #<strong>metadata</strong>(table, **qualifiers) &#x21d2; <tt><span class='object_link'><a href="../Table.html" title="DWH::Table (class)">DWH::Table</a></span></tt>
1103
+
1104
+
1105
+
1106
+
1107
+
1108
+ </h3><div class="docstring">
1109
+ <div class="discussion">
1110
+ <p>Get the schema structure of a given a given table_name.
1111
+ Pass in optional catalog and schema info.</p>
1112
+
1113
+ <p>Example:
1114
+ metadata(“public.big_table”)
1115
+ metadata(“big_table”)
1116
+ metadata(“big_table”,schema: “public”)</p>
1117
+
1118
+
1119
+ </div>
1120
+ </div>
1121
+ <div class="tags">
1122
+ <p class="tag_title">Parameters:</p>
1123
+ <ul class="param">
1124
+
1125
+ <li>
1126
+
1127
+ <span class='name'>table</span>
1128
+
1129
+
1130
+ <span class='type'>(<tt>String</tt>)</span>
1131
+
1132
+
1133
+
1134
+ &mdash;
1135
+ <div class='inline'><ul>
1136
+ <li>table name</li>
1137
+ </ul>
1138
+ </div>
1139
+
1140
+ </li>
1141
+
1142
+ <li>
1143
+
1144
+ <span class='name'>qualifiers</span>
1145
+
1146
+
1147
+ <span class='type'>(<tt>Hash</tt>)</span>
1148
+
1149
+
1150
+
1151
+ &mdash;
1152
+ <div class='inline'><p>a customizable set of options</p>
1153
+ </div>
1154
+
1155
+ </li>
1156
+
1157
+ </ul>
1158
+
1159
+
1160
+
1161
+
1162
+
1163
+
1164
+ <p class="tag_title">Options Hash (<tt>**qualifiers</tt>):</p>
1165
+ <ul class="option">
1166
+
1167
+ <li>
1168
+ <span class="name">:catalog</span>
1169
+ <span class="type">(<tt>String</tt>)</span>
1170
+ <span class="default">
1171
+
1172
+ </span>
1173
+
1174
+ &mdash; <div class='inline'><p>optional catalog or equivalent name space.
1175
+ will be ignored if the adapter doesn’t support</p>
1176
+ </div>
1177
+
1178
+ </li>
1179
+
1180
+ <li>
1181
+ <span class="name">:schema</span>
1182
+ <span class="type">(<tt>String</tt>)</span>
1183
+ <span class="default">
1184
+
1185
+ </span>
1186
+
1187
+ &mdash; <div class='inline'><p>optional schema to scope to.
1188
+ will be ignored if the adapter doesn’t support</p>
1189
+ </div>
1190
+
1191
+ </li>
1192
+
1193
+ </ul>
1194
+
1195
+
1196
+ <p class="tag_title">Returns:</p>
1197
+ <ul class="return">
1198
+
1199
+ <li>
1200
+
1201
+
1202
+ <span class='type'>(<tt><span class='object_link'><a href="../Table.html" title="DWH::Table (class)">DWH::Table</a></span></tt>)</span>
1203
+
1204
+
1205
+
1206
+ </li>
1207
+
1208
+ </ul>
1209
+
1210
+ </div><table class="source_code">
1211
+ <tr>
1212
+ <td>
1213
+ <pre class="lines">
1214
+
1215
+
1216
+ 113
1217
+ 114
1218
+ 115
1219
+ 116
1220
+ 117
1221
+ 118
1222
+ 119
1223
+ 120
1224
+ 121
1225
+ 122
1226
+ 123
1227
+ 124
1228
+ 125
1229
+ 126
1230
+ 127
1231
+ 128
1232
+ 129
1233
+ 130
1234
+ 131
1235
+ 132
1236
+ 133
1237
+ 134
1238
+ 135
1239
+ 136
1240
+ 137
1241
+ 138
1242
+ 139
1243
+ 140
1244
+ 141
1245
+ 142</pre>
1246
+ </td>
1247
+ <td>
1248
+ <pre class="code"><span class="info file"># File 'lib/dwh/adapters/postgres.rb', line 113</span>
1249
+
1250
+ <span class='kw'>def</span> <span class='id identifier rubyid_metadata'>metadata</span><span class='lparen'>(</span><span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_qualifiers'>qualifiers</span><span class='rparen'>)</span>
1251
+ <span class='id identifier rubyid_db_table'>db_table</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../Table.html" title="DWH::Table (class)">Table</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../Table.html#initialize-instance_method" title="DWH::Table#initialize (method)">new</a></span></span> <span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='label'>schema:</span> <span class='id identifier rubyid_qualifiers'>qualifiers</span><span class='lbracket'>[</span><span class='symbol'>:schema</span><span class='rbracket'>]</span>
1252
+
1253
+ <span class='id identifier rubyid_schema_where'>schema_where</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span>
1254
+ <span class='kw'>if</span> <span class='id identifier rubyid_db_table'>db_table</span><span class='period'>.</span><span class='id identifier rubyid_schema'>schema</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
1255
+ <span class='id identifier rubyid_schema_where'>schema_where</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>AND table_schema = &#39;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_db_table'>db_table</span><span class='period'>.</span><span class='id identifier rubyid_schema'>schema</span><span class='embexpr_end'>}</span><span class='tstring_content'>&#39;</span><span class='tstring_end'>&quot;</span></span>
1256
+ <span class='kw'>elsif</span> <span class='id identifier rubyid_schema?'>schema?</span>
1257
+ <span class='id identifier rubyid_schema_where'>schema_where</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>AND table_schema in (</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_qualified_schema_name'>qualified_schema_name</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>&quot;</span></span>
1258
+ <span class='kw'>end</span>
1259
+
1260
+ <span class='id identifier rubyid_sql'>sql</span> <span class='op'>=</span> <span class='heredoc_beg'>&lt;&lt;-SQL</span>
1261
+ <span class='tstring_content'> SELECT column_name, data_type, character_maximum_length, numeric_precision,numeric_scale
1262
+ FROM information_schema.columns
1263
+ WHERE table_name = &#39;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_db_table'>db_table</span><span class='period'>.</span><span class='id identifier rubyid_physical_name'>physical_name</span><span class='embexpr_end'>}</span><span class='tstring_content'>&#39;
1264
+ </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_schema_where'>schema_where</span><span class='embexpr_end'>}</span><span class='tstring_content'>
1265
+ </span><span class='heredoc_end'> SQL
1266
+ </span>
1267
+ <span class='id identifier rubyid_cols'>cols</span> <span class='op'>=</span> <span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='id identifier rubyid_sql'>sql</span><span class='comma'>,</span> <span class='label'>format:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>object</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
1268
+ <span class='id identifier rubyid_cols'>cols</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_col'>col</span><span class='op'>|</span>
1269
+ <span class='id identifier rubyid_db_table'>db_table</span> <span class='op'>&lt;&lt;</span> <span class='const'><span class='object_link'><a href="../Column.html" title="DWH::Column (class)">Column</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../Column.html#initialize-instance_method" title="DWH::Column#initialize (method)">new</a></span></span><span class='lparen'>(</span>
1270
+ <span class='label'>name:</span> <span class='id identifier rubyid_col'>col</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>column_name</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
1271
+ <span class='label'>data_type:</span> <span class='id identifier rubyid_col'>col</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>data_type</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
1272
+ <span class='label'>precision:</span> <span class='id identifier rubyid_col'>col</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>numeric_precision</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
1273
+ <span class='label'>scale:</span> <span class='id identifier rubyid_col'>col</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>numeric_scale</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
1274
+ <span class='label'>max_char_length:</span> <span class='id identifier rubyid_col'>col</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>character_maximum_length</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
1275
+ <span class='rparen'>)</span>
1276
+ <span class='kw'>end</span>
1277
+
1278
+ <span class='id identifier rubyid_db_table'>db_table</span>
1279
+ <span class='kw'>end</span></pre>
1280
+ </td>
1281
+ </tr>
1282
+ </table>
1283
+ </div>
1284
+
1285
+ <div class="method_details ">
1286
+ <h3 class="signature " id="schema?-instance_method">
1287
+
1288
+ #<strong>schema?</strong> &#x21d2; <tt><span class='object_link'><a href="Boolean.html" title="DWH::Adapters::Boolean (class)">Boolean</a></span></tt>
1289
+
1290
+
1291
+
1292
+
1293
+
1294
+ </h3><div class="docstring">
1295
+ <div class="discussion">
1296
+ <p>True if the configuration was setup with a schema.</p>
1297
+
1298
+
1299
+ </div>
1300
+ </div>
1301
+ <div class="tags">
1302
+
1303
+ <p class="tag_title">Returns:</p>
1304
+ <ul class="return">
1305
+
1306
+ <li>
1307
+
1308
+
1309
+ <span class='type'>(<tt><span class='object_link'><a href="Boolean.html" title="DWH::Adapters::Boolean (class)">Boolean</a></span></tt>)</span>
1310
+
1311
+
1312
+
1313
+ </li>
1314
+
1315
+ </ul>
1316
+
1317
+ </div><table class="source_code">
1318
+ <tr>
1319
+ <td>
1320
+ <pre class="lines">
1321
+
1322
+
1323
+ 145
1324
+ 146
1325
+ 147</pre>
1326
+ </td>
1327
+ <td>
1328
+ <pre class="code"><span class="info file"># File 'lib/dwh/adapters/postgres.rb', line 145</span>
1329
+
1330
+ <span class='kw'>def</span> <span class='id identifier rubyid_schema?'>schema?</span>
1331
+ <span class='id identifier rubyid_config'>config</span><span class='lbracket'>[</span><span class='symbol'>:schema</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_present?'>present?</span>
1332
+ <span class='kw'>end</span></pre>
1333
+ </td>
1334
+ </tr>
1335
+ </table>
1336
+ </div>
1337
+
1338
+ <div class="method_details ">
1339
+ <h3 class="signature " id="stats-instance_method">
1340
+
1341
+ #<strong>stats</strong>(table, date_column: nil, **qualifiers) &#x21d2; <tt><span class='object_link'><a href="../Table.html" title="DWH::Table (class)">DWH::Table</a></span></tt>
1342
+
1343
+
1344
+
1345
+
1346
+
1347
+ </h3><div class="docstring">
1348
+ <div class="discussion">
1349
+ <p>Returns basic stats of a given table. Will typically include row_count,
1350
+ date_start, and date_end.</p>
1351
+
1352
+
1353
+ </div>
1354
+ </div>
1355
+ <div class="tags">
1356
+
1357
+ <div class="examples">
1358
+ <h4 class="tag_title">Examples:</h4>
1359
+
1360
+
1361
+ <pre class="example code"><code><span class='id identifier rubyid_stats'>stats</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>public.big_table</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='label'>date_column:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>fact_date</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1362
+ <span class='id identifier rubyid_stats'>stats</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>big_table</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
1363
+ <span class='id identifier rubyid_stats'>stats</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>big_table</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span><span class='label'>schema:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>public</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span></code></pre>
1364
+
1365
+ </div>
1366
+ <p class="tag_title">Parameters:</p>
1367
+ <ul class="param">
1368
+
1369
+ <li>
1370
+
1371
+ <span class='name'>table</span>
1372
+
1373
+
1374
+ <span class='type'>(<tt>String</tt>)</span>
1375
+
1376
+
1377
+
1378
+ &mdash;
1379
+ <div class='inline'><p>table name</p>
1380
+ </div>
1381
+
1382
+ </li>
1383
+
1384
+ <li>
1385
+
1386
+ <span class='name'>date_column</span>
1387
+
1388
+
1389
+ <span class='type'>(<tt>String</tt>)</span>
1390
+
1391
+
1392
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
1393
+
1394
+
1395
+ &mdash;
1396
+ <div class='inline'><p>optional date column to use to find range</p>
1397
+ </div>
1398
+
1399
+ </li>
1400
+
1401
+ <li>
1402
+
1403
+ <span class='name'>qualifiers</span>
1404
+
1405
+
1406
+ <span class='type'>(<tt>Hash</tt>)</span>
1407
+
1408
+
1409
+
1410
+ &mdash;
1411
+ <div class='inline'><p>a customizable set of options</p>
1412
+ </div>
1413
+
1414
+ </li>
1415
+
1416
+ </ul>
1417
+
1418
+
1419
+
1420
+
1421
+
1422
+
1423
+
1424
+
1425
+ <p class="tag_title">Options Hash (<tt>**qualifiers</tt>):</p>
1426
+ <ul class="option">
1427
+
1428
+ <li>
1429
+ <span class="name">:catalog</span>
1430
+ <span class="type">(<tt>String</tt>)</span>
1431
+ <span class="default">
1432
+
1433
+ </span>
1434
+
1435
+ &mdash; <div class='inline'><p>optional catalog or equivalent name space.
1436
+ will be ignored if the adapter doesn’t support</p>
1437
+ </div>
1438
+
1439
+ </li>
1440
+
1441
+ <li>
1442
+ <span class="name">:schema</span>
1443
+ <span class="type">(<tt>String</tt>)</span>
1444
+ <span class="default">
1445
+
1446
+ </span>
1447
+
1448
+ &mdash; <div class='inline'><p>optional schema to scope to.
1449
+ will be ignored if the adapter doesn’t support</p>
1450
+ </div>
1451
+
1452
+ </li>
1453
+
1454
+ </ul>
1455
+
1456
+
1457
+ <p class="tag_title">Returns:</p>
1458
+ <ul class="return">
1459
+
1460
+ <li>
1461
+
1462
+
1463
+ <span class='type'>(<tt><span class='object_link'><a href="../Table.html" title="DWH::Table (class)">DWH::Table</a></span></tt>)</span>
1464
+
1465
+
1466
+
1467
+ </li>
1468
+
1469
+ </ul>
1470
+ <p class="tag_title">Raises:</p>
1471
+ <ul class="raise">
1472
+
1473
+ <li>
1474
+
1475
+
1476
+ <span class='type'>(<tt><span class='object_link'><a href="../ConnectionError.html" title="DWH::ConnectionError (class)">ConnectionError</a></span></tt>, <tt><span class='object_link'><a href="../ExecutionError.html" title="DWH::ExecutionError (class)">ExecutionError</a></span></tt>)</span>
1477
+
1478
+
1479
+
1480
+ </li>
1481
+
1482
+ </ul>
1483
+
1484
+ </div><table class="source_code">
1485
+ <tr>
1486
+ <td>
1487
+ <pre class="lines">
1488
+
1489
+
1490
+ 95
1491
+ 96
1492
+ 97
1493
+ 98
1494
+ 99
1495
+ 100
1496
+ 101
1497
+ 102
1498
+ 103
1499
+ 104
1500
+ 105
1501
+ 106
1502
+ 107
1503
+ 108
1504
+ 109
1505
+ 110</pre>
1506
+ </td>
1507
+ <td>
1508
+ <pre class="code"><span class="info file"># File 'lib/dwh/adapters/postgres.rb', line 95</span>
1509
+
1510
+ <span class='kw'>def</span> <span class='id identifier rubyid_stats'>stats</span><span class='lparen'>(</span><span class='id identifier rubyid_table'>table</span><span class='comma'>,</span> <span class='label'>date_column:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_qualifiers'>qualifiers</span><span class='rparen'>)</span>
1511
+ <span class='id identifier rubyid_table_name'>table_name</span> <span class='op'>=</span> <span class='id identifier rubyid_qualifiers'>qualifiers</span><span class='lbracket'>[</span><span class='symbol'>:schema</span><span class='rbracket'>]</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_qualifiers'>qualifiers</span><span class='lbracket'>[</span><span class='symbol'>:schema</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_content'>.</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_table'>table</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span> <span class='op'>:</span> <span class='id identifier rubyid_table'>table</span>
1512
+ <span class='id identifier rubyid_sql'>sql</span> <span class='op'>=</span> <span class='heredoc_beg'>&lt;&lt;-SQL</span>
1513
+ <span class='tstring_content'> SELECT count(*) ROW_COUNT
1514
+ </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_date_column'>date_column</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='kw'>nil</span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>, min(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_date_column'>date_column</span><span class='embexpr_end'>}</span><span class='tstring_content'>) DATE_START</span><span class='tstring_end'>&quot;</span></span><span class='embexpr_end'>}</span><span class='tstring_content'>
1515
+ </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_date_column'>date_column</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='kw'>nil</span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>, max(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_date_column'>date_column</span><span class='embexpr_end'>}</span><span class='tstring_content'>) DATE_END</span><span class='tstring_end'>&quot;</span></span><span class='embexpr_end'>}</span><span class='tstring_content'>
1516
+ FROM &quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_table_name'>table_name</span><span class='embexpr_end'>}</span><span class='tstring_content'>&quot;
1517
+ </span><span class='heredoc_end'> SQL
1518
+ </span>
1519
+ <span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='id identifier rubyid_connection'>connection</span><span class='period'>.</span><span class='id identifier rubyid_exec'>exec</span><span class='lparen'>(</span><span class='id identifier rubyid_sql'>sql</span><span class='rparen'>)</span>
1520
+ <span class='const'><span class='object_link'><a href="../TableStats.html" title="DWH::TableStats (class)">TableStats</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../TableStats.html#initialize-instance_method" title="DWH::TableStats#initialize (method)">new</a></span></span><span class='lparen'>(</span>
1521
+ <span class='label'>row_count:</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>row_count</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
1522
+ <span class='label'>date_start:</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>date_start</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
1523
+ <span class='label'>date_end:</span> <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>date_end</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
1524
+ <span class='rparen'>)</span>
1525
+ <span class='kw'>end</span></pre>
1526
+ </td>
1527
+ </tr>
1528
+ </table>
1529
+ </div>
1530
+
1531
+ <div class="method_details ">
1532
+ <h3 class="signature " id="stream-instance_method">
1533
+
1534
+ #<strong>stream</strong>(sql) {|chunk| ... } &#x21d2; <tt>Object</tt>
1535
+
1536
+
1537
+
1538
+
1539
+
1540
+ </h3><div class="docstring">
1541
+ <div class="discussion">
1542
+ <p>Executes the given sql and yields the streamed results
1543
+ to the given block.</p>
1544
+
1545
+
1546
+ </div>
1547
+ </div>
1548
+ <div class="tags">
1549
+ <p class="tag_title">Parameters:</p>
1550
+ <ul class="param">
1551
+
1552
+ <li>
1553
+
1554
+ <span class='name'>sql</span>
1555
+
1556
+
1557
+ <span class='type'>(<tt>String</tt>)</span>
1558
+
1559
+
1560
+
1561
+ &mdash;
1562
+ <div class='inline'><p>actual sql</p>
1563
+ </div>
1564
+
1565
+ </li>
1566
+
1567
+ </ul>
1568
+
1569
+ <p class="tag_title">Yields:</p>
1570
+ <ul class="yield">
1571
+
1572
+ <li>
1573
+
1574
+
1575
+ <span class='type'>(<tt>chunk</tt>)</span>
1576
+
1577
+
1578
+
1579
+ &mdash;
1580
+ <div class='inline'><p>Yields a streamed chunk as it streams in. The chunk type
1581
+ might vary depending on the target db and settings</p>
1582
+ </div>
1583
+
1584
+ </li>
1585
+
1586
+ </ul>
1587
+ <p class="tag_title">Raises:</p>
1588
+ <ul class="raise">
1589
+
1590
+ <li>
1591
+
1592
+
1593
+ <span class='type'>(<tt><span class='object_link'><a href="../ConnectionError.html" title="DWH::ConnectionError (class)">ConnectionError</a></span></tt>, <tt><span class='object_link'><a href="../ExecutionError.html" title="DWH::ExecutionError (class)">ExecutionError</a></span></tt>)</span>
1594
+
1595
+
1596
+
1597
+ </li>
1598
+
1599
+ </ul>
1600
+
1601
+ </div><table class="source_code">
1602
+ <tr>
1603
+ <td>
1604
+ <pre class="lines">
1605
+
1606
+
1607
+ 193
1608
+ 194
1609
+ 195
1610
+ 196
1611
+ 197
1612
+ 198
1613
+ 199
1614
+ 200
1615
+ 201</pre>
1616
+ </td>
1617
+ <td>
1618
+ <pre class="code"><span class="info file"># File 'lib/dwh/adapters/postgres.rb', line 193</span>
1619
+
1620
+ <span class='kw'>def</span> <span class='id identifier rubyid_stream'>stream</span><span class='lparen'>(</span><span class='id identifier rubyid_sql'>sql</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
1621
+ <span class='id identifier rubyid_with_debug'>with_debug</span><span class='lparen'>(</span><span class='id identifier rubyid_sql'>sql</span><span class='rparen'>)</span> <span class='kw'>do</span>
1622
+ <span class='id identifier rubyid_connection'>connection</span><span class='period'>.</span><span class='id identifier rubyid_exec'>exec</span><span class='lparen'>(</span><span class='id identifier rubyid_sql'>sql</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_result'>result</span><span class='op'>|</span>
1623
+ <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_each_row'>each_row</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_row'>row</span><span class='op'>|</span>
1624
+ <span class='id identifier rubyid_block'>block</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_row'>row</span><span class='rparen'>)</span>
1625
+ <span class='kw'>end</span>
1626
+ <span class='kw'>end</span>
1627
+ <span class='kw'>end</span>
1628
+ <span class='kw'>end</span></pre>
1629
+ </td>
1630
+ </tr>
1631
+ </table>
1632
+ </div>
1633
+
1634
+ <div class="method_details ">
1635
+ <h3 class="signature " id="table?-instance_method">
1636
+
1637
+ #<strong>table?</strong>(table_name) &#x21d2; <tt><span class='object_link'><a href="Boolean.html" title="DWH::Adapters::Boolean (class)">Boolean</a></span></tt>
1638
+
1639
+
1640
+
1641
+
1642
+
1643
+ </h3><div class="docstring">
1644
+ <div class="discussion">
1645
+ <p>Check if table exists in remote db.</p>
1646
+
1647
+
1648
+ </div>
1649
+ </div>
1650
+ <div class="tags">
1651
+ <p class="tag_title">Parameters:</p>
1652
+ <ul class="param">
1653
+
1654
+ <li>
1655
+
1656
+ <span class='name'>qualifiers</span>
1657
+
1658
+
1659
+ <span class='type'>(<tt>Hash</tt>)</span>
1660
+
1661
+
1662
+
1663
+ &mdash;
1664
+ <div class='inline'><p>a customizable set of options</p>
1665
+ </div>
1666
+
1667
+ </li>
1668
+
1669
+ </ul>
1670
+
1671
+
1672
+
1673
+
1674
+
1675
+ <p class="tag_title">Returns:</p>
1676
+ <ul class="return">
1677
+
1678
+ <li>
1679
+
1680
+
1681
+ <span class='type'>(<tt><span class='object_link'><a href="Boolean.html" title="DWH::Adapters::Boolean (class)">Boolean</a></span></tt>)</span>
1682
+
1683
+
1684
+
1685
+ </li>
1686
+
1687
+ </ul>
1688
+
1689
+ </div><table class="source_code">
1690
+ <tr>
1691
+ <td>
1692
+ <pre class="lines">
1693
+
1694
+
1695
+ 90
1696
+ 91
1697
+ 92</pre>
1698
+ </td>
1699
+ <td>
1700
+ <pre class="code"><span class="info file"># File 'lib/dwh/adapters/postgres.rb', line 90</span>
1701
+
1702
+ <span class='kw'>def</span> <span class='id identifier rubyid_table?'>table?</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rparen'>)</span>
1703
+ <span class='id identifier rubyid_tables'>tables</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_table_name'>table_name</span><span class='rparen'>)</span>
1704
+ <span class='kw'>end</span></pre>
1705
+ </td>
1706
+ </tr>
1707
+ </table>
1708
+ </div>
1709
+
1710
+ <div class="method_details ">
1711
+ <h3 class="signature " id="tables-instance_method">
1712
+
1713
+ #<strong>tables</strong>(**qualifiers) &#x21d2; <tt>Array&lt;String&gt;</tt>
1714
+
1715
+
1716
+
1717
+
1718
+
1719
+ </h3><div class="docstring">
1720
+ <div class="discussion">
1721
+ <p>Get all tables available in the
1722
+ target db. It will use the default catalog and schema
1723
+ config only specified here.</p>
1724
+
1725
+
1726
+ </div>
1727
+ </div>
1728
+ <div class="tags">
1729
+ <p class="tag_title">Parameters:</p>
1730
+ <ul class="param">
1731
+
1732
+ <li>
1733
+
1734
+ <span class='name'>qualifiers</span>
1735
+
1736
+
1737
+ <span class='type'>(<tt>Hash</tt>)</span>
1738
+
1739
+
1740
+
1741
+ &mdash;
1742
+ <div class='inline'><p>a customizable set of options</p>
1743
+ </div>
1744
+
1745
+ </li>
1746
+
1747
+ </ul>
1748
+
1749
+
1750
+
1751
+
1752
+ <p class="tag_title">Options Hash (<tt>**qualifiers</tt>):</p>
1753
+ <ul class="option">
1754
+
1755
+ <li>
1756
+ <span class="name">:catalog</span>
1757
+ <span class="type">(<tt>String</tt>)</span>
1758
+ <span class="default">
1759
+
1760
+ </span>
1761
+
1762
+ &mdash; <div class='inline'><p>optional catalog or equivalent name space.
1763
+ will be ignored if the adapter doesn’t support</p>
1764
+ </div>
1765
+
1766
+ </li>
1767
+
1768
+ <li>
1769
+ <span class="name">:schema</span>
1770
+ <span class="type">(<tt>String</tt>)</span>
1771
+ <span class="default">
1772
+
1773
+ </span>
1774
+
1775
+ &mdash; <div class='inline'><p>optional schema to scope to.
1776
+ will be ignored if the adapter doesn’t support</p>
1777
+ </div>
1778
+
1779
+ </li>
1780
+
1781
+ </ul>
1782
+
1783
+
1784
+ <p class="tag_title">Returns:</p>
1785
+ <ul class="return">
1786
+
1787
+ <li>
1788
+
1789
+
1790
+ <span class='type'>(<tt>Array&lt;String&gt;</tt>)</span>
1791
+
1792
+
1793
+
1794
+ </li>
1795
+
1796
+ </ul>
1797
+
1798
+ </div><table class="source_code">
1799
+ <tr>
1800
+ <td>
1801
+ <pre class="lines">
1802
+
1803
+
1804
+ 71
1805
+ 72
1806
+ 73
1807
+ 74
1808
+ 75
1809
+ 76
1810
+ 77
1811
+ 78
1812
+ 79
1813
+ 80
1814
+ 81
1815
+ 82
1816
+ 83
1817
+ 84
1818
+ 85
1819
+ 86
1820
+ 87</pre>
1821
+ </td>
1822
+ <td>
1823
+ <pre class="code"><span class="info file"># File 'lib/dwh/adapters/postgres.rb', line 71</span>
1824
+
1825
+ <span class='kw'>def</span> <span class='id identifier rubyid_tables'>tables</span><span class='lparen'>(</span><span class='op'>**</span><span class='id identifier rubyid_qualifiers'>qualifiers</span><span class='rparen'>)</span>
1826
+ <span class='id identifier rubyid_sql'>sql</span> <span class='op'>=</span> <span class='kw'>if</span> <span class='id identifier rubyid_schema?'>schema?</span> <span class='op'>||</span> <span class='id identifier rubyid_qualifiers'>qualifiers</span><span class='lbracket'>[</span><span class='symbol'>:schema</span><span class='rbracket'>]</span>
1827
+ <span class='heredoc_beg'>&lt;&lt;-SQL</span>
1828
+ <span class='tstring_content'> SELECT table_name</span><span class='embexpr_beg'>#{</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'> </span><span class='tstring_end'>&#39;</span></span><span class='embexpr_end'>}</span><span class='tstring_content'>
1829
+ FROM information_schema.tables
1830
+ WHERE table_schema in (</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_qualified_schema_name'>qualified_schema_name</span><span class='lparen'>(</span><span class='id identifier rubyid_qualifiers'>qualifiers</span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_content'>)
1831
+ </span><span class='heredoc_end'> SQL
1832
+ </span> <span class='kw'>else</span>
1833
+ <span class='heredoc_beg'>&lt;&lt;-SQL</span>
1834
+ <span class='tstring_content'> SELECT table_name
1835
+ FROM information_schema.tables
1836
+ </span><span class='heredoc_end'> SQL
1837
+ </span> <span class='kw'>end</span>
1838
+
1839
+ <span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='id identifier rubyid_connection'>connection</span><span class='period'>.</span><span class='id identifier rubyid_exec'>exec</span><span class='lparen'>(</span><span class='id identifier rubyid_sql'>sql</span><span class='rparen'>)</span>
1840
+ <span class='id identifier rubyid_result'>result</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_flatten'>flatten</span>
1841
+ <span class='kw'>end</span></pre>
1842
+ </td>
1843
+ </tr>
1844
+ </table>
1845
+ </div>
1846
+
1847
+ <div class="method_details ">
1848
+ <h3 class="signature " id="test_connection-instance_method">
1849
+
1850
+ #<strong>test_connection</strong>(raise_exception: false) &#x21d2; <tt><span class='object_link'><a href="Boolean.html" title="DWH::Adapters::Boolean (class)">Boolean</a></span></tt>
1851
+
1852
+
1853
+
1854
+
1855
+
1856
+ </h3><div class="docstring">
1857
+ <div class="discussion">
1858
+ <p>Tests the connection to the target database and returns true
1859
+ if successful, or raise Exception or false
1860
+ connection object or self</p>
1861
+
1862
+
1863
+ </div>
1864
+ </div>
1865
+ <div class="tags">
1866
+
1867
+ <p class="tag_title">Returns:</p>
1868
+ <ul class="return">
1869
+
1870
+ <li>
1871
+
1872
+
1873
+ <span class='type'>(<tt><span class='object_link'><a href="Boolean.html" title="DWH::Adapters::Boolean (class)">Boolean</a></span></tt>)</span>
1874
+
1875
+
1876
+
1877
+ </li>
1878
+
1879
+ </ul>
1880
+ <p class="tag_title">Raises:</p>
1881
+ <ul class="raise">
1882
+
1883
+ <li>
1884
+
1885
+
1886
+ <span class='type'>(<tt><span class='object_link'><a href="../ConnectionError.html" title="DWH::ConnectionError (class)">ConnectionError</a></span></tt>)</span>
1887
+
1888
+
1889
+
1890
+ &mdash;
1891
+ <div class='inline'><p>when a connection cannot be made</p>
1892
+ </div>
1893
+
1894
+ </li>
1895
+
1896
+ </ul>
1897
+
1898
+ </div><table class="source_code">
1899
+ <tr>
1900
+ <td>
1901
+ <pre class="lines">
1902
+
1903
+
1904
+ 61
1905
+ 62
1906
+ 63
1907
+ 64
1908
+ 65
1909
+ 66
1910
+ 67
1911
+ 68</pre>
1912
+ </td>
1913
+ <td>
1914
+ <pre class="code"><span class="info file"># File 'lib/dwh/adapters/postgres.rb', line 61</span>
1915
+
1916
+ <span class='kw'>def</span> <span class='id identifier rubyid_test_connection'>test_connection</span><span class='lparen'>(</span><span class='label'>raise_exception:</span> <span class='kw'>false</span><span class='rparen'>)</span>
1917
+ <span class='id identifier rubyid_connection'>connection</span>
1918
+ <span class='kw'>true</span>
1919
+ <span class='kw'>rescue</span> <span class='const'>StandardError</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
1920
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../ConnectionError.html" title="DWH::ConnectionError (class)">ConnectionError</a></span></span><span class='comma'>,</span> <span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span> <span class='kw'>if</span> <span class='id identifier rubyid_raise_exception'>raise_exception</span>
1921
+
1922
+ <span class='kw'>false</span>
1923
+ <span class='kw'>end</span></pre>
1924
+ </td>
1925
+ </tr>
1926
+ </table>
1927
+ </div>
1928
+
1929
+ <div class="method_details ">
1930
+ <h3 class="signature " id="valid_config?-instance_method">
1931
+
1932
+ #<strong>valid_config?</strong> &#x21d2; <tt><span class='object_link'><a href="Boolean.html" title="DWH::Adapters::Boolean (class)">Boolean</a></span></tt>
1933
+
1934
+
1935
+
1936
+
1937
+
1938
+ </h3><div class="docstring">
1939
+ <div class="discussion">
1940
+
1941
+
1942
+
1943
+ </div>
1944
+ </div>
1945
+ <div class="tags">
1946
+
1947
+ <p class="tag_title">Returns:</p>
1948
+ <ul class="return">
1949
+
1950
+ <li>
1951
+
1952
+
1953
+ <span class='type'>(<tt><span class='object_link'><a href="Boolean.html" title="DWH::Adapters::Boolean (class)">Boolean</a></span></tt>)</span>
1954
+
1955
+
1956
+
1957
+ </li>
1958
+
1959
+ </ul>
1960
+
1961
+ </div><table class="source_code">
1962
+ <tr>
1963
+ <td>
1964
+ <pre class="lines">
1965
+
1966
+
1967
+ 220
1968
+ 221
1969
+ 222
1970
+ 223
1971
+ 224
1972
+ 225</pre>
1973
+ </td>
1974
+ <td>
1975
+ <pre class="code"><span class="info file"># File 'lib/dwh/adapters/postgres.rb', line 220</span>
1976
+
1977
+ <span class='kw'>def</span> <span class='id identifier rubyid_valid_config?'>valid_config?</span>
1978
+ <span class='kw'>super</span>
1979
+ <span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>pg</span><span class='tstring_end'>&#39;</span></span>
1980
+ <span class='kw'>rescue</span> <span class='const'>LoadError</span>
1981
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'><span class='object_link'><a href="../ConfigError.html" title="DWH::ConfigError (class)">ConfigError</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Required &#39;pg&#39; gem missing. Please add it to your Gemfile.</span><span class='tstring_end'>&quot;</span></span>
1982
+ <span class='kw'>end</span></pre>
1983
+ </td>
1984
+ </tr>
1985
+ </table>
1986
+ </div>
1987
+
1988
+ </div>
1989
+
1990
+ </div>
1991
+
1992
+ <div id="footer">
1993
+ Generated on Fri Aug 22 08:31:22 2025 by
1994
+ <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1995
+ 0.9.37 (ruby-3.4.4).
1996
+ </div>
1997
+
1998
+ </div>
1999
+ </body>
2000
+ </html>