Skip to content

Commit

Permalink
Update fixed
Browse files Browse the repository at this point in the history
  • Loading branch information
Francis Murillo committed Mar 26, 2016
1 parent bceef09 commit 3ed4ff4
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 56 deletions.
8 changes: 4 additions & 4 deletions _posts/2016-01-15-Setting Up org-mode And jekyll.html
Original file line number Diff line number Diff line change
Expand Up @@ -41,15 +41,15 @@ <h3 id="orgheadline2">org backward compatibility</h3>
The builtin <code>org</code> version that came with my Emacs was 7, the external <code>org</code> package that can be downloaded was 8; the innocent upgrade made some compatibility issues with my configuration.
</p>

<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table>


<colgroup>
<col class="org-left" />
<col class="org-left">

<col class="org-left" />
<col class="org-left">

<col class="org-left" />
<col class="org-left">
</colgroup>
<thead>
<tr>
Expand Down
104 changes: 52 additions & 52 deletions _posts/2016-03-25-A DSL For SQL.html
Original file line number Diff line number Diff line change
Expand Up @@ -61,15 +61,15 @@ <h2 id="orgheadline3">Snippets</h2>
<ul class="org-ul">
<li>person
<ul class="org-ul">
<li>person<sub>id</sub></li>
<li>first<sub>name</sub></li>
<li>last<sub>name</sub></li>
<li>birth<sub>date</sub></li>
<li>person_id</li>
<li>first_name</li>
<li>last_name</li>
<li>birth_date</li>
</ul></li>
<li>relationship
<ul class="org-ul">
<li>person<sub>id</sub></li>
<li>related<sub>person</sub><sub>id</sub></li>
<li>person_id</li>
<li>related_person_id</li>
</ul></li>
</ul>

Expand All @@ -83,27 +83,27 @@ <h2 id="orgheadline3">Snippets</h2>

<div class="org-src-container">

<pre class="src src-python">birth_date = Field('birth_date') # Short constructor, positional
<pre class="src src-python"><span style="color: #9acd32;">birth_date</span> = Field(<span style="color: #ffa07a;">'birth_date'</span>) <span style="color: #cd853f;"># </span><span style="color: #cd853f;">Short constructor, positional</span>

