Re: Fwd: PATCH: Format SQL (external tool) - Mailing list pgadmin-hackers
From | J.F. Oster |
---|---|
Subject | Re: Fwd: PATCH: Format SQL (external tool) |
Date | |
Msg-id | 1601799969.20150518200142@mail.ru Whole thread Raw |
In response to | Re: Fwd: PATCH: Format SQL (external tool) (Akshay Joshi <akshay.joshi@enterprisedb.com>) |
Responses |
Re: Fwd: PATCH: Format SQL (external tool)
(Akshay Joshi <akshay.joshi@enterprisedb.com>)
|
List | pgadmin-hackers |
<p>Hi Akshay,<p><br /><p>fsqlf.exe is the program to use; wx_fsqlf.exe is just a GUI wrapper.<p><br /><p>I've got the latestversion (<span class="rvts14">fsqlf.v0.03-292-gd0fd9bf.zip), and it really fails to run :(</span><p>Please try theprevious one, it works for me.<p><a class="rvts17" href="http://sourceforge.net/projects/fsqlf/files/fsqlf.v0.03/fsqlf.v0.03-141-g94f5a5f.zip.gz/download">http://sourceforge.net/projects/fsqlf/files/fsqlf.v0.03/fsqlf.v0.03-141-g94f5a5f.zip.gz/download</a><p><br /><p>Alsoplease note that fsqlf.exe could fail when run in a path containing national characters.<p><br /><p><br /><p><br/><p>Monday, May 18, 2015, 3:42:11 PM, you wrote:<p><br /><div><table border="0" cellpadding="1" cellspacing="2"><trvalign="top"><td style="background-color: #0000ff;" width="12"><p><span class="rvts6">></span></td><tdstyle="background-color: #ffffff;" width="1038"><p><span class="rvts7">Hi J.F</span><p><br/><p><span class="rvts7">I am reviewing your patch. I have applied the patch and try to test it on Windows7. Below are the steps that I perform </span><ul style="text-indent: 0px; margin-left: 40px; list-style-position:outside;"><li><span class="rvts7">Download SQL Formatter from </span><a class="rvts8" href="http://fsqlf.sourceforge.net/">http://fsqlf.sourceforge.net/</a><li><spanclass="rvts7">Given the path of fsqlf.exe/wx_fsqlf.exein </span><span class="rvts9">File - Options - Query Editor: External formatting utility</span><li><spanclass="rvts9">I have opened the query tool and wrote some select query. Please refer the attachedscreenshot for SQL query.</span></ul><p><span class="rvts9">When I have given fsqlf.exe in the path it throws theerror ( see attached screenshot) and when I have given wx_fsqlf.exe in the path it always report an error "Formattingcommand did not respond in 3 seconds" in the status bar. </span><p><br /><p><span class="rvts9">I am not surehow to test it properly. Can you please provide some steps.</span><p><br /><p><br /><p><span class="rvts7">On Mon, May18, 2015 at 10:10 AM, Akshay Joshi <</span><a class="rvts10" href="mailto:akshay.joshi@enterprisedb.com">akshay.joshi@enterprisedb.com</a><spanclass="rvts7">> wrote:</span><p><br/><p><span class="rvts7">Sure.</span><p><br /><p><br /><p><span class="rvts7">On Fri, May 15, 2015 at9:30 PM, Dave Page <</span><a class="rvts10" href="mailto:dpage@pgadmin.org">dpage@pgadmin.org</a><span class="rvts7">>wrote:</span><p><br /><p><span class="rvts7">Akshay, can you take a look please?</span><p><br /><p><spanclass="rvts7">Thanks.</span><p><br /><p><br /><p><span class="rvts7">On Fri, May 15, 2015 at 4:53 PM, J.F. Oster<</span><a class="rvts10" href="mailto:jinfroster@mail.ru">jinfroster@mail.ru</a><span class="rvts7">> wrote:</span><p><spanclass="rvts7">> Hello!</span><p><span class="rvts7">></span><p><span class="rvts7">> Pleasetake a look at the patch.</span><p><span class="rvts7">> Thanks.</span><p><span class="rvts7">></span><p><spanclass="rvts7">> Per discussion</span><p><span class="rvts7">> </span><a class="rvts10" href="http://www.postgresql.org/message-id/CAPyomk5NT9Tm-r3wombLzoY60Vqa+QyRDy4u84_2K9UWLbWHTg@mail.gmail.com">http://www.postgresql.org/message-id/CAPyomk5NT9Tm-r3wombLzoY60Vqa+QyRDy4u84_2K9UWLbWHTg@mail.gmail.com</a><p><span class="rvts7">></span><p><spanclass="rvts7">> It's most useful for making readable queries generated by ORMs such as</span><p><spanclass="rvts7">> Hibernate. But in general, external processing can go far beyond</span><p><span class="rvts7">>formatting task.</span><p><span class="rvts7">></span><p><span class="rvts7">> I've implemented thisfeature quick-and-dirty long ago. Finally I made</span><p><span class="rvts7">> myself clean it up, now it looks better,so please consider a patch.</span><p><span class="rvts7">> Tested on Windows 7 and Ubuntu 14.04.</span><p><spanclass="rvts7">></span><p><span class="rvts7">> Changes:</span><p><span class="rvts7">> * addednew setting, ExtFormatCmd, "External formatting utility" in</span><p><span class="rvts7">> Options dialogue</span><p><spanclass="rvts7">> * added menu item "Edit - Format - External Format" in</span><p><span class="rvts7">> Query editor</span><p><span class="rvts7">> * class sysProcess supports UTF-8 and can pass STDIN fora process.</span><p><span class="rvts7">></span><p><span class="rvts7">> Suggested use scenario:</span><p><spanclass="rvts7">> 1. Download and install some SQL formatting utility.</span><p><span class="rvts7">>2. Tell pgAdmin where it resides:</span><p><span class="rvts7">> File - Options - Query Editor: Externalformatting utility.</span><p><span class="rvts7">> 3. Open Query editor. Select a text block to format and press</span><p><spanclass="rvts7">> Ctrl-Shift-F. With no selection the whole text gets formatted.</span><p><span class="rvts7">> In case of non-zero exit code, STDERR will be shown in status bar.</span><p><span class="rvts7">></span><p><spanclass="rvts7">> Requirements for external formatting utility:</span><p><span class="rvts7">>* Accepts a STDIN stream and writes result to STDOUT</span><p><span class="rvts7">> * Finishes in lessthan 3 seconds</span><p><span class="rvts7">> * Exits with code 0 on success</span><p><span class="rvts7">> Supportfor UTF-8 multibyte characters is preferable.</span><p><span class="rvts7">></span><p><span class="rvts7">>To see whether it works well, a test can be done:</span><p><span class="rvts7">> C:\> type in.sql|some_formatter >out.sql</span><p><span class="rvts7">> C:\> echo %ERRORLEVEL%</span><p><span class="rvts7">>or</span><p><span class="rvts7">> user@linux:~$ cat in.sql |some_formatter >out.sql</span><p><spanclass="rvts7">> user@linux:~$ echo $?</span><p><span class="rvts7">></span><p><span class="rvts7">>There are few available utilities depending on platform:</span><p><span class="rvts7">> * Free SQLFormatter (Linux, Windows, Mac OS X(?))</span><p><span class="rvts7">> </span><a class="rvts10" href="http://fsqlf.sourceforge.net/">http://fsqlf.sourceforge.net/</a><p><spanclass="rvts7">> * Poor Man's T-SQL Formatter(Windows)</span><p><span class="rvts7">> </span><a class="rvts10" href="http://architectshack.com/PoorMansTSqlFormatter.ashx">http://architectshack.com/PoorMansTSqlFormatter.ashx</a><p><span class="rvts7">>Also it is possible to make a wrapper script for numerous online</span><p><span class="rvts7">> formattingservices, but it's less secure and less reliable.</span><p><span class="rvts7">></span><p><span class="rvts7">>Fsqlf is FOSS and seems promising. I think of extending it for</span><p><span class="rvts7">> PosgreSQL-specificSQL syntax and probably even PL/pgSQL.</span><p><span class="rvts7">></span><p><span class="rvts7">></span><p><spanclass="rvts7">> --</span><p><span class="rvts7">> Best regards,</span><p><span class="rvts7">> J.F.</span><p><span class="rvts7">></span><p><span class="rvts7">></span><p><span class="rvts11">>--</span><p><span class="rvts11">> Sent via pgadmin-hackers mailing list (</span><a class="rvts10"href="mailto:pgadmin-hackers@postgresql.org">pgadmin-hackers@postgresql.org</a><span class="rvts11">)</span><p><spanclass="rvts11">> To make changes to your subscription:</span><p><span class="rvts11">> </span><aclass="rvts10" href="http://www.postgresql.org/mailpref/pgadmin-hackers">http://www.postgresql.org/mailpref/pgadmin-hackers</a><p><span class="rvts11">></span><p><br/><p><br /><p><br /><p><span class="rvts11">--</span><p><span class="rvts11">Dave Page</span><p><spanclass="rvts11">Blog: </span><a class="rvts10" href="http://pgsnake.blogspot.com">http://pgsnake.blogspot.com</a><p><spanclass="rvts11">Twitter: @pgsnake</span><p><br /><p><spanclass="rvts11">EnterpriseDB UK: </span><a class="rvts10" href="http://www.enterprisedb.com">http://www.enterprisedb.com</a><p><spanclass="rvts11">The Enterprise PostgreSQL Company</span><p><br/><p><br /><p><br /><p><br /><p><span class="rvts11">-- </span><p><br /><p><span class="rvts12">AkshayJoshi</span><p><span class="rvts12">Principal Software Engineer </span><p><br /><p><br /><p><span class="rvts12">Phone:+91 20-3058-9517</span><p><span class="rvts12">Mobile: +91 976-788-8246</span><p><br /><p><br /><p><br/><p><br /><p><span class="rvts7">-- </span><p><br /><p><span class="rvts12">Akshay Joshi</span><p><span class="rvts12">PrincipalSoftware Engineer </span><p><br /><p><br /><p><span class="rvts12">Phone: +91 20-3058-9517</span><p><spanclass="rvts12">Mobile: +91 976-788-8246</span></td></tr></table></div><p><br /><p><br /><p><br/><p><br /><p><span class="rvts13">-- </span><p><span class="rvts13">Best regards,</span><p><span class="rvts13"> J.F.</span>
pgadmin-hackers by date: