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:

Previous
From: Priyanka Shendge
Date:
Subject: pgAdminIV: reset password functionality
Next
From: Akshay Joshi
Date:
Subject: Re: Fwd: PATCH: Format SQL (external tool)