What type of Compiler to SQL? Memory-Image (Load-and-Go) Format?
Hi team,
I am a newbie to the postgres.
When I am studying the compiler,the text book tell me there is there type of compiler.
1. Assembly Language Format
2. Relocatable Binary Format
3. Memory-Image (Load-and-Go) Format
I check the postgres's sql compiler, and it's achieved by lex & yacc.
So What type of Compiler to SQL? Is Memory-Image (Load-and-Go) Format ?
Thanks in advance!
Yours,
WenYi
On Fri, May 5, 2023 at 01:00:37AM +0000, Wen Yi wrote:
Hi team,
I am a newbie to the postgres.
When I am studying the compiler,the text book tell me there is there type of
compiler.1. Assembly Language Format
2. Relocatable Binary Format
3. Memory-Image (Load-and-Go) FormatI check the postgres's sql compiler, and it's achieved by lex & yacc.
So What type of Compiler to SQL? Is Memory-Image (Load-and-Go) Format ?
Lex and yacc load command-specific structures, or a Query structure for
SELECT, INSERT, UPDATE, DELETE, MERGE.
The Query structure is converted into a Plan which is executed by the
executor. It is not compiled into assembly language. See this:
https://www.postgresql.org/developer/backend/
A
--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com
Embrace your flaws. They make you human, rather than perfect,
which you will never be.
On Thu, May 4, 2023 at 09:16:20PM -0400, Bruce Momjian wrote:
Lex and yacc load command-specific structures, or a Query structure for
SELECT, INSERT, UPDATE, DELETE, MERGE.The Query structure is converted into a Plan which is executed by the
executor. It is not compiled into assembly language. See this:
Oh, this might help too:
https://momjian.us/main/writings/pgsql/internalpics.pdf
--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com
Embrace your flaws. They make you human, rather than perfect,
which you will never be.
On Thu, May 4, 2023 at 6:00 PM Wen Yi <chuxuec@outlook.com> wrote:
Hi team,
I am a newbie to the postgres.
When I am studying the compiler,the text book tell me there is there type
of compiler.1. Assembly Language Format
2. Relocatable Binary Format
3. Memory-Image (Load-and-Go) Format
IIUC (I haven't formally studied compilers), none of the above, or, rather,
not applicable.
I can conjure up an analogy that says the assembly language artifact has a
similar relationship to the operating system kernel as the compiled plan
has to the database executor.
David J.
On May 4, 2023, at 18:00, Wen Yi <chuxuec@outlook.com> wrote:
Hi team,
I am a newbie to the postgres.
When I am studying the compiler,the text book tell me there is there type of compiler.
• Assembly Language Format
• Relocatable Binary Format
• Memory-Image (Load-and-Go) Format
I check the postgres's sql compiler, and it's achieved by lex & yacc.
So What type of Compiler to SQL? Is Memory-Image (Load-and-Go) Format ?
Hi,
Those aren't really "types of compilers." They are different binary output formats that a compiler can generate.
PostgreSQL does not have an "SQL compiler" as such. (It does have Just-in-Time compilation for some operations, but that's almost certainly not what you are looking for.) It's an interpreter, in that it transforms the input language to an internal representation and then uses that for its execution, rather than reducing it all the way to machine language.