title: slick & scala : What are TableQueries?
body: <p>I am a bit disappointed with slick &amp; its TableQueries : the model of an application can be a "class Persons(tag: Tag) extends Table[Person] for example (where Person is a case class with some fields like name, age,address...).
  The weird point is the "val persons = TableQuery[Persons]" contains all the records.</p>
  
  <p>To have for example all the adults, we can use:</p>
  
  <pre><code>adults = persons.filter(p =&gt; p.age &gt;= 18).list()
  </code></pre>
  
  <p>Is the content of the database loaded in the variable persons?
  Is there on the contrary a mechanism that allows to evaluate not "persons" but "adults"?(a sort of lazy variable)?
  Can we say something like 'at any time, "persons" contains the entire database'?</p>
  
  <p>Are there good practices, some important ideas that can help the developer?</p>
  
  <p>thanks.</p>