Re: Fwd: PATCH: Format SQL (external tool)

From: Ashesh Vashi <ashesh(dot)vashi(at)enterprisedb(dot)com>
To: Akshay Joshi <akshay(dot)joshi(at)enterprisedb(dot)com>
Cc: "J(dot)F(dot) Oster" <jinfroster(at)mail(dot)ru>, pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: Fwd: PATCH: Format SQL (external tool)
Date: 2015-05-27 09:56:25
Message-ID: CAG7mmoyUZk9H-WBn+OuyPRRKe5Zi0PvqR+B-9yfRrdB6CQo7fw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

On Wed, May 27, 2015 at 3:19 PM, Ashesh Vashi <ashesh(dot)vashi(at)enterprisedb(dot)com
> wrote:

> Hi J. F. Oster,
>
> I think - we should give option to the user about wait timeout (which is
> hard-coded to 3 seconds).
> It should be asked in the options dialog.
>
Apart from that - in the AbortProcess function, we're releasing the process
object.
Does EVT_END_PROCESS event get fired even in case of killing the process
across all supported platform?
(FYI - I've not tested the code yet.)

>
> --
>
> Thanks & Regards,
>
> Ashesh Vashi
> EnterpriseDB INDIA: Enterprise PostgreSQL Company
> <http://www.enterprisedb.com>
>
>
> *http://www.linkedin.com/in/asheshvashi*
> <http://www.linkedin.com/in/asheshvashi>
>
> On Wed, May 27, 2015 at 10:56 AM, Akshay Joshi <
> akshay(dot)joshi(at)enterprisedb(dot)com> wrote:
>
>>
>> On Tue, May 26, 2015 at 9:51 PM, J.F. Oster <jinfroster(at)mail(dot)ru> wrote:
>>
>>> Hello Akshay,
>>>
>>> Is there something else to fix?
>>>
>>
>> Nothing. Patch looks good to me.
>>
>>>
>>> JFO> Hi Akshay,
>>>
>>> JFO> Removed that.
>>>
>>> JFO> Tuesday, May 19, 2015, 10:04:59 AM, you wrote:
>>>
>>> AJ>> Hi J.F
>>>
>>> AJ>> The version of fsql you have suggested works for me as well. I
>>> AJ>> have reviewed your patch and it looks good to me. Please remove
>>> AJ>> the commented code (wxString s; //, tmp at line 873 in
>>> sysSettings.cpp.
>>>
>>>
>>> AJ>> On Mon, May 18, 2015 at 10:31 PM, J.F. Oster <jinfroster(at)mail(dot)ru>
>>> wrote:
>>> AJ>> Hi Akshay,
>>>
>>> AJ>> fsqlf.exe is the program to use; wx_fsqlf.exe is just a GUI wrapper.
>>>
>>> AJ>> I've got the latest version (fsqlf.v0.03-292-gd0fd9bf.zip), and it
>>> really fails to run
>>> AJ>> Please try the previous one, it works for me.
>>> AJ>>
>>> http://sourceforge.net/projects/fsqlf/files/fsqlf.v0.03/fsqlf.v0.03-141-g94f5a5f.zip.gz/download
>>>
>>> AJ>> Also please note that fsqlf.exe could fail when run in a path
>>> containing national characters.
>>>
>>>
>>>
>>> AJ>> Monday, May 18, 2015, 3:42:11 PM, you wrote:
>>>
>>>
>>>
>>>
>>> AJ>> Hi J.F
>>>
>>> AJ>> I am reviewing your patch. I have applied the patch and try to
>>> AJ>> test it on Windows 7. Below are the steps that I perform
>>> AJ>> ° Download SQL Formatter from http://fsqlf.sourceforge.net/
>>> AJ>> ° Given the path of fsqlf.exe/wx_fsqlf.exe in File -
>>> AJ>> Options - Query Editor: External formatting utility
>>> AJ>> ° I have opened the query tool and wrote some select query.
>>> AJ>> Please refer the attached screenshot for SQL query.
>>> AJ>> When I have given fsqlf.exe in the path it throws the error ( see
>>> AJ>> attached screenshot) and when I have given wx_fsqlf.exe in the
>>> AJ>> path it always report an error "Formatting command did not respond
>>> AJ>> in 3 seconds" in the status bar.
>>>
>>> AJ>> I am not sure how to test it properly. Can you please provide some
>>> steps.
>>>
>>>
>>> AJ>> On Mon, May 18, 2015 at 10:10 AM, Akshay Joshi
>>> AJ>> <akshay(dot)joshi(at)enterprisedb(dot)com> wrote:
>>>
>>> AJ>> Sure.
>>>
>>>
>>> AJ>> On Fri, May 15, 2015 at 9:30 PM, Dave Page <dpage(at)pgadmin(dot)org>
>>> wrote:
>>>
>>> AJ>> Akshay, can you take a look please?
>>>
>>> AJ>> Thanks.
>>>
>>>
>>> AJ>> On Fri, May 15, 2015 at 4:53 PM, J.F. Oster <jinfroster(at)mail(dot)ru>
>>> wrote:
>>> >>> Hello!
>>>
>>> >>> Please take a look at the patch.
>>> >>> Thanks.
>>>
>>> >>> Per discussion
>>> >>>
>>> http://www.postgresql.org/message-id/CAPyomk5NT9Tm-r3wombLzoY60Vqa+QyRDy4u84_2K9UWLbWHTg@mail.gmail.com
>>>
>>> >>> It's most useful for making readable queries generated by ORMs such
>>> as
>>> >>> Hibernate. But in general, external processing can go far beyond
>>> >>> formatting task.
>>>
>>> >>> I've implemented this feature quick-and-dirty long ago. Finally I
>>> made
>>> >>> myself clean it up, now it looks better, so please consider a patch.
>>> >>> Tested on Windows 7 and Ubuntu 14.04.
>>>
>>> >>> Changes:
>>> >>> * added new setting, ExtFormatCmd, "External formatting utility" in
>>> >>> Options dialogue
>>> >>> * added menu item "Edit - Format - External Format" in
>>> >>> Query editor
>>> >>> * class sysProcess supports UTF-8 and can pass STDIN for a process.
>>>
>>> >>> Suggested use scenario:
>>> >>> 1. Download and install some SQL formatting utility.
>>> >>> 2. Tell pgAdmin where it resides:
>>> >>> File - Options - Query Editor: External formatting utility.
>>> >>> 3. Open Query editor. Select a text block to format and press
>>> >>> Ctrl-Shift-F. With no selection the whole text gets formatted.
>>> >>> In case of non-zero exit code, STDERR will be shown in status bar.
>>>
>>> >>> Requirements for external formatting utility:
>>> >>> * Accepts a STDIN stream and writes result to STDOUT
>>> >>> * Finishes in less than 3 seconds
>>> >>> * Exits with code 0 on success
>>> >>> Support for UTF-8 multibyte characters is preferable.
>>>
>>> >>> To see whether it works well, a test can be done:
>>> >>> C:\> type in.sql |some_formatter >out.sql
>>> >>> C:\> echo %ERRORLEVEL%
>>> >>> or
>>> >>> user(at)linux:~$ cat in.sql |some_formatter >out.sql
>>> >>> user(at)linux:~$ echo $?
>>>
>>> >>> There are few available utilities depending on platform:
>>> >>> * Free SQL Formatter (Linux, Windows, Mac OS X(?))
>>> >>> http://fsqlf.sourceforge.net/
>>> >>> * Poor Man's T-SQL Formatter (Windows)
>>> >>> http://architectshack.com/PoorMansTSqlFormatter.ashx
>>> >>> Also it is possible to make a wrapper script for numerous online
>>> >>> formatting services, but it's less secure and less reliable.
>>>
>>> >>> Fsqlf is FOSS and seems promising. I think of extending it for
>>> >>> PosgreSQL-specific SQL syntax and probably even PL/pgSQL.
>>>
>>>
>>>
>>>
>>>
>>> --
>>> Best regards,
>>> J.F.
>>>
>>>
>>
>>
>> --
>> *Akshay Joshi*
>> *Principal Software Engineer *
>>
>>
>>
>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246*
>>
>
>

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message John Obaterspok 2015-06-11 20:19:16 [PATCH] Fix crash when disabling auto commit
Previous Message Ashesh Vashi 2015-05-27 09:49:21 Re: Fwd: PATCH: Format SQL (external tool)