Thanks for your reply. I would like to know how the register allocation
decision is made and the part of the code which does it . can you please
help me find that? Thanks
On 18 Sep 2014 20:20, "Richard Hipp" <d...@sqlite.org> wrote:

> On Thu, Sep 18, 2014 at 10:10 AM, Prakash Premkumar <
> prakash.p...@gmail.com>
> wrote:
>
> > Which function in the sqlite generates the Vdbe program for the given
> > query?
> >
> > Let's take an example of the join of two tables. Table A has n columns
> and
> > Table B has m columns, and the result has n+m columns.
> >
> > During the execution of the Vdbe program the values from these columns
> get
> > copied to the Mem struct randomly (when OP_Column opcode is formed) and
> > finally when the OP_ResultRow is executed, the Mem's are rearranged so
> that
> > the columns of each table are contiguous.
> >
> > How does sqlite know in which Mem the value of a column is stored and how
> > does it finally rearrange the Mems contiguously?
> > Can you point me to the portion of the source code which makes this
> > decision?
> >
> > Can you kindly explain me the concept?
> >
>
> SQLite is a compiler.  It transforms a high-level language (SQL) into
> machine code (or in this case VDBE code, which is very similar to machine
> code).   In this sense, SQLite is similar to GCC.  GCC translates C code
> into x86 assembly language.  SQLite translates SQL into VDBE assembly
> language.  The source and target languages are different, but the
> fundamental techniques are the same.
>
> When you ask "how does sqlite know which Mem the value of a column is
> stored?" that is the same as asking "how does gcc know which processor
> registers the value of a variable is stored?".
>
> I recommend that you first study up on compiler construction.  After you
> understand how compilers work, SQLite will likely make a lot more sense to
> you.
>
> --
> D. Richard Hipp
> d...@sqlite.org
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to