interpret table names in context of mountPath and basePath (Fixes #198)

OK, thanks. This is still a bit magical to me although it’s starting to sink in. It’s a drag that the caller has to worry about this, but I think I now understand why that’s the case. This abstraction is not quite right still, or at least it doesn’t work well on the JVM.

On Aug 17, 2014, at 18:06, John A. De Goes <notifications@github.com> wrote:

> In src/main/scala/slamdata/engine/backend.scala:
> 
> >        )
> >      }.join
> >    }
> > +
> > +  def interpretPaths(query: SelectStmt, mountPath: Path, basePath: Path): PathError \/ SelectStmt = {
> > +    type E[A] = EitherT[Free.Trampoline, PathError, A]
> > +    def fail[A](err: PathError): E[A] = EitherT.left(err.pure[Free.Trampoline])
> > +    def emit[A](a: A): E[A] = EitherT.right(a.pure[Free.Trampoline])
> > +
> > +    query.mapUpM[E](
> 
> This is correct, nice work! The actual "suspension" occurs in mapUpM which is calling flatMap on Free.Trampoline.
> 
> —
> Reply to this email directly or view it on GitHub.
>