cleaning up some of the wheres

This commit is contained in:
Tim Griesser 2013-03-12 17:23:44 -04:00
parent 0e76ce5dc9
commit 434a2792d5
2 changed files with 18 additions and 24 deletions

View File

@ -338,21 +338,18 @@ where key = value. </p> </td> <td class="code">
<span class="nx">_</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">bindings</span><span class="p">,</span> <span class="nx">query</span><span class="p">.</span><span class="nx">bindings</span><span class="p">);</span>
<span class="k">return</span> <span class="k">this</span><span class="p">;</span>
<span class="p">},</span></pre></div> </td> </tr> <tr id="section-46"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-46">&#182;</a> </div> <p>Adds an <code>or where exists</code> clause to the query.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">orWhereExists</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">callback</span><span class="p">,</span> <span class="nx">condition</span><span class="p">)</span> <span class="p">{</span>
<span class="kd">var</span> <span class="nx">type</span> <span class="o">=</span> <span class="nx">condition</span> <span class="o">?</span> <span class="s1">&#39;NotExists&#39;</span> <span class="o">:</span> <span class="s1">&#39;Exists&#39;</span><span class="p">;</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">whereExists</span><span class="p">(</span><span class="nx">callback</span><span class="p">,</span> <span class="s1">&#39;or&#39;</span><span class="p">,</span> <span class="s1">&#39;NotExists&#39;</span><span class="p">);</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">whereExists</span><span class="p">(</span><span class="nx">callback</span><span class="p">,</span> <span class="s1">&#39;or&#39;</span><span class="p">);</span>
<span class="p">},</span></pre></div> </td> </tr> <tr id="section-47"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-47">&#182;</a> </div> <p>Adds a <code>where not exists</code> clause to the query.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">whereNotExists</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">callback</span><span class="p">,</span> <span class="nx">bool</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">bool</span> <span class="o">||</span> <span class="p">(</span><span class="nx">bool</span> <span class="o">=</span> <span class="s1">&#39;and&#39;</span><span class="p">);</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">whereExists</span><span class="p">(</span><span class="nx">callback</span><span class="p">,</span> <span class="nx">bool</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">whereExists</span><span class="p">(</span><span class="nx">callback</span><span class="p">,</span> <span class="s1">&#39;and&#39;</span><span class="p">,</span> <span class="s1">&#39;NotExists&#39;</span><span class="p">);</span>
<span class="p">},</span></pre></div> </td> </tr> <tr id="section-48"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-48">&#182;</a> </div> <p>Adds a <code>or where not exists</code> clause to the query.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">orWhereNotExists</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">callback</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">orWhereExists</span><span class="p">(</span><span class="nx">callback</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">whereExists</span><span class="p">(</span><span class="nx">callback</span><span class="p">,</span> <span class="s1">&#39;or&#39;</span><span class="p">,</span> <span class="s1">&#39;NotExists&#39;</span><span class="p">);</span>
<span class="p">},</span></pre></div> </td> </tr> <tr id="section-49"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-49">&#182;</a> </div> <p>Adds a <code>where in</code> clause to the query.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">whereIn</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">column</span><span class="p">,</span> <span class="nx">values</span><span class="p">,</span> <span class="nx">bool</span><span class="p">,</span> <span class="nx">condition</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">bool</span> <span class="o">||</span> <span class="p">(</span><span class="nx">bool</span> <span class="o">=</span> <span class="s1">&#39;and&#39;</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">type</span> <span class="o">=</span> <span class="nx">condition</span> <span class="o">?</span> <span class="s1">&#39;NotIn&#39;</span> <span class="o">:</span> <span class="s1">&#39;In&#39;</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">_</span><span class="p">.</span><span class="nx">isFunction</span><span class="p">(</span><span class="nx">values</span><span class="p">))</span> <span class="p">{</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">_whereInSub</span><span class="p">(</span><span class="nx">column</span><span class="p">,</span> <span class="nx">values</span><span class="p">,</span> <span class="nx">bool</span><span class="p">,</span> <span class="s1">&#39;not&#39;</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">this</span><span class="p">.</span><span class="nx">wheres</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span>
<span class="nx">type</span><span class="o">:</span> <span class="nx">type</span><span class="p">,</span>
<span class="nx">type</span><span class="o">:</span> <span class="p">(</span><span class="nx">condition</span> <span class="o">||</span> <span class="s1">&#39;In&#39;</span><span class="p">),</span>
<span class="nx">column</span><span class="o">:</span> <span class="nx">column</span><span class="p">,</span>
<span class="nx">values</span><span class="o">:</span> <span class="nx">values</span><span class="p">,</span>
<span class="nx">bool</span><span class="o">:</span> <span class="nx">bool</span>
@ -362,18 +359,18 @@ where key = value. </p> </td> <td class="code">
<span class="p">},</span></pre></div> </td> </tr> <tr id="section-50"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-50">&#182;</a> </div> <p>Adds a <code>or where in</code> clause to the query.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">orWhereIn</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">column</span><span class="p">,</span> <span class="nx">values</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">whereIn</span><span class="p">(</span><span class="nx">column</span><span class="p">,</span> <span class="nx">values</span><span class="p">,</span> <span class="s1">&#39;or&#39;</span><span class="p">);</span>
<span class="p">},</span></pre></div> </td> </tr> <tr id="section-51"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-51">&#182;</a> </div> <p>Adds a <code>where not in</code> clause to the query.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">whereNotIn</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">column</span><span class="p">,</span> <span class="nx">values</span><span class="p">,</span> <span class="nx">bool</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">whereIn</span><span class="p">(</span><span class="nx">column</span><span class="p">,</span> <span class="nx">values</span><span class="p">,</span> <span class="nx">bool</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">whereIn</span><span class="p">(</span><span class="nx">column</span><span class="p">,</span> <span class="nx">values</span><span class="p">,</span> <span class="s1">&#39;and&#39;</span><span class="p">,</span> <span class="s1">&#39;NotIn&#39;</span><span class="p">);</span>
<span class="p">},</span></pre></div> </td> </tr> <tr id="section-52"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-52">&#182;</a> </div> <p>Adds a <code>or where not in</code> clause to the query.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">orWhereNotIn</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">column</span><span class="p">,</span> <span class="nx">values</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">whereNotIn</span><span class="p">(</span><span class="nx">column</span><span class="p">,</span> <span class="nx">values</span><span class="p">,</span> <span class="s1">&#39;or&#39;</span><span class="p">);</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">whereIn</span><span class="p">(</span><span class="nx">column</span><span class="p">,</span> <span class="nx">values</span><span class="p">,</span> <span class="s1">&#39;or&#39;</span><span class="p">,</span> <span class="s1">&#39;NotIn&#39;</span><span class="p">);</span>
<span class="p">},</span></pre></div> </td> </tr> <tr id="section-53"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-53">&#182;</a> </div> <p>Adds a <code>where null</code> clause to the query.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">whereNull</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">column</span><span class="p">,</span> <span class="nx">bool</span><span class="p">,</span> <span class="nx">type</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">wheres</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span><span class="nx">type</span><span class="o">:</span> <span class="p">(</span><span class="nx">type</span> <span class="o">||</span> <span class="s1">&#39;Null&#39;</span><span class="p">),</span> <span class="nx">column</span><span class="o">:</span> <span class="nx">column</span><span class="p">,</span> <span class="nx">bool</span><span class="o">:</span> <span class="p">(</span><span class="nx">bool</span> <span class="o">||</span> <span class="s1">&#39;and&#39;</span><span class="p">)});</span>
<span class="k">return</span> <span class="k">this</span><span class="p">;</span>
<span class="p">},</span></pre></div> </td> </tr> <tr id="section-54"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-54">&#182;</a> </div> <p>Adds a <code>or where null</code> clause to the query.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">orWhereNull</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">column</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">whereNull</span><span class="p">(</span><span class="nx">column</span><span class="p">,</span> <span class="s1">&#39;or&#39;</span><span class="p">);</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">whereNull</span><span class="p">(</span><span class="nx">column</span><span class="p">,</span> <span class="s1">&#39;or&#39;</span><span class="p">,</span> <span class="s1">&#39;Null&#39;</span><span class="p">);</span>
<span class="p">},</span></pre></div> </td> </tr> <tr id="section-55"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-55">&#182;</a> </div> <p>Adds a <code>where not null</code> clause to the query.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">whereNotNull</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">column</span><span class="p">,</span> <span class="nx">bool</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">whereNull</span><span class="p">(</span><span class="nx">column</span><span class="p">,</span> <span class="p">(</span><span class="nx">bool</span> <span class="o">||</span> <span class="s1">&#39;and&#39;</span><span class="p">),</span> <span class="s1">&#39;NotNull&#39;</span><span class="p">);</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">whereNull</span><span class="p">(</span><span class="nx">column</span><span class="p">,</span> <span class="s1">&#39;and&#39;</span><span class="p">,</span> <span class="s1">&#39;NotNull&#39;</span><span class="p">);</span>
<span class="p">},</span></pre></div> </td> </tr> <tr id="section-56"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-56">&#182;</a> </div> <p>Adds a <code>or where not null</code> clause to the query.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">orWhereNotNull</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">column</span><span class="p">)</span> <span class="p">{</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">whereNotNull</span><span class="p">(</span><span class="nx">column</span><span class="p">,</span> <span class="s1">&#39;or&#39;</span><span class="p">);</span>
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">whereNotNull</span><span class="p">(</span><span class="nx">column</span><span class="p">,</span> <span class="s1">&#39;or&#39;</span><span class="p">,</span> <span class="s1">&#39;NotNull&#39;</span><span class="p">);</span>
<span class="p">},</span></pre></div> </td> </tr> <tr id="section-57"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-57">&#182;</a> </div> <p>Adds a <code>where between</code> clause to the query.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">whereBetween</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">column</span><span class="p">,</span> <span class="nx">values</span><span class="p">,</span> <span class="nx">bool</span><span class="p">)</span> <span class="p">{</span>
<span class="k">this</span><span class="p">.</span><span class="nx">wheres</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span><span class="nx">column</span><span class="o">:</span> <span class="nx">column</span><span class="p">,</span> <span class="nx">type</span><span class="o">:</span> <span class="s1">&#39;between&#39;</span><span class="p">,</span> <span class="nx">bool</span><span class="o">:</span> <span class="nx">bool</span><span class="p">});</span>
<span class="k">return</span> <span class="k">this</span><span class="p">;</span>

21
knex.js
View File

@ -473,30 +473,27 @@
// Adds an `or where exists` clause to the query.
orWhereExists: function(callback, condition) {
var type = condition ? 'NotExists' : 'Exists';
return this.whereExists(callback, 'or', 'NotExists');
return this.whereExists(callback, 'or');
},
// Adds a `where not exists` clause to the query.
whereNotExists: function(callback, bool) {
bool || (bool = 'and');
return this.whereExists(callback, bool, true);
return this.whereExists(callback, 'and', 'NotExists');
},
// Adds a `or where not exists` clause to the query.
orWhereNotExists: function(callback) {
return this.orWhereExists(callback, true);
return this.whereExists(callback, 'or', 'NotExists');
},
// Adds a `where in` clause to the query.
whereIn: function(column, values, bool, condition) {
bool || (bool = 'and');
var type = condition ? 'NotIn' : 'In';
if (_.isFunction(values)) {
return this._whereInSub(column, values, bool, 'not');
}
this.wheres.push({
type: type,
type: (condition || 'In'),
column: column,
values: values,
bool: bool
@ -512,12 +509,12 @@
// Adds a `where not in` clause to the query.
whereNotIn: function(column, values, bool) {
return this.whereIn(column, values, bool, true);
return this.whereIn(column, values, 'and', 'NotIn');
},
// Adds a `or where not in` clause to the query.
orWhereNotIn: function(column, values) {
return this.whereNotIn(column, values, 'or');
return this.whereIn(column, values, 'or', 'NotIn');
},
// Adds a `where null` clause to the query.
@ -528,17 +525,17 @@
// Adds a `or where null` clause to the query.
orWhereNull: function(column) {
return this.whereNull(column, 'or');
return this.whereNull(column, 'or', 'Null');
},
// Adds a `where not null` clause to the query.
whereNotNull: function(column, bool) {
return this.whereNull(column, (bool || 'and'), 'NotNull');
return this.whereNull(column, 'and', 'NotNull');
},
// Adds a `or where not null` clause to the query.
orWhereNotNull: function(column) {
return this.whereNotNull(column, 'or');
return this.whereNotNull(column, 'or', 'NotNull');
},
// Adds a `where between` clause to the query.