sqlconstructor 0.1

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 (80) hide show
  1. checksums.yaml +15 -0
  2. data/LICENSE.md +16 -0
  3. data/README.md +161 -0
  4. data/Rakefile +11 -0
  5. data/doc/Object.html +267 -0
  6. data/doc/Rakefile.html +150 -0
  7. data/doc/SQLAliasedList.html +717 -0
  8. data/doc/SQLColumn.html +326 -0
  9. data/doc/SQLCondList.html +318 -0
  10. data/doc/SQLConditional.html +1082 -0
  11. data/doc/SQLConditional/BasicCond.html +325 -0
  12. data/doc/SQLConstructor.html +763 -0
  13. data/doc/SQLConstructor/BasicDelete.html +383 -0
  14. data/doc/SQLConstructor/BasicDelete_mysql.html +368 -0
  15. data/doc/SQLConstructor/BasicInsert.html +339 -0
  16. data/doc/SQLConstructor/BasicInsert_mysql.html +325 -0
  17. data/doc/SQLConstructor/BasicJoin.html +408 -0
  18. data/doc/SQLConstructor/BasicJoin_mysql.html +439 -0
  19. data/doc/SQLConstructor/BasicSelect.html +554 -0
  20. data/doc/SQLConstructor/BasicSelect_example.html +288 -0
  21. data/doc/SQLConstructor/BasicSelect_mysql.html +466 -0
  22. data/doc/SQLConstructor/BasicUnion.html +396 -0
  23. data/doc/SQLConstructor/BasicUpdate.html +409 -0
  24. data/doc/SQLConstructor/BasicUpdate_mysql.html +310 -0
  25. data/doc/SQLConstructor/GenericQuery.html +797 -0
  26. data/doc/SQLConstructor/QAttr.html +398 -0
  27. data/doc/SQLConstructorTest.html +603 -0
  28. data/doc/SQLExporter.html +382 -0
  29. data/doc/SQLExporter/Exporter_generic.html +413 -0
  30. data/doc/SQLExporter/Exporter_mysql.html +395 -0
  31. data/doc/SQLObject.html +525 -0
  32. data/doc/SQLValList.html +322 -0
  33. data/doc/SQLValue.html +375 -0
  34. data/doc/created.rid +12 -0
  35. data/doc/images/brick.png +0 -0
  36. data/doc/images/brick_link.png +0 -0
  37. data/doc/images/bug.png +0 -0
  38. data/doc/images/bullet_black.png +0 -0
  39. data/doc/images/bullet_toggle_minus.png +0 -0
  40. data/doc/images/bullet_toggle_plus.png +0 -0
  41. data/doc/images/date.png +0 -0
  42. data/doc/images/find.png +0 -0
  43. data/doc/images/loadingAnimation.gif +0 -0
  44. data/doc/images/macFFBgHack.png +0 -0
  45. data/doc/images/package.png +0 -0
  46. data/doc/images/page_green.png +0 -0
  47. data/doc/images/page_white_text.png +0 -0
  48. data/doc/images/page_white_width.png +0 -0
  49. data/doc/images/plugin.png +0 -0
  50. data/doc/images/ruby.png +0 -0
  51. data/doc/images/tag_green.png +0 -0
  52. data/doc/images/wrench.png +0 -0
  53. data/doc/images/wrench_orange.png +0 -0
  54. data/doc/images/zoom.png +0 -0
  55. data/doc/index.html +356 -0
  56. data/doc/js/darkfish.js +118 -0
  57. data/doc/js/jquery.js +32 -0
  58. data/doc/js/quicksearch.js +114 -0
  59. data/doc/js/thickbox-compressed.js +10 -0
  60. data/doc/lib/dialects/example-constructor_rb.html +52 -0
  61. data/doc/lib/dialects/mysql-constructor_rb.html +52 -0
  62. data/doc/lib/dialects/mysql-exporter_rb.html +54 -0
  63. data/doc/lib/sqlconditional_rb.html +64 -0
  64. data/doc/lib/sqlconstructor_rb.html +52 -0
  65. data/doc/lib/sqlerrors_rb.html +54 -0
  66. data/doc/lib/sqlexporter_rb.html +55 -0
  67. data/doc/lib/sqlobject_rb.html +54 -0
  68. data/doc/rdoc.css +763 -0
  69. data/doc/test/queries_rb.html +56 -0
  70. data/doc/test_rb.html +52 -0
  71. data/lib/dialects/example-constructor.rb +45 -0
  72. data/lib/dialects/mysql-constructor.rb +247 -0
  73. data/lib/dialects/mysql-exporter.rb +108 -0
  74. data/lib/sqlconditional.rb +196 -0
  75. data/lib/sqlconstructor.rb +708 -0
  76. data/lib/sqlerrors.rb +15 -0
  77. data/lib/sqlexporter.rb +125 -0
  78. data/lib/sqlobject.rb +284 -0
  79. data/test/queries.rb +92 -0
  80. metadata +121 -0
