<spanclass="s2">"use strict"</span><spanclass="p">;</span></div></div></div><divclass="segment"><divclass="comments"><divclass="wrapper"><p>Some functions which are common to both the
<code>Builder</code> and <code>SchemaBuilder</code> classes.</p></div></div><divclass="code"><divclass="wrapper"><spanclass="nx">define</span><spanclass="p">(</span><spanclass="kd">function</span><spanclass="p">(</span><spanclass="nx">require</span><spanclass="p">,</span><spanclass="nx">exports</span><spanclass="p">)</span><spanclass="p">{</span>
<spanclass="kd">var</span><spanclass="nx">push</span><spanclass="o">=</span><spanclass="p">[].</span><spanclass="nx">push</span><spanclass="p">;</span></div></div></div><divclass="segment"><divclass="comments"><divclass="wrapper"><p>Methods common to both the <code>Grammar</code> and <code>SchemaGrammar</code> interfaces,
used to generate the sql in one form or another.</p></div></div><divclass="code"><divclass="wrapper"><spanclass="nx">exports</span><spanclass="p">.</span><spanclass="nx">Common</span><spanclass="o">=</span><spanclass="p">{</span></div></div></div><divclass="segment"><divclass="comments"><divclass="wrapper"><p>Creates a new instance of the current <code>Builder</code> or <code>SchemaBuilder</code>,
with the correct current <code>knex</code> instance.</p></div></div><divclass="code"><divclass="wrapper"><spanclass="nx">instance</span><spanclass="o">:</span><spanclass="kd">function</span><spanclass="p">()</span><spanclass="p">{</span>
<spanclass="p">},</span></div></div></div><divclass="segment"><divclass="comments"><divclass="wrapper"><p>Sets the flag, so that when this object is passed into the
client adapter, we know to <code>log</code> the query.</p></div></div><divclass="code"><divclass="wrapper"><spanclass="nx">debug</span><spanclass="o">:</span><spanclass="kd">function</span><spanclass="p">()</span><spanclass="p">{</span>
<spanclass="p">},</span></div></div></div><divclass="segment"><divclass="comments"><divclass="wrapper"><p>Sets <code>options</code> which are passed along to the database client.</p></div></div><divclass="code"><divclass="wrapper"><spanclass="nx">options</span><spanclass="o">:</span><spanclass="kd">function</span><spanclass="p">(</span><spanclass="nx">opts</span><spanclass="p">)</span><spanclass="p">{</span>
<spanclass="p">},</span></div></div></div><divclass="segment"><divclass="comments"><divclass="wrapper"><p>For those who dislike promise interfaces.
Multiple calls to <code>exec</code> will resolve with the same value
if called more than once. Any unhandled errors will be thrown
after the last block.</p></div></div><divclass="code"><divclass="wrapper"><spanclass="nx">exec</span><spanclass="o">:</span><spanclass="kd">function</span><spanclass="p">(</span><spanclass="nx">callback</span><spanclass="p">)</span><spanclass="p">{</span>
<spanclass="p">},</span></div></div></div><divclass="segment"><divclass="comments"><divclass="wrapper"><p>The promise interface for the query builder.</p></div></div><divclass="code"><divclass="wrapper"><spanclass="nx">then</span><spanclass="o">:</span><spanclass="kd">function</span><spanclass="p">(</span><spanclass="nx">onFulfilled</span><spanclass="p">,</span><spanclass="nx">onRejected</span><spanclass="p">)</span><spanclass="p">{</span>
<spanclass="p">},</span></div></div></div><divclass="segment"><divclass="comments"><divclass="wrapper"><p>Passthrough to the convenient <code>tap</code> mechanism of when.js</p></div></div><divclass="code"><divclass="wrapper"><spanclass="nx">tap</span><spanclass="o">:</span><spanclass="kd">function</span><spanclass="p">(</span><spanclass="nx">handler</span><spanclass="p">)</span><spanclass="p">{</span>
<spanclass="p">},</span></div></div></div><divclass="segment"><divclass="comments"><divclass="wrapper"><p>Returns an array of query strings filled out with the
correct values based on bindings, etc. Useful for debugging.</p></div></div><divclass="code"><divclass="wrapper"><spanclass="nx">toString</span><spanclass="o">:</span><spanclass="kd">function</span><spanclass="p">()</span><spanclass="p">{</span></div></div></div><divclass="segment"><divclass="comments"><divclass="wrapper"><p>TODO: get rid of the need to clone the object here...</p></div></div><divclass="code"><divclass="wrapper"><spanclass="kd">var</span><spanclass="nx">builder</span><spanclass="o">=</span><spanclass="k">this</span><spanclass="p">,</span><spanclass="nx">data</span><spanclass="o">=</span><spanclass="k">this</span><spanclass="p">.</span><spanclass="nx">clone</span><spanclass="p">().</span><spanclass="nx">toSql</span><spanclass="p">();</span>
<spanclass="p">},</span></div></div></div><divclass="segment"><divclass="comments"><divclass="wrapper"><p>Converts the current statement to a sql string</p></div></div><divclass="code"><divclass="wrapper"><spanclass="nx">toSql</span><spanclass="o">:</span><spanclass="kd">function</span><spanclass="p">()</span><spanclass="p">{</span>
<spanclass="p">},</span></div></div></div><divclass="segment"><divclass="comments"><divclass="wrapper"><p>Explicitly sets the connection.</p></div></div><divclass="code"><divclass="wrapper"><spanclass="nx">connection</span><spanclass="o">:</span><spanclass="kd">function</span><spanclass="p">(</span><spanclass="nx">connection</span><spanclass="p">)</span><spanclass="p">{</span>
<spanclass="p">},</span></div></div></div><divclass="segment"><divclass="comments"><divclass="wrapper"><p>The connection the current query is being run on, optionally
specified by the <code>connection</code> method.</p></div></div><divclass="code"><divclass="wrapper"><spanclass="nx">usingConnection</span><spanclass="o">:</span><spanclass="kc">false</span><spanclass="p">,</span></div></div></div><divclass="segment"><divclass="comments"><divclass="wrapper"><p>Default handler for a response is to pass it along.</p></div></div><divclass="code"><divclass="wrapper"><spanclass="nx">handleResponse</span><spanclass="o">:</span><spanclass="kd">function</span><spanclass="p">(</span><spanclass="nx">resp</span><spanclass="p">)</span><spanclass="p">{</span>
<spanclass="p">},</span></div></div></div><divclass="segment"><divclass="comments"><divclass="wrapper"><p>Sets the "type" of the current query, so we can potentially place
<code>select</code>, <code>update</code>, <code>del</code>, etc. anywhere in the query statement
and have it come out fine.</p></div></div><divclass="code"><divclass="wrapper"><spanclass="nx">_setType</span><spanclass="o">:</span><spanclass="kd">function</span><spanclass="p">(</span><spanclass="nx">type</span><spanclass="p">)</span><spanclass="p">{</span>
<spanclass="k">throw</span><spanclass="k">new</span><spanclass="nb">Error</span><spanclass="p">(</span><spanclass="s1">'The query type has already been set to '</span><spanclass="o">+</span><spanclass="k">this</span><spanclass="p">.</span><spanclass="nx">type</span><spanclass="p">);</span>
<spanclass="p">},</span></div></div></div><divclass="segment"><divclass="comments"><divclass="wrapper"><p>Returns all bindings excluding the <code>Knex.Raw</code> types.</p></div></div><divclass="code"><divclass="wrapper"><spanclass="nx">getBindings</span><spanclass="o">:</span><spanclass="kd">function</span><spanclass="p">()</span><spanclass="p">{</span>
<spanclass="p">},</span></div></div></div><divclass="segment"><divclass="comments"><divclass="wrapper"><p>Sets the current Builder connection to that of the
the currently running transaction</p></div></div><divclass="code"><divclass="wrapper"><spanclass="nx">transacting</span><spanclass="o">:</span><spanclass="kd">function</span><spanclass="p">(</span><spanclass="nx">t</span><spanclass="p">)</span><spanclass="p">{</span>
<spanclass="k">if</span><spanclass="p">(</span><spanclass="k">this</span><spanclass="p">.</span><spanclass="nx">transaction</span><spanclass="p">)</span><spanclass="k">throw</span><spanclass="k">new</span><spanclass="nb">Error</span><spanclass="p">(</span><spanclass="s1">'A transaction has already been set for the current query chain'</span><spanclass="p">);</span>