person = Table.make( # Long constructor, keywords
name = 'person',
alias = 'p', # For later
<span style="color: #9acd32;">person</span> = Table.make( <span style="color: #cd853f;"># </span><span style="color: #cd853f;">Long constructor, keywords</span>
name = <span style="color: #ffa07a;">'person'</span>,
alias = <span style="color: #ffa07a;">'p'</span>, <span style="color: #cd853f;"># </span><span style="color: #cd853f;">For later</span>
fields = [
Field.make(
name = 'person_id'
name = <span style="color: #ffa07a;">'person_id'</span>
),
Field('last_name'),
Field('first_date'),
Field(<span style="color: #ffa07a;">'last_name'</span>),
Field(<span style="color: #ffa07a;">'first_date'</span>),
birth_date
]
)

relationship = Table(
name = 'person_relationship',
alias = 'pr',
<span style="color: #9acd32;">relationship</span> = Table(
name = <span style="color: #ffa07a;">'person_relationship'</span>,
alias = <span style="color: #ffa07a;">'pr'</span>,
fields = [
Field.make('person_id'),
Field.make('related_person_id')
Field.make(<span style="color: #ffa07a;">'person_id'</span>),
Field.make(<span style="color: #ffa07a;">'related_person_id'</span>)
]
)
</pre>
Expand All @@ -130,72 +130,72 @@ <h2 id="orgheadline3">Snippets</h2>

<div class="org-src-container">

<pre class="src src-python">print(Query.craft(person)) # Crafting from a normal table
# out &gt;&gt; select p.person_id, p.last_name, p.first_name, p.birth_date from person p
<pre class="src src-python"><span style="color: #20b2aa; font-weight: bold;">print</span>(Query.craft(person)) <span style="color: #cd853f;"># </span><span style="color: #cd853f;">Crafting from a normal table</span>
<span style="color: #cd853f;"># </span><span style="color: #cd853f;">out &gt;&gt; select p.person_id, p.last_name, p.first_name, p.birth_date from person p</span>

print(Query.craft(relationship)) # likewise
# out &gt;&gt; select pr.person_id, pr.related_person_id from person_relationship pr
<span style="color: #20b2aa; font-weight: bold;">print</span>(Query.craft(relationship)) <span style="color: #cd853f;"># </span><span style="color: #cd853f;">likewise</span>
<span style="color: #cd853f;"># </span><span style="color: #cd853f;">out &gt;&gt; select pr.person_id, pr.related_person_id from person_relationship pr</span>

all_person = Query.make(
name = 'everyone', # Name functions as an id
<span style="color: #9acd32;">all_person</span> = Query.make(
name = <span style="color: #ffa07a;">'everyone'</span>, <span style="color: #cd853f;"># </span><span style="color: #cd853f;">Name functions as an id</span>
tables = [
person
]
)

print(Query.craft(all_person)) # ditto
<span style="color: #20b2aa; font-weight: bold;">print</span>(Query.craft(all_person)) <span style="color: #cd853f;"># </span><span style="color: #cd853f;">ditto</span>

people_relationships = Query.make(
name = 'everyelse',
<span style="color: #9acd32;">people_relationships</span> = Query.make(
name = <span style="color: #ffa07a;">'everyelse'</span>,
tables = [
person,
relationship
]
)

print(Query.craft(people_relationships)) # Outer join
# out &gt;&gt;
# select
# p.person_id, p.last_name, p.first_name, p.birth_date,
# pr.person_id, pr.related_person_id
# from
# person p, person_relationship pr
<span style="color: #20b2aa; font-weight: bold;">print</span>(Query.craft(people_relationships)) <span style="color: #cd853f;"># </span><span style="color: #cd853f;">Outer join</span>
<span style="color: #cd853f;"># </span><span style="color: #cd853f;">out &gt;&gt;</span>
<span style="color: #cd853f;"># </span><span style="color: #cd853f;">select</span>
<span style="color: #cd853f;"># </span><span style="color: #cd853f;">p.person_id, p.last_name, p.first_name, p.birth_date,</span>
<span style="color: #cd853f;"># </span><span style="color: #cd853f;">pr.person_id, pr.related_person_id</span>
<span style="color: #cd853f;"># </span><span style="color: #cd853f;">from</span>
<span style="color: #cd853f;"># </span><span style="color: #cd853f;">person p, person_relationship pr</span>

# Astute readers will realize that there are two person_ids here which will fail
<span style="color: #cd853f;"># </span><span style="color: #cd853f;">Astute readers will realize that there are two person_ids here which will fail</span>

person_relations = Link.make( # A way to refactor ON clauses
name = 'p_and_pr',
source = Table.getField('person_id', person), # Still experimental
target = Table.getField('person_id', people_relationships)
<span style="color: #9acd32;">person_relations</span> = Link.make( <span style="color: #cd853f;"># </span><span style="color: #cd853f;">A way to refactor ON clauses</span>
name = <span style="color: #ffa07a;">'p_and_pr'</span>,
source = Table.getField(<span style="color: #ffa07a;">'person_id'</span>, person), <span style="color: #cd853f;"># </span><span style="color: #cd853f;">Still experimental</span>
target = Table.getField(<span style="color: #ffa07a;">'person_id'</span>, people_relationships)
)

relations_person = Link.make(
name = 'pr_and_p',
<span style="color: #9acd32;">relations_person</span> = Link.make(
name = <span style="color: #ffa07a;">'pr_and_p'</span>,
source = people_relationships,
target = person
)

everyone = Query.make(
name = 'everyone',
<span style="color: #9acd32;">everyone</span> = Query.make(
name = <span style="color: #ffa07a;">'everyone'</span>,
table = [
person,
relationship,
Table.setAlias('np', person)
Table.setAlias(<span style="color: #ffa07a;">'np'</span>, person)
],
link = [
person_relations,
relations_person
]
)

print(Query.craft(everyone))
# out &gt;&gt;
# select
# *
# from
# person p
# inner join person_relations pr on p.person_ id = pr.person_id
# inner join person np on np.person_id = pr.related_person_id
<span style="color: #20b2aa; font-weight: bold;">print</span>(Query.craft(everyone))
<span style="color: #cd853f;"># </span><span style="color: #cd853f;">out &gt;&gt;</span>
<span style="color: #cd853f;"># </span><span style="color: #cd853f;">select</span>
<span style="color: #cd853f;"># </span><span style="color: #cd853f;">*</span>
<span style="color: #cd853f;"># </span><span style="color: #cd853f;">from</span>
<span style="color: #cd853f;"># </span><span style="color: #cd853f;">person p</span>
<span style="color: #cd853f;"># </span><span style="color: #cd853f;">inner join person_relations pr on p.person_ id = pr.person_id</span>
<span style="color: #cd853f;"># </span><span style="color: #cd853f;">inner join person np on np.person_id = pr.related_person_id</span>
</pre>
</div>

Expand Down

0 comments on commit 3ed4ff4

Please sign in to comment.