@@ -0,0 +1,398 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
7
+
8
+ <title>Class: SQLConstructor::QAttr</title>
9
+
10
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="../js/jquery.js" type="text/javascript" charset="utf-8"></script>
13
+ <script src="../js/thickbox-compressed.js" type="text/javascript" charset="utf-8"></script>
14
+ <script src="../js/quicksearch.js" type="text/javascript" charset="utf-8"></script>
15
+ <script src="../js/darkfish.js" type="text/javascript" charset="utf-8"></script>
16
+
17
+ </head>
18
+ <body id="top" class="class">
19
+
20
+ <div id="metadata">
21
+ <div id="home-metadata">
22
+ <div id="home-section" class="section">
23
+ <h3 class="section-header">
24
+ <a href="../index.html">Home</a>
25
+ <a href="../index.html#classes">Classes</a>
26
+ <a href="../index.html#methods">Methods</a>
27
+ </h3>
28
+ </div>
29
+ </div>
30
+
31
+ <div id="file-metadata">
32
+ <div id="file-list-section" class="section">
33
+ <h3 class="section-header">In Files</h3>
34
+ <div class="section-body">
35
+ <ul>
36
+
37
+ <li><a href="../lib/sqlconstructor_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
38
+ class="thickbox" title="lib/sqlconstructor.rb">lib/sqlconstructor.rb</a></li>
39
+
40
+ </ul>
41
+ </div>
42
+ </div>
43
+
44
+
45
+ </div>
46
+
47
+ <div id="class-metadata">
48
+
49
+ <!-- Parent Class -->
50
+ <div id="parent-class-section" class="section">
51
+ <h3 class="section-header">Parent</h3>
52
+
53
+ <p class="link"><a href="../Object.html">Object</a></p>
54
+
55
+ </div>
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+ <!-- Method Quickref -->
64
+ <div id="method-list-section" class="section">
65
+ <h3 class="section-header">Methods</h3>
66
+ <ul class="link-list">
67
+
68
+ <li><a href="#method-c-new">::new</a></li>
69
+
70
+ <li><a href="#method-i-to_s">#to_s</a></li>
71
+
72
+ </ul>
73
+ </div>
74
+
75
+
76
+
77
+ </div>
78
+
79
+ <div id="project-metadata">
80
+
81
+
82
+ <div id="fileindex-section" class="section project-section">
83
+ <h3 class="section-header">Files</h3>
84
+ <ul>
85
+
86
+ <li class="file"><a href="../Rakefile.html">Rakefile</a></li>
87
+
88
+ </ul>
89
+ </div>
90
+
91
+
92
+ <div id="classindex-section" class="section project-section">
93
+ <h3 class="section-header">Class/Module Index
94
+ <span class="search-toggle"><img src="../images/find.png"
95
+ height="16" width="16" alt="[+]"
96
+ title="show/hide quicksearch" /></span></h3>
97
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
98
+ <fieldset>
99
+ <legend>Quicksearch</legend>
100
+ <input type="text" name="quicksearch" value=""
101
+ class="quicksearch-field" />
102
+ </fieldset>
103
+ </form>
104
+
105
+ <ul class="link-list">
106
+
107
+ <li><a href="../SQLConstructor.html">SQLConstructor</a></li>
108
+
109
+ <li><a href="../SQLConstructor/BasicDelete.html">SQLConstructor::BasicDelete</a></li>
110
+
111
+ <li><a href="../SQLConstructor/BasicDelete_mysql.html">SQLConstructor::BasicDelete_mysql</a></li>
112
+
113
+ <li><a href="../SQLConstructor/BasicInsert.html">SQLConstructor::BasicInsert</a></li>
114
+
115
+ <li><a href="../SQLConstructor/BasicInsert_mysql.html">SQLConstructor::BasicInsert_mysql</a></li>
116
+
117
+ <li><a href="../SQLConstructor/BasicJoin.html">SQLConstructor::BasicJoin</a></li>
118
+
119
+ <li><a href="../SQLConstructor/BasicJoin_mysql.html">SQLConstructor::BasicJoin_mysql</a></li>
120
+
121
+ <li><a href="../SQLConstructor/BasicSelect.html">SQLConstructor::BasicSelect</a></li>
122
+
123
+ <li><a href="../SQLConstructor/BasicSelect_example.html">SQLConstructor::BasicSelect_example</a></li>
124
+
125
+ <li><a href="../SQLConstructor/BasicSelect_mysql.html">SQLConstructor::BasicSelect_mysql</a></li>
126
+
127
+ <li><a href="../SQLConstructor/BasicUnion.html">SQLConstructor::BasicUnion</a></li>
128
+
129
+ <li><a href="../SQLConstructor/BasicUpdate.html">SQLConstructor::BasicUpdate</a></li>
130
+
131
+ <li><a href="../SQLConstructor/BasicUpdate_mysql.html">SQLConstructor::BasicUpdate_mysql</a></li>
132
+
133
+ <li><a href="../SQLConstructor/GenericQuery.html">SQLConstructor::GenericQuery</a></li>
134
+
135
+ <li><a href="../SQLConstructor/QAttr.html">SQLConstructor::QAttr</a></li>
136
+
137
+ <li><a href="../SQLExporter.html">SQLExporter</a></li>
138
+
139
+ <li><a href="../SQLExporter/Exporter_generic.html">SQLExporter::Exporter_generic</a></li>
140
+
141
+ <li><a href="../SQLExporter/Exporter_mysql.html">SQLExporter::Exporter_mysql</a></li>
142
+
143
+ <li><a href="../SQLConditional.html">SQLConditional</a></li>
144
+
145
+ <li><a href="../SQLConditional/BasicCond.html">SQLConditional::BasicCond</a></li>
146
+
147
+ <li><a href="../Object.html">Object</a></li>
148
+
149
+ <li><a href="../SQLAliasedList.html">SQLAliasedList</a></li>
150
+
151
+ <li><a href="../SQLColumn.html">SQLColumn</a></li>
152
+
153
+ <li><a href="../SQLCondList.html">SQLCondList</a></li>
154
+
155
+ <li><a href="../SQLConstructorTest.html">SQLConstructorTest</a></li>
156
+
157
+ <li><a href="../SQLObject.html">SQLObject</a></li>
158
+
159
+ <li><a href="../SQLValList.html">SQLValList</a></li>
160
+
161
+ <li><a href="../SQLValue.html">SQLValue</a></li>
162
+
163
+ </ul>
164
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
165
+ </div>
166
+
167
+
168
+ </div>
169
+ </div>
170
+
171
+ <div id="documentation">
172
+ <h1 class="class">SQLConstructor::QAttr</h1>
173
+
174
+ <div id="description" class="description">
175
+
176
+ </div><!-- description -->
177
+
178
+
179
+
180
+
181
+ <div id="5Buntitled-5D" class="documentation-section">
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+ <!-- Attributes -->
190
+ <div id="attribute-method-details" class="method-section section">
191
+ <h3 class="section-header">Attributes</h3>
192
+
193
+
194
+ <div id="name-attribute-method" class="method-detail">
195
+ <a name="name"></a>
196
+
197
+ <div class="method-heading attribute-method-heading">
198
+ <span class="method-name">name</span><span
199
+ class="attribute-access-type">[R]</span>
200
+ </div>
201
+
202
+ <div class="method-description">
203
+
204
+
205
+
206
+ </div>
207
+ </div>
208
+
209
+ <div id="no_commas-attribute-method" class="method-detail">
210
+ <a name="no_commas"></a>
211
+
212
+ <div class="method-heading attribute-method-heading">
213
+ <span class="method-name">no_commas</span><span
214
+ class="attribute-access-type">[R]</span>
215
+ </div>
216
+
217
+ <div class="method-description">
218
+
219
+
220
+
221
+ </div>
222
+ </div>
223
+
224
+ <div id="text-attribute-method" class="method-detail">
225
+ <a name="text"></a>
226
+
227
+ <div class="method-heading attribute-method-heading">
228
+ <span class="method-name">text</span><span
229
+ class="attribute-access-type">[R]</span>
230
+ </div>
231
+
232
+ <div class="method-description">
233
+
234
+
235
+
236
+ </div>
237
+ </div>
238
+
239
+ <div id="type-attribute-method" class="method-detail">
240
+ <a name="type"></a>
241
+
242
+ <div class="method-heading attribute-method-heading">
243
+ <span class="method-name">type</span><span
244
+ class="attribute-access-type">[R]</span>
245
+ </div>
246
+
247
+ <div class="method-description">
248
+
249
+
250
+
251
+ </div>
252
+ </div>
253
+
254
+ <div id="val-attribute-method" class="method-detail">
255
+ <a name="val"></a>
256
+
257
+ <a name="val="></a>
258
+
259
+ <div class="method-heading attribute-method-heading">
260
+ <span class="method-name">val</span><span
261
+ class="attribute-access-type">[RW]</span>
262
+ </div>
263
+
264
+ <div class="method-description">
265
+
266
+
267
+
268
+ </div>
269
+ </div>
270
+
271
+ <div id="val_type-attribute-method" class="method-detail">
272
+ <a name="val_type"></a>
273
+
274
+ <div class="method-heading attribute-method-heading">
275
+ <span class="method-name">val_type</span><span
276
+ class="attribute-access-type">[R]</span>
277
+ </div>
278
+
279
+ <div class="method-description">
280
+
281
+
282
+
283
+ </div>
284
+ </div>
285
+
286
+ </div><!-- attribute-method-details -->
287
+
288
+
289
+ <!-- Methods -->
290
+
291
+ <div id="public-class-method-details" class="method-section section">
292
+ <h3 class="section-header">Public Class Methods</h3>
293
+
294
+
295
+ <div id="new-method" class="method-detail ">
296
+ <a name="method-c-new"></a>
297
+
298
+
299
+ <div class="method-heading">
300
+ <span class="method-name">new</span><span
301
+ class="method-args">( init_hash = nil )</span>
302
+ <span class="method-click-advice">click to toggle source</span>
303
+ </div>
304
+
305
+
306
+ <div class="method-description">
307
+
308
+
309
+
310
+
311
+
312
+ <div class="method-source-code" id="new-source">
313
+ <pre>
314
+ <span class="ruby-comment"># File lib/sqlconstructor.rb, line 198</span>
315
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span> ( <span class="ruby-identifier">init_hash</span> = <span class="ruby-keyword">nil</span> )
316
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">init_hash</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Hash</span>
317
+ <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">init_hash</span>[<span class="ruby-value">:name</span>]
318
+ <span class="ruby-ivar">@text</span> = <span class="ruby-identifier">init_hash</span>[<span class="ruby-value">:text</span>]
319
+ <span class="ruby-ivar">@val</span> = <span class="ruby-identifier">init_hash</span>[<span class="ruby-value">:val</span>]
320
+ <span class="ruby-ivar">@val_type</span> = <span class="ruby-identifier">init_hash</span>[<span class="ruby-value">:val_type</span>]
321
+ <span class="ruby-ivar">@type</span> = <span class="ruby-identifier">init_hash</span>[<span class="ruby-value">:type</span>]
322
+ <span class="ruby-ivar">@no_commas</span> = <span class="ruby-identifier">init_hash</span>[<span class="ruby-value">:no_commas</span>]
323
+ <span class="ruby-keyword">end</span>
324
+ <span class="ruby-keyword">end</span></pre>
325
+ </div><!-- new-source -->
326
+
327
+ </div>
328
+
329
+
330
+
331
+
332
+ </div><!-- new-method -->
333
+
334
+
335
+ </div><!-- public-class-method-details -->
336
+
337
+ <div id="public-instance-method-details" class="method-section section">
338
+ <h3 class="section-header">Public Instance Methods</h3>
339
+
340
+
341
+ <div id="to_s-method" class="method-detail ">
342
+ <a name="method-i-to_s"></a>
343
+
344
+
345
+ <div class="method-heading">
346
+ <span class="method-name">to_s</span><span
347
+ class="method-args">()</span>
348
+ <span class="method-click-advice">click to toggle source</span>
349
+ </div>
350
+
351
+
352
+ <div class="method-description">
353
+
354
+
355
+
356
+
357
+
358
+ <div class="method-source-code" id="to_s-source">
359
+ <pre>
360
+ <span class="ruby-comment"># File lib/sqlconstructor.rb, line 210</span>
361
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">to_s</span>
362
+ <span class="ruby-keyword">if</span> [ <span class="ruby-constant">SQLValList</span>, <span class="ruby-constant">SQLAliasedList</span> ].<span class="ruby-identifier">include?</span> <span class="ruby-ivar">@val</span>
363
+ <span class="ruby-identifier">result</span> = <span class="ruby-ivar">@val</span>.<span class="ruby-identifier">to_s</span>
364
+ <span class="ruby-keyword">else</span>
365
+ <span class="ruby-identifier">result</span> = <span class="ruby-ivar">@text</span>
366
+ <span class="ruby-keyword">if</span> <span class="ruby-ivar">@val</span>
367
+ <span class="ruby-identifier">val_arr</span> = <span class="ruby-ivar">@val</span>.<span class="ruby-identifier">is_a?</span>( <span class="ruby-constant">Array</span> ) <span class="ruby-operator">?</span> <span class="ruby-ivar">@val</span> <span class="ruby-operator">:</span> [ <span class="ruby-ivar">@val</span> ]
368
+ <span class="ruby-identifier">result</span> <span class="ruby-operator">+=</span> <span class="ruby-string">&quot; &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">val_arr</span>.<span class="ruby-identifier">join</span>( <span class="ruby-string">&quot;,&quot;</span> )
369
+ <span class="ruby-keyword">end</span>
370
+ <span class="ruby-keyword">end</span>
371
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">result</span>
372
+ <span class="ruby-keyword">end</span></pre>
373
+ </div><!-- to_s-source -->
374
+
375
+ </div>
376
+
377
+
378
+
379
+
380
+ </div><!-- to_s-method -->
381
+
382
+
383
+ </div><!-- public-instance-method-details -->
384
+
385
+ </div><!-- 5Buntitled-5D -->
386
+
387
+
388
+ </div><!-- documentation -->
389
+
390
+ <div id="validator-badges">
391
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
392
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
393
+ Rdoc Generator</a> 2</small>.</p>
394
+ </div>
395
+
396
+ </body>
397
+ </html>
398
+
@@ -0,0 +1,603 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
7
+
8
+ <title>Class: SQLConstructorTest</title>
9
+
10
+ <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="./js/jquery.js" type="text/javascript" charset="utf-8"></script>
13
+ <script src="./js/thickbox-compressed.js" type="text/javascript" charset="utf-8"></script>
14
+ <script src="./js/quicksearch.js" type="text/javascript" charset="utf-8"></script>
15
+ <script src="./js/darkfish.js" type="text/javascript" charset="utf-8"></script>
16
+
17
+ </head>
18
+ <body id="top" class="class">
19
+
20
+ <div id="metadata">
21
+ <div id="home-metadata">
22
+ <div id="home-section" class="section">
23
+ <h3 class="section-header">
24
+ <a href="./index.html">Home</a>
25
+ <a href="./index.html#classes">Classes</a>
26
+ <a href="./index.html#methods">Methods</a>
27
+ </h3>
28
+ </div>
29
+ </div>
30
+
31
+ <div id="file-metadata">
32
+ <div id="file-list-section" class="section">
33
+ <h3 class="section-header">In Files</h3>
34
+ <div class="section-body">
35
+ <ul>
36
+
37
+ <li><a href="./test/queries_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
38
+ class="thickbox" title="test/queries.rb">test/queries.rb</a></li>
39
+
40
+ </ul>
41
+ </div>
42
+ </div>
43
+
44
+
45
+ </div>
46
+
47
+ <div id="class-metadata">
48
+
49
+ <!-- Parent Class -->
50
+ <div id="parent-class-section" class="section">
51
+ <h3 class="section-header">Parent</h3>
52
+
53
+ <p class="link">Test::Unit::TestCase</p>
54
+
55
+ </div>
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+ <!-- Method Quickref -->
64
+ <div id="method-list-section" class="section">
65
+ <h3 class="section-header">Methods</h3>
66
+ <ul class="link-list">
67
+
68
+ <li><a href="#method-i-delete1">#delete1</a></li>
69
+
70
+ <li><a href="#method-i-insert1">#insert1</a></li>
71
+
72
+ <li><a href="#method-i-select1">#select1</a></li>
73
+
74
+ <li><a href="#method-i-select2">#select2</a></li>
75
+
76
+ <li><a href="#method-i-test_delete1">#test_delete1</a></li>
77
+
78
+ <li><a href="#method-i-test_insert1">#test_insert1</a></li>
79
+
80
+ <li><a href="#method-i-test_select1">#test_select1</a></li>
81
+
82
+ <li><a href="#method-i-test_select2">#test_select2</a></li>
83
+
84
+ <li><a href="#method-i-test_update1">#test_update1</a></li>
85
+
86
+ <li><a href="#method-i-update1">#update1</a></li>
87
+
88
+ </ul>
89
+ </div>
90
+
91
+
92
+
93
+ </div>
94
+
95
+ <div id="project-metadata">
96
+
97
+
98
+ <div id="fileindex-section" class="section project-section">
99
+ <h3 class="section-header">Files</h3>
100
+ <ul>
101
+
102
+ <li class="file"><a href="./Rakefile.html">Rakefile</a></li>
103
+
104
+ </ul>
105
+ </div>
106
+
107
+
108
+ <div id="classindex-section" class="section project-section">
109
+ <h3 class="section-header">Class/Module Index
110
+ <span class="search-toggle"><img src="./images/find.png"
111
+ height="16" width="16" alt="[+]"
112
+ title="show/hide quicksearch" /></span></h3>
113
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
114
+ <fieldset>
115
+ <legend>Quicksearch</legend>
116
+ <input type="text" name="quicksearch" value=""
117
+ class="quicksearch-field" />
118
+ </fieldset>
119
+ </form>
120
+
121
+ <ul class="link-list">
122
+
123
+ <li><a href="./SQLConstructor.html">SQLConstructor</a></li>
124
+
125
+ <li><a href="./SQLConstructor/BasicDelete.html">SQLConstructor::BasicDelete</a></li>
126
+
127
+ <li><a href="./SQLConstructor/BasicDelete_mysql.html">SQLConstructor::BasicDelete_mysql</a></li>
128
+
129
+ <li><a href="./SQLConstructor/BasicInsert.html">SQLConstructor::BasicInsert</a></li>
130
+
131
+ <li><a href="./SQLConstructor/BasicInsert_mysql.html">SQLConstructor::BasicInsert_mysql</a></li>
132
+
133
+ <li><a href="./SQLConstructor/BasicJoin.html">SQLConstructor::BasicJoin</a></li>
134
+
135
+ <li><a href="./SQLConstructor/BasicJoin_mysql.html">SQLConstructor::BasicJoin_mysql</a></li>
136
+
137
+ <li><a href="./SQLConstructor/BasicSelect.html">SQLConstructor::BasicSelect</a></li>
138
+
139
+ <li><a href="./SQLConstructor/BasicSelect_example.html">SQLConstructor::BasicSelect_example</a></li>
140
+
141
+ <li><a href="./SQLConstructor/BasicSelect_mysql.html">SQLConstructor::BasicSelect_mysql</a></li>
142
+
143
+ <li><a href="./SQLConstructor/BasicUnion.html">SQLConstructor::BasicUnion</a></li>
144
+
145
+ <li><a href="./SQLConstructor/BasicUpdate.html">SQLConstructor::BasicUpdate</a></li>
146
+
147
+ <li><a href="./SQLConstructor/BasicUpdate_mysql.html">SQLConstructor::BasicUpdate_mysql</a></li>
148
+
149
+ <li><a href="./SQLConstructor/GenericQuery.html">SQLConstructor::GenericQuery</a></li>
150
+
151
+ <li><a href="./SQLConstructor/QAttr.html">SQLConstructor::QAttr</a></li>
152
+
153
+ <li><a href="./SQLExporter.html">SQLExporter</a></li>
154
+
155
+ <li><a href="./SQLExporter/Exporter_generic.html">SQLExporter::Exporter_generic</a></li>
156
+
157
+ <li><a href="./SQLExporter/Exporter_mysql.html">SQLExporter::Exporter_mysql</a></li>
158
+
159
+ <li><a href="./SQLConditional.html">SQLConditional</a></li>
160
+
161
+ <li><a href="./SQLConditional/BasicCond.html">SQLConditional::BasicCond</a></li>
162
+
163
+ <li><a href="./Object.html">Object</a></li>
164
+
165
+ <li><a href="./SQLAliasedList.html">SQLAliasedList</a></li>
166
+
167
+ <li><a href="./SQLColumn.html">SQLColumn</a></li>
168
+
169
+ <li><a href="./SQLCondList.html">SQLCondList</a></li>
170
+
171
+ <li><a href="./SQLConstructorTest.html">SQLConstructorTest</a></li>
172
+
173
+ <li><a href="./SQLObject.html">SQLObject</a></li>
174
+
175
+ <li><a href="./SQLValList.html">SQLValList</a></li>
176
+
177
+ <li><a href="./SQLValue.html">SQLValue</a></li>
178
+
179
+ </ul>
180
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
181
+ </div>
182
+
183
+
184
+ </div>
185
+ </div>
186
+
187
+ <div id="documentation">
188
+ <h1 class="class">SQLConstructorTest</h1>
189
+
190
+ <div id="description" class="description">
191
+
192
+ </div><!-- description -->
193
+
194
+
195
+
196
+
197
+ <div id="5Buntitled-5D" class="documentation-section">
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+ <!-- Methods -->
207
+
208
+ <div id="public-instance-method-details" class="method-section section">
209
+ <h3 class="section-header">Public Instance Methods</h3>
210
+
211
+
212
+ <div id="delete1-method" class="method-detail ">
213
+ <a name="method-i-delete1"></a>
214
+
215
+
216
+ <div class="method-heading">
217
+ <span class="method-name">delete1</span><span
218
+ class="method-args">()</span>
219
+ <span class="method-click-advice">click to toggle source</span>
220
+ </div>
221
+
222
+
223
+ <div class="method-description">
224
+
225
+
226
+
227
+
228
+
229
+ <div class="method-source-code" id="delete1-source">
230
+ <pre>
231
+ <span class="ruby-comment"># File test/queries.rb, line 66</span>
232
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">delete1</span>
233
+ <span class="ruby-identifier">sql</span> = <span class="ruby-constant">SQLConstructor</span>.<span class="ruby-identifier">new</span>( <span class="ruby-value">:tidy</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>, <span class="ruby-value">:dialect</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'mysql'</span> )
234
+ <span class="ruby-identifier">inner_sel3</span> = <span class="ruby-constant">SQLConstructor</span>.<span class="ruby-identifier">new</span>( <span class="ruby-value">:tidy</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>, <span class="ruby-value">:dialect</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'mysql'</span> ).<span class="ruby-identifier">select</span>( <span class="ruby-value">:keyword_id</span> ).<span class="ruby-identifier">distinct</span>.<span class="ruby-identifier">from</span>( <span class="ruby-value">:customer_analysis</span> )
235
+ <span class="ruby-identifier">inner_sel2</span> = <span class="ruby-constant">SQLConstructor</span>.<span class="ruby-identifier">new</span>( <span class="ruby-value">:tidy</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>, <span class="ruby-value">:dialect</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'mysql'</span> ).<span class="ruby-identifier">select</span>( <span class="ruby-value">:&quot;k.keyword&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:id</span> ).<span class="ruby-identifier">from</span>( <span class="ruby-value">:keywords</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:k</span> ).
236
+ <span class="ruby-identifier">where</span>.<span class="ruby-identifier">eq</span>( <span class="ruby-value">:&quot;k.keyword_type&quot;</span>, <span class="ruby-string">&quot;CAMPAIGN&quot;</span> ).<span class="ruby-identifier">and</span>.<span class="ruby-identifier">ne</span>( <span class="ruby-value">:&quot;k.keyword&quot;</span>, <span class="ruby-string">&quot;Airtel&quot;</span> ).
237
+ <span class="ruby-identifier">and</span>.<span class="ruby-identifier">ne</span>( <span class="ruby-value">:&quot;k.keyword&quot;</span>, <span class="ruby-string">&quot;Nokia&quot;</span> ).<span class="ruby-identifier">and</span>.<span class="ruby-identifier">ne</span>( <span class="ruby-value">:&quot;k.keyword&quot;</span>, <span class="ruby-string">&quot;Micromax&quot;</span> ).
238
+ <span class="ruby-identifier">and</span>.<span class="ruby-identifier">not_in</span>( <span class="ruby-value">:&quot;k.keyword&quot;</span>, <span class="ruby-identifier">inner_sel3</span> ).<span class="ruby-identifier">order_by</span>( <span class="ruby-value">:&quot;k.keyword_id&quot;</span> )
239
+ <span class="ruby-identifier">inner_sel1</span> = <span class="ruby-constant">SQLConstructor</span>.<span class="ruby-identifier">new</span>( <span class="ruby-value">:tidy</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>, <span class="ruby-value">:dialect</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'mysql'</span> ).<span class="ruby-identifier">select</span>( <span class="ruby-value">:id</span> ).<span class="ruby-identifier">from</span>( <span class="ruby-identifier">inner_sel2</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:a</span> )
240
+ <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">delete</span>.<span class="ruby-identifier">from</span>( <span class="ruby-value">:keywords</span> ).<span class="ruby-identifier">where</span>.<span class="ruby-identifier">in</span>( <span class="ruby-value">:keyword_id</span>, <span class="ruby-identifier">inner_sel1</span> )
241
+ <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">to_s</span>
242
+ <span class="ruby-keyword">end</span></pre>
243
+ </div><!-- delete1-source -->
244
+
245
+ </div>
246
+
247
+
248
+
249
+
250
+ </div><!-- delete1-method -->
251
+
252
+
253
+ <div id="insert1-method" class="method-detail ">
254
+ <a name="method-i-insert1"></a>
255
+
256
+
257
+ <div class="method-heading">
258
+ <span class="method-name">insert1</span><span
259
+ class="method-args">()</span>
260
+ <span class="method-click-advice">click to toggle source</span>
261
+ </div>
262
+
263
+
264
+ <div class="method-description">
265
+
266
+
267
+
268
+
269
+
270
+ <div class="method-source-code" id="insert1-source">
271
+ <pre>
272
+ <span class="ruby-comment"># File test/queries.rb, line 60</span>
273
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">insert1</span>
274
+ <span class="ruby-identifier">sql</span> = <span class="ruby-constant">SQLConstructor</span>.<span class="ruby-identifier">new</span>( <span class="ruby-value">:tidy</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>, <span class="ruby-value">:dialect</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'mysql'</span> )
275
+ <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">insert</span>.<span class="ruby-identifier">into</span>(<span class="ruby-value">:table2</span>).<span class="ruby-identifier">select</span>(<span class="ruby-value">:name</span>, <span class="ruby-value">:&quot;CONCAT('blah=',ID)&quot;</span>).<span class="ruby-identifier">from</span>(<span class="ruby-value">:table1</span>)
276
+ <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">to_s</span>
277
+ <span class="ruby-keyword">end</span></pre>
278
+ </div><!-- insert1-source -->
279
+
280
+ </div>
281
+
282
+
283
+
284
+
285
+ </div><!-- insert1-method -->
286
+
287
+
288
+ <div id="select1-method" class="method-detail ">
289
+ <a name="method-i-select1"></a>
290
+
291
+
292
+ <div class="method-heading">
293
+ <span class="method-name">select1</span><span
294
+ class="method-args">()</span>
295
+ <span class="method-click-advice">click to toggle source</span>
296
+ </div>
297
+
298
+
299
+ <div class="method-description">
300
+
301
+
302
+
303
+
304
+
305
+ <div class="method-source-code" id="select1-source">
306
+ <pre>
307
+ <span class="ruby-comment"># File test/queries.rb, line 31</span>
308
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">select1</span>
309
+ <span class="ruby-identifier">sql</span> = <span class="ruby-constant">SQLConstructor</span>.<span class="ruby-identifier">new</span>( <span class="ruby-value">:tidy</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>, <span class="ruby-value">:dialect</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'mysql'</span> )
310
+ <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">select</span>(<span class="ruby-value">:col1</span>,<span class="ruby-value">:col2</span>).<span class="ruby-identifier">from</span>(<span class="ruby-value">:table1</span>).<span class="ruby-identifier">where</span>.<span class="ruby-identifier">eq</span>(<span class="ruby-value">:col1</span>, <span class="ruby-value">123</span>).<span class="ruby-identifier">and</span>.<span class="ruby-identifier">in</span>(<span class="ruby-value">:col2</span>,[<span class="ruby-string">&quot;value1&quot;</span>,<span class="ruby-string">&quot;value2&quot;</span>,<span class="ruby-node">&quot;@#\$%^&quot;</span>])
311
+ <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">limit</span>( <span class="ruby-value">100</span> )
312
+ <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">union</span>.<span class="ruby-identifier">_name</span>(<span class="ruby-string">&quot;u1&quot;</span>).<span class="ruby-identifier">select</span>(<span class="ruby-value">:baz</span>).<span class="ruby-identifier">from</span>(<span class="ruby-value">:table2</span>)
313
+ <span class="ruby-identifier">c2</span> = <span class="ruby-constant">SQLConditional</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">eq</span>(<span class="ruby-value">:c1</span>,<span class="ruby-value">3</span>).<span class="ruby-identifier">and</span>.<span class="ruby-identifier">in</span>(<span class="ruby-value">:c2</span>,[<span class="ruby-value">1</span>,<span class="ruby-value">2</span>,<span class="ruby-value">3</span>,<span class="ruby-value">4</span>,<span class="ruby-value">5</span>]).<span class="ruby-identifier">and</span>.<span class="ruby-identifier">eq</span>(<span class="ruby-value">:s1</span>,<span class="ruby-string">'somestring'</span>)
314
+ <span class="ruby-identifier">c1</span> = <span class="ruby-constant">SQLConditional</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">eq</span>(<span class="ruby-value">:c1</span>,<span class="ruby-value">5</span>).<span class="ruby-identifier">and</span>.<span class="ruby-identifier">lt</span>(<span class="ruby-value">:c2</span>,<span class="ruby-value">6</span>).<span class="ruby-identifier">or</span>.<span class="ruby-identifier">is</span>(<span class="ruby-identifier">c2</span>)
315
+ <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">where</span>.<span class="ruby-identifier">and</span>.<span class="ruby-identifier">is</span>(<span class="ruby-identifier">c1</span>)
316
+ <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">join</span>( <span class="ruby-value">:table3</span> ).<span class="ruby-identifier">_name</span>(<span class="ruby-string">'j1'</span>).<span class="ruby-identifier">on</span>.<span class="ruby-identifier">eq</span>( <span class="ruby-value">:col1</span>, <span class="ruby-value">:ccc1</span> ).<span class="ruby-identifier">use_index</span>( <span class="ruby-value">:col1</span> )
317
+ <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">join</span>( <span class="ruby-value">:table4</span>,<span class="ruby-value">:table5</span> ).<span class="ruby-identifier">_name</span>(<span class="ruby-string">'j2'</span>).<span class="ruby-identifier">on</span>.<span class="ruby-identifier">eq</span>( <span class="ruby-value">:col2</span>, <span class="ruby-value">:ccc2</span>).<span class="ruby-identifier">and</span>.<span class="ruby-identifier">eq</span>( <span class="ruby-value">:col3</span>, <span class="ruby-value">5</span> )
318
+ <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">union</span>.<span class="ruby-identifier">_name</span>(<span class="ruby-string">&quot;u2&quot;</span>).<span class="ruby-identifier">select</span>(<span class="ruby-value">:fooz</span>).<span class="ruby-identifier">from</span>(<span class="ruby-value">:table5</span>).<span class="ruby-identifier">limit</span>( <span class="ruby-value">20</span> )
319
+ <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">to_s</span>
320
+ <span class="ruby-keyword">end</span></pre>
321
+ </div><!-- select1-source -->
322
+
323
+ </div>
324
+
325
+
326
+
327
+
328
+ </div><!-- select1-method -->
329
+
330
+
331
+ <div id="select2-method" class="method-detail ">
332
+ <a name="method-i-select2"></a>
333
+
334
+
335
+ <div class="method-heading">
336
+ <span class="method-name">select2</span><span
337
+ class="method-args">()</span>
338
+ <span class="method-click-advice">click to toggle source</span>
339
+ </div>
340
+
341
+
342
+ <div class="method-description">
343
+
344
+
345
+
346
+
347
+
348
+ <div class="method-source-code" id="select2-source">
349
+ <pre>
350
+ <span class="ruby-comment"># File test/queries.rb, line 45</span>
351
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">select2</span>
352
+ <span class="ruby-identifier">sql</span> = <span class="ruby-constant">SQLConstructor</span>.<span class="ruby-identifier">new</span>( <span class="ruby-value">:tidy</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>, <span class="ruby-value">:dialect</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'mysql'</span> )
353
+ <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">select</span>( <span class="ruby-value">:&quot;t.id&quot;</span>,<span class="ruby-value">:&quot;t.tag&quot;</span>,<span class="ruby-value">:&quot;c.title&quot;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:category</span> ).<span class="ruby-identifier">from</span>( <span class="ruby-value">:tags2Articles</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:t2a</span> )
354
+ <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">inner_join</span>( <span class="ruby-value">:tags</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:t</span> ).<span class="ruby-identifier">on</span>.<span class="ruby-identifier">eq</span>(<span class="ruby-value">:&quot;t.id&quot;</span>, <span class="ruby-value">:&quot;t2a.idTag&quot;</span> )
355
+ <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">inner_join</span>( <span class="ruby-value">:categories</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:c</span> ).<span class="ruby-identifier">on</span>.<span class="ruby-identifier">eq</span>( <span class="ruby-value">:&quot;t.tagCategory&quot;</span>, <span class="ruby-value">:&quot;c.id&quot;</span> )
356
+ <span class="ruby-identifier">inner_sql</span> = <span class="ruby-constant">SQLConstructor</span>.<span class="ruby-identifier">new</span>( <span class="ruby-value">:tidy</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>, <span class="ruby-value">:dialect</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'mysql'</span> )
357
+ <span class="ruby-identifier">inner_sql</span>.<span class="ruby-identifier">select</span>( <span class="ruby-value">:&quot;a.id&quot;</span> ).<span class="ruby-identifier">from</span>( <span class="ruby-value">:articles</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:a</span> )
358
+ <span class="ruby-identifier">inner_sql</span>.<span class="ruby-identifier">join</span>( <span class="ruby-value">:tags2articles</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:ta</span> ).<span class="ruby-identifier">on</span>.<span class="ruby-identifier">eq</span>( <span class="ruby-value">:&quot;a.id&quot;</span>, <span class="ruby-value">:&quot;ta.idArticle&quot;</span> )
359
+ <span class="ruby-identifier">inner_sql</span>.<span class="ruby-identifier">join</span>( <span class="ruby-value">:tags</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:tsub</span> ).<span class="ruby-identifier">on</span>.<span class="ruby-identifier">eq</span>( <span class="ruby-value">:&quot;ta.idTag&quot;</span>, <span class="ruby-value">:&quot;tsub.id&quot;</span> )
360
+ <span class="ruby-identifier">inner_sql</span>.<span class="ruby-identifier">where</span>.<span class="ruby-identifier">in</span>( <span class="ruby-value">:&quot;tsub.id&quot;</span>, [<span class="ruby-value">12</span>,<span class="ruby-value">13</span>,<span class="ruby-value">16</span>] ).<span class="ruby-identifier">group_by</span>( <span class="ruby-value">:&quot;a.id&quot;</span> ).
361
+ <span class="ruby-identifier">having</span>.<span class="ruby-identifier">eq</span>( <span class="ruby-value">:&quot;COUNT(DISTINCT tsub.id)&quot;</span>, <span class="ruby-value">3</span> )
362
+ <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">inner_join</span>( <span class="ruby-identifier">inner_sql</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'asub'</span> ).<span class="ruby-identifier">on</span>.<span class="ruby-identifier">eq</span>( <span class="ruby-value">:&quot;t2a.idArticle&quot;</span>, <span class="ruby-value">:&quot;asub.id&quot;</span> )
363
+ <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">to_s</span>
364
+ <span class="ruby-keyword">end</span></pre>
365
+ </div><!-- select2-source -->
366
+
367
+ </div>
368
+
369
+
370
+
371
+
372
+ </div><!-- select2-method -->
373
+
374
+
375
+ <div id="test_delete1-method" class="method-detail ">
376
+ <a name="method-i-test_delete1"></a>
377
+
378
+
379
+ <div class="method-heading">
380
+ <span class="method-name">test_delete1</span><span
381
+ class="method-args">()</span>
382
+ <span class="method-click-advice">click to toggle source</span>
383
+ </div>
384
+
385
+
386
+ <div class="method-description">
387
+
388
+
389
+
390
+
391
+
392
+ <div class="method-source-code" id="test_delete1-source">
393
+ <pre>
394
+ <span class="ruby-comment"># File test/queries.rb, line 21</span>
395
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">test_delete1</span>
396
+ <span class="ruby-identifier">assert_equal</span> <span class="ruby-string">&quot;DELETE\nFROM keywords\nWHERE \n(keyword_id IN \n(SELECT\n id\nFROM \n(SELECT\n k.keyword id\nFROM keywords k\nWHERE \n(k.keyword_type = 'CAMPAIGN' AND k.keyword != 'Airtel' AND k.keyword != 'Nokia' AND k.keyword != 'Micromax' AND k.keyword NOT IN \n(SELECT\nDISTINCT\n keyword_id\nFROM customer_analysis\n))\nORDER BY k.keyword_id\n) a\n))\n&quot;</span>,
397
+ <span class="ruby-identifier">delete1</span>
398
+ <span class="ruby-keyword">end</span></pre>
399
+ </div><!-- test_delete1-source -->
400
+
401
+ </div>
402
+
403
+
404
+
405
+
406
+ </div><!-- test_delete1-method -->
407
+
408
+
409
+ <div id="test_insert1-method" class="method-detail ">
410
+ <a name="method-i-test_insert1"></a>
411
+
412
+
413
+ <div class="method-heading">
414
+ <span class="method-name">test_insert1</span><span
415
+ class="method-args">()</span>
416
+ <span class="method-click-advice">click to toggle source</span>
417
+ </div>
418
+
419
+
420
+ <div class="method-description">
421
+
422
+
423
+
424
+
425
+
426
+ <div class="method-source-code" id="test_insert1-source">
427
+ <pre>
428
+ <span class="ruby-comment"># File test/queries.rb, line 16</span>
429
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">test_insert1</span>
430
+ <span class="ruby-identifier">assert_equal</span> <span class="ruby-string">&quot;INSERT\nINTO table2\n SELECT\n name,CONCAT('blah=',ID)\nFROM table1\n\n&quot;</span>,
431
+ <span class="ruby-identifier">insert1</span>
432
+ <span class="ruby-keyword">end</span></pre>
433
+ </div><!-- test_insert1-source -->
434
+
435
+ </div>
436
+
437
+
438
+
439
+
440
+ </div><!-- test_insert1-method -->
441
+
442
+
443
+ <div id="test_select1-method" class="method-detail ">
444
+ <a name="method-i-test_select1"></a>
445
+
446
+
447
+ <div class="method-heading">
448
+ <span class="method-name">test_select1</span><span
449
+ class="method-args">()</span>
450
+ <span class="method-click-advice">click to toggle source</span>
451
+ </div>
452
+
453
+
454
+ <div class="method-description">
455
+
456
+
457
+
458
+
459
+
460
+ <div class="method-source-code" id="test_select1-source">
461
+ <pre>
462
+ <span class="ruby-comment"># File test/queries.rb, line 6</span>
463
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">test_select1</span>
464
+ <span class="ruby-identifier">assert_equal</span> <span class="ruby-string">&quot;SELECT\n col1,col2\nFROM table1\nJOIN table3 USE INDEX (col1)\nON \n(col1 = ccc1)\nJOIN table4,table5\nON \n(col2 = ccc2 AND col3 = 5)\nWHERE \n(col1 = 123 AND col2 IN ('value1','value2','@\#$%^') AND \n(c1 = 5 AND c2 &lt; 6 OR (c1 = 3 AND c2 IN (1,2,3,4,5) AND s1 = 'somestring')))\nLIMIT 100\nUNION\nSELECT\n baz\nFROM table2\nUNION\nSELECT\n fooz\nFROM table5\nLIMIT 20\n\n&quot;</span>,
465
+ <span class="ruby-identifier">select1</span>
466
+ <span class="ruby-keyword">end</span></pre>
467
+ </div><!-- test_select1-source -->
468
+
469
+ </div>
470
+
471
+
472
+
473
+
474
+ </div><!-- test_select1-method -->
475
+
476
+
477
+ <div id="test_select2-method" class="method-detail ">
478
+ <a name="method-i-test_select2"></a>
479
+
480
+
481
+ <div class="method-heading">
482
+ <span class="method-name">test_select2</span><span
483
+ class="method-args">()</span>
484
+ <span class="method-click-advice">click to toggle source</span>
485
+ </div>
486
+
487
+
488
+ <div class="method-description">
489
+
490
+
491
+
492
+
493
+
494
+ <div class="method-source-code" id="test_select2-source">
495
+ <pre>
496
+ <span class="ruby-comment"># File test/queries.rb, line 11</span>
497
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">test_select2</span>
498
+ <span class="ruby-identifier">assert_equal</span> <span class="ruby-string">&quot;SELECT\n t.id,t.tag,c.title category\nFROM tags2Articles t2a\nINNER JOIN tags t\nON \n(t.id = t2a.idTag)\nINNER JOIN categories c\nON \n(t.tagCategory = c.id)\nINNER JOIN \n(SELECT\n a.id\nFROM articles a\nJOIN tags2articles ta\nON \n(a.id = ta.idArticle)\nJOIN tags tsub\nON \n(ta.idTag = tsub.id)\nWHERE \n(tsub.id IN (12,13,16))\nGROUP BY a.id\nHAVING \n(COUNT(DISTINCT tsub.id) = 3)\n) asub\nON \n(t2a.idArticle = asub.id)\n&quot;</span>,
499
+ <span class="ruby-identifier">select2</span>
500
+ <span class="ruby-keyword">end</span></pre>
501
+ </div><!-- test_select2-source -->
502
+
503
+ </div>
504
+
505
+
506
+
507
+
508
+ </div><!-- test_select2-method -->
509
+
510
+
511
+ <div id="test_update1-method" class="method-detail ">
512
+ <a name="method-i-test_update1"></a>
513
+
514
+
515
+ <div class="method-heading">
516
+ <span class="method-name">test_update1</span><span
517
+ class="method-args">()</span>
518
+ <span class="method-click-advice">click to toggle source</span>
519
+ </div>
520
+
521
+
522
+ <div class="method-description">
523
+
524
+
525
+
526
+
527
+
528
+ <div class="method-source-code" id="test_update1-source">
529
+ <pre>
530
+ <span class="ruby-comment"># File test/queries.rb, line 26</span>
531
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">test_update1</span>
532
+ <span class="ruby-identifier">assert_equal</span> <span class="ruby-string">&quot;UPDATE\n guest g\nSET link_id=\n(SELECT\n MAX(h.host_id)\nFROM guest_data d\nINNER JOIN host_data h\nON \n(d.guest_nm = hhost_nm)\nWHERE \n(d.guest_id = g.guest_id)\nGROUP BY h.venue_nm\nHAVING \n(COUNT(*) = 1)\n)\nWHERE \n(g.guest_id IN \n(SELECT\n d.guest_id\nFROM guest_data d\nINNER JOIN host_data h\nON \n(d.guest_nm = hhost_nm)\nGROUP BY h.venue_nm\nHAVING \n(COUNT(*) = 1)\n))\n&quot;</span>,
533
+ <span class="ruby-identifier">update1</span>
534
+ <span class="ruby-keyword">end</span></pre>
535
+ </div><!-- test_update1-source -->
536
+
537
+ </div>
538
+
539
+
540
+
541
+
542
+ </div><!-- test_update1-method -->
543
+
544
+
545
+ <div id="update1-method" class="method-detail ">
546
+ <a name="method-i-update1"></a>
547
+
548
+
549
+ <div class="method-heading">
550
+ <span class="method-name">update1</span><span
551
+ class="method-args">()</span>
552
+ <span class="method-click-advice">click to toggle source</span>
553
+ </div>
554
+
555
+
556
+ <div class="method-description">
557
+
558
+
559
+
560
+
561
+
562
+ <div class="method-source-code" id="update1-source">
563
+ <pre>
564
+ <span class="ruby-comment"># File test/queries.rb, line 78</span>
565
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">update1</span>
566
+ <span class="ruby-identifier">sql</span> = <span class="ruby-constant">SQLConstructor</span>.<span class="ruby-identifier">new</span>( <span class="ruby-value">:tidy</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>, <span class="ruby-value">:dialect</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'mysql'</span> )
567
+ <span class="ruby-identifier">in_sel1</span> = <span class="ruby-constant">SQLConstructor</span>.<span class="ruby-identifier">new</span>( <span class="ruby-value">:tidy</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span> )
568
+ <span class="ruby-identifier">in_sel1</span>.<span class="ruby-identifier">select</span>( <span class="ruby-value">:&quot;MAX(h.host_id)&quot;</span> ).<span class="ruby-identifier">from</span>( <span class="ruby-value">:guest_data</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:d</span> ).
569
+ <span class="ruby-identifier">inner_join</span>( <span class="ruby-value">:host_data</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:h</span> ).<span class="ruby-identifier">on</span>.<span class="ruby-identifier">eq</span>( <span class="ruby-value">:&quot;d.guest_nm&quot;</span>, <span class="ruby-value">:hhost_nm</span> ).<span class="ruby-identifier">where</span>.
570
+ <span class="ruby-identifier">eq</span>( <span class="ruby-value">:&quot;d.guest_id&quot;</span>, <span class="ruby-value">:&quot;g.guest_id&quot;</span> ).<span class="ruby-identifier">group_by</span>( <span class="ruby-value">:&quot;h.venue_nm&quot;</span> ).<span class="ruby-identifier">having</span>.<span class="ruby-identifier">eq</span>( <span class="ruby-value">:&quot;COUNT(*)&quot;</span>, <span class="ruby-value">1</span> )
571
+ <span class="ruby-identifier">in_sel2</span> = <span class="ruby-constant">SQLConstructor</span>.<span class="ruby-identifier">new</span>( <span class="ruby-value">:dialect</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'mysql'</span>, <span class="ruby-value">:tidy</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span> )
572
+ <span class="ruby-identifier">in_sel2</span>.<span class="ruby-identifier">select</span>( <span class="ruby-value">:&quot;d.guest_id&quot;</span> ).<span class="ruby-identifier">from</span>( <span class="ruby-value">:guest_data</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:d</span> ).
573
+ <span class="ruby-identifier">inner_join</span>( <span class="ruby-value">:host_data</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:h</span> ).<span class="ruby-identifier">on</span>.<span class="ruby-identifier">eq</span>( <span class="ruby-value">:&quot;d.guest_nm&quot;</span>, <span class="ruby-value">:hhost_nm</span> ).
574
+ <span class="ruby-identifier">group_by</span>( <span class="ruby-value">:&quot;h.venue_nm&quot;</span> ).<span class="ruby-identifier">having</span>.<span class="ruby-identifier">eq</span>( <span class="ruby-value">:&quot;COUNT(*)&quot;</span>, <span class="ruby-value">1</span> )
575
+ <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">update</span>( <span class="ruby-value">:guest</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:g</span> ).<span class="ruby-identifier">set</span>( <span class="ruby-value">:link_id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">in_sel1</span>).<span class="ruby-identifier">where</span>.<span class="ruby-identifier">in</span>( <span class="ruby-value">:&quot;g.guest_id&quot;</span>, <span class="ruby-identifier">in_sel2</span> )
576
+ <span class="ruby-identifier">sql</span>.<span class="ruby-identifier">to_s</span>
577
+ <span class="ruby-keyword">end</span></pre>
578
+ </div><!-- update1-source -->
579
+
580
+ </div>
581
+
582
+
583
+
584
+
585
+ </div><!-- update1-method -->
586
+
587
+
588
+ </div><!-- public-instance-method-details -->
589
+
590
+ </div><!-- 5Buntitled-5D -->
591
+
592
+
593
+ </div><!-- documentation -->
594
+
595
+ <div id="validator-badges">
596
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
597
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
598
+ Rdoc Generator</a> 2</small>.</p>
599
+ </div>
600
+
601
+ </body>
602
+ </html>
603
+