In a similar vein to the recent "Strict mode for the ABL Compiler" thread (https://community.progress.com/community_groups/openedge_development/f/19/t/16733.aspx?pi20882=1#59978), we have received requests for enhancements to XREF.
The 11.6 Product Enhancements forum had a thread on XREF enhancements (https://community.progress.com/community_groups/products_enhancements/i/openedge_116_community_input/add_now_compiler_option_to_output_index_information_on_all_static_queries.aspx). The following requests were made in this thread:
1) Exposing SEARCH information for local temp-tables. There is a proposal in the thread to address this.
2) Expanding XREF "to cover other things that are local to a given program". What things are missing for local entities?
3) Providing an "explain plan" (bracketing information) on queries, to make it easier to identify potentially bad queries. I have been working on an initial proposal for this, but I don't want to hold up this discussion waiting on it.
I would appreciate your input on these topics, and would like to hear any other input you have for XREF enhancements.
Thanks,
Garry Hall.
OpenEdge Development
Progress Software
Rationalize procedure references
community.progress.com/.../rationalize_procedure_references_in_xref.aspx
Identify which DB table, not just the buffer name.
Actually, my real proposal would not to do an incremental change, but to dump and replace. I know that goes counter to the core PSC upward compatibility doctrine, but this was not a feature that was well thought out. There is no reason to have all of the same tags underneath every entry and have most of them go unused and no reason not to have tags which are actually meaningful ... like the DB table for a buffer and whether it is a buffer to a DB or TT table. There is just ***so*** much more information which is right there in the parse tree that one could dump out and use. Or, maybe you could dead end XREF and actually do something to dump the parse tree instead???
How about COMPILE LIST as well?
Having the entire parse tree, and in particular all the symbols (variables, procedures, functions, buffers, strings, etc.) would be quite helpful for searching where a db table is referenced, impact analysis, and finding un-used code paths.
What would be all the better is if the provided information was in a format that could easily be fed into a database for searching and reporting.
I'd suggest looking into John Green's "Programmer's Analyst" - his tools feeds proparse output into a searchable db.
Rationalize procedure references
community.progress.com/.../rationalize_procedure_references_in_xref.aspx
Identify which DB table, not just the buffer name.
Actually, my real proposal would not to do an incremental change, but to dump and replace. I know that goes counter to the core PSC upward compatibility doctrine, but this was not a feature that was well thought out. There is no reason to have all of the same tags underneath every entry and have most of them go unused and no reason not to have tags which are actually meaningful ... like the DB table for a buffer and whether it is a buffer to a DB or TT table. There is just ***so*** much more information which is right there in the parse tree that one could dump out and use. Or, maybe you could dead end XREF and actually do something to dump the parse tree instead???
How about COMPILE LIST as well?
Flag this post as spam/abuse.
1) It would definitely be nice to get insight over the bracketing information. For instance, the selected index may look like a good index, but still bracket too wide (e.g. only the first component instead of the first three).
2) Indicate when the lock state of a record changes, what it changes to and why.
Examples:
REPEAT: PROMPT-FOR Customer.CustNum. FIND Customer EXCLUSIVE-LOCK USING CustNum. DISPLAY Customer.Name. UPDATE CreditLimit. FIND CURRENT-CUSTOMER NO-LOCK. FOR EACH Order OF Customer: DISPLAY Order.Total - Order.Paid. END. END.
DO TRANSACTION: FIND CURRENT Invoice EXCLUSIVE-LOCK. UPDATE Invoice.Terms. END.
PROMPT-FOR Item.ItemNum. FIND Item USING ItemNum. DO TRANSACTION: UPDATE OnHand. FIND CURRENT Item NO-LOCK. DISPLAY Item.OnHand Item.BackOrder Item.OnOrder. END.
@Tim: Of course, Analyst does a wee bit more than databasing the parse tree, but yes, that is the obvious goal. I would think dumping the parse tree to XML would be an almost trivial task.
@Mike: The issue with Proparse is its support for syntax past 10.2B. Looked at your mail lately?
@Tim: Of course, Analyst does a wee bit more than databasing the parse tree, but yes, that is the obvious goal. I would think dumping the parse tree to XML would be an almost trivial task.
@Mike: The issue with Proparse is its support for syntax past 10.2B. Looked at your mail lately?
Flag this post as spam/abuse.
In a similar vein to the recent "Strict mode for the ABL Compiler" thread (https://community.progress.com/community_groups/openedge_development/f/19/t/16733.aspx?pi20882=1#59978),
we have received requests for enhancements to XREF.
The 11.6 Product Enhancements forum had a thread on XREF enhancements (https://community.progress.com/community_groups/products_enhancements/i/openedge_116_community_input/add_now_compiler_option_to_output_index_information_on_all_static_queries.aspx).
The following requests were made in this thread:
1) Exposing SEARCH information for local temp-tables. There is a proposal in the thread to address this.
2) Expanding XREF "to cover other things that are local to a given program". What things are missing for local entities?
3) Providing an "explain plan" (bracketing information) on queries, to make it easier to identify potentially bad queries. I have been working on an initial proposal for this, but I don't want to hold up this discussion waiting on it.
I would appreciate your input on these topics, and would like to hear any other input you have for XREF enhancements.
Thanks,
Garry Hall.
OpenEdge Development
Progress Software
Flag this post as spam/abuse.
While the output is very bulky, especially the XML one, I'm not inclined to suppress any output since I may not process the output file at the same time that I compile it. It is easy to skip over things and deceptive if something is not there and one doesn't know to not expect it.
For those not (yet) on the 11.6 ESAP, item 1 from my original post (SEARCH information for local temp-tables) is now available in the new 11.6 ESAP. Please feel free to try it out.
There is no commitment to address the other suggestions from this thread in 11.6, but I appreciate the dialog.
in 1998, I asked my tech support, (at the time techsup was regional, so I contacted Mexico office) if there would be a listing or something about database plan, and got no for an answer..
Hopefully we can get an explain plan/bracketing information in 11.7 :)