Re: actualized SQL/PSM patch - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: actualized SQL/PSM patch
Date
Msg-id 162867790804010323i187dde68ja46c34d91219c778@mail.gmail.com
Whole thread Raw
In response to Re: actualized SQL/PSM patch  (Stephen Frost <sfrost@snowman.net>)
Responses Re: actualized SQL/PSM patch
List pgsql-hackers
On 31/03/2008, Stephen Frost <sfrost@snowman.net> wrote:
> Pavel,
>
>   Honestly, I havn't dug into the real patch all that deeply but I did
>   notice a few minor issues which I've listed out below.  The bigger
>   question I have for this patch, however, is just how close is it to
>   PL/pgSQL?  If the differences are minor and far between would it be
>   more reasonable to just make PL/pgSQL play double-duty and have a flag
>   somewhere to indicate when it should be in 'PL/pgPSM' mode?
>
>   Thanks.

Hello,

thank you for time. I thing so plpgsql is too much different language
than plpgpsm  - mainly there is different concept of catching errors,
cursor's declaration and operation and different statements. My tip:

gram.y - conformance 10%
pl_exec.c - conf.         40%
pl_func.c - conf           80%  (diff in dump functions)
scan.l - conf.              99%

I can't to say so plpgpsm is an dialect of plpgsql. Minimally there
are different parser. I am sure so supported functions can be shared,
but it's mean really dramatic changes in plpgsql code.  I belive so
separated languages will be more maintainable.

>
>  #1: INSTALL.plpgpsm starts out saying:
>     "Installation of PL/pgSQL"
>         I'm guessing you just missed changing it.  Also in there:
>         "For installation any PL language you need superuser's rights."
>         should probably read:
>         For installation of any PL language you need superuser rights.
>         Or just:
>         To install any PL language you need to be the database superuser.
>
>  #2: pl_comp.c has a similar issue in its comments:
>     pl_comp.c as the top says "Compiler part of the PL/pgSQL" ..
>     plpgpsm_compile  Make an execution tree for a PL/pgSQL function.
>         Should read 'PL/pgPSM' there.
>
>  #3: pl_comp.c uses C++ style comments for something which I'm guessing
>     you didn't actually intend to even be in the patch:
>         //elog(ERROR, "zatim konec");
>         in do_compile().
>
>  #4: Again in pl_comp.c there are C++ style comments, this time for
>     variables which can probably just be removed:
>         //    PLpgPSM_nsitem  *nse;
>         //    char *cp[1];
>
>  #5: In pl_exec.c, exec_stmt_open, again you have C++ style comments:
>     // ToDo: Holdable cursors
>
>  #6: In the "expected.out", for the 'fx()' function, the CONTEXT says:
>     CONTEXT:  compile of PL/pgSQL function "fx()" near line 2
>         Even though it says "LANGUAGE plpgpsm", which seems rather odd.
>
>  #7: gram.y also has in the comments "Parser for the PL/pgSQL" ..
>
>  #8: plpgpsm_compile_error_callback() passes "PL/pgSQL" to errcontext(),
>     probably the cause of #7 and fixing it and regenerating the expected
>         output would probably work.
>
>  #9: plerrcodes.h also has "PL/pgSQL error codes" in the comments at the
>     top.
>
>  #10: ditto for pl_exec.c "Executor for the PL/pgSQL" ..
>
>  #11: more error-strings being passed with "PL/pgSQL" in it in pl_exec.c:
>          in exec_stmt_prepare() and exec_prepare_plan(), exec_stmt_execute():
>          eg:
>      cannot COPY to/from client in PL/pgSQL
>          cannot begin/end transactions in PL/pgSQL
>          cannot manipulate cursors directly in PL/pgSQL
>
>  #12: Also in the comments for plpgpsm_estate_setup are references to
>      PL/pgSQL.
>
>  #13: pl_funcs.c also says "Misc functions for the PL/pgSQL" ..
>
>  #14: plpgpsqm_dumptree outputs:
>      Execution tree of successfully compiled PL/pgSQL function
>          Should be updated for PL/pgPSM
>
>  #15: Header comment in pl_handler.c also says PL/pgSQL
>
>  #16: Function-definition comment for plpgpsqm_call_handler also says
>      PL/pgSQL
>          ditto for plpgpsm_validator
>
>  #17: Header comment in plpgpsm.h say PL/pgSQL, other comments later as
>      well, such as for the PLpgPSM_plugin struct
>
>  #18: Also for the header comment in scan.l
>

I'll correct it, thank you very much

Pavel
>                 Enjoy,
>



>
>                         Stephen
>
> -----BEGIN PGP SIGNATURE-----
>  Version: GnuPG v1.4.6 (GNU/Linux)
>
>  iD8DBQFH8UGarzgMPqB3kigRAv2uAJ0RR2WA37Qx14Ty9mx3pzd6hbazqACfZaG1
>  NRxCF2vC9+BbVlSHM9swc1A=
>  =fFpD
>  -----END PGP SIGNATURE-----
>
>


pgsql-hackers by date:

Previous
From: Simon Riggs
Date:
Subject: Re: [GENERAL] ANALYZE getting dead tuple count hopelessly wrong
Next
From: Michael Paesold
Date:
Subject: Re: How embarrassing: optimization of a one-shot query doesn't work