public inbox for [email protected]  
help / color / mirror / Atom feed
From: Aditya Toshniwal <[email protected]>
To: Akshay Joshi <[email protected]>
Cc: pgadmin-hackers <[email protected]>
Subject: Re: [pgAdmin][RM6131] Port query tool to React
Date: Tue, 26 Apr 2022 15:05:47 +0530
Message-ID: <CAM9w-_nVaKUnG3k7LK+q9K8h-xcKtw0t79B9k-6Kz=_F8dNwrw@mail.gmail.com> (raw)
In-Reply-To: <CANxoLDeA4qgQULu4sc2Yc+gTPTCkU9oay3AbxZ_r2nJ9n=Qo-Q@mail.gmail.com>
References: <CAM9w-_=7+yaGeh=m=-jo8ZMtqQBVYeyKBFJgarGUU09Ff+w68w@mail.gmail.com>
	<CANxoLDdeFxtgGVAJZvyoCZ8kCFEHVCRyi2eBL35HqGuR6301AA@mail.gmail.com>
	<CAM9w-_kASJCjN1pHrMeTe3+eFc2DYDT7qdTCGj+EuhC54AxJNw@mail.gmail.com>
	<CAM9w-_=pGojP3aG_FY56BNJjZFK1ziOJrZXyVJ1COKtaFtqfpQ@mail.gmail.com>
	<CANxoLDc+cNawZ=LCbfU_2Cx4rCWkbfjMVfv8mmY=Wk7GSUjcJg@mail.gmail.com>
	<CAM9w-_mvwZ221u8ZnY7i4f_3ujKTyoJ3=4qiSEUdqAegScFxaw@mail.gmail.com>
	<CAM9w-_=F5vUWkeAL+52NfcQvf+W3MoLCa0Kac2N031qA9eet2g@mail.gmail.com>
	<CAM9w-_k4sam2RbKxgKKp2ceNBQQn72zAOU4W7uFGWD_CEWpWCQ@mail.gmail.com>
	<CAM9w-_m2m5WFOroN_mkbbT39mYHWWTXjniv=Vcqrxv6Y=+ZpfA@mail.gmail.com>
	<CANxoLDeKDRYY3Woq13MxOrL9Wcfkz5533iFtdLJqwZaDoCA4cA@mail.gmail.com>
	<CAM9w-_=HuBA6a1uZkPNyjLHqA3H-yHKoMsF4yv6=MU7Kd4=tdg@mail.gmail.com>
	<CANxoLDe-oXPfN-btVLjfaQLUiDm88++ezskK64Kn7261PNSROw@mail.gmail.com>
	<CAM9w-_kuvmj91hVoyW25MCJU0iOS7hX9xpUwSuSB4-U7sJc_2Q@mail.gmail.com>
	<CANxoLDdbw8Em301fA1mq2LAFqnxASjTkk-9P+GT1j1B3CJ4Z9w@mail.gmail.com>
	<CAM9w-_ngk8sm+VKZP7C-J=co+VgeTtLX5TVFArpg8LQbsGGoDA@mail.gmail.com>
	<CANxoLDeA4qgQULu4sc2Yc+gTPTCkU9oay3AbxZ_r2nJ9n=Qo-Q@mail.gmail.com>

Hi,

Attached path fixes:

   1. In Dark mode > Replace/Find dialogue forward & reverse buttons are
   stuck to each other.
   2. In Dark/High contrast mode > Checkbox is not visible for false value.
   3. Wrap toolbar when size goes very small.
   4. Replace functionality does not work when tried in sequence 2 times.
   Codemirror search is not cyclic. So, changes are made to always search from
   the start.
   5. Replace all does not work when tried in sequence 2 times. Same
   reason as above.
   6. Fix broken macros $SELECTION$ feature.
   7. Make query history SQL readonly.



On Mon, Apr 25, 2022 at 6:13 PM Akshay Joshi <[email protected]>
wrote:

> Thanks, the patch applied.
>
> On Mon, Apr 25, 2022 at 6:07 PM Aditya Toshniwal <
> [email protected]> wrote:
>
>> Attached path fixes:
>>
>>    1. Failed to fetch query history error sometimes.
>>    2. In copy paste row, if a copied row has [null], then those are
>>    pasted as empty string.
>>    3. When Dataoutput is empty, show an empty grid.
>>    4. Schema diff generate script button results in empty window. Fixes
>>    #7306.
>>    5. Detach the DataOutput panel > Try editing text cell > Text editor
>>    is hidden behind data output panel
>>
>>
>> On Fri, Apr 22, 2022 at 6:18 PM Akshay Joshi <
>> [email protected]> wrote:
>>
>>> Thanks, the patch applied
>>>
>>> On Fri, Apr 22, 2022 at 6:02 PM Aditya Toshniwal <
>>> [email protected]> wrote:
>>>
>>>> Hi,
>>>>
>>>> Attached patch fixes:
>>>> 1. Add min width to panels.
>>>> 2. Fix issues related to New connection in query tool. Also fixed some
>>>> existing bugs related to this.
>>>>
>>>> Please review.
>>>>
>>>> On Wed, Apr 20, 2022 at 7:04 PM Akshay Joshi <
>>>> [email protected]> wrote:
>>>>
>>>>> Thanks, the patch applied.
>>>>>
>>>>> On Wed, Apr 20, 2022 at 6:31 PM Aditya Toshniwal <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Attached patch fixes following issues:
>>>>>>
>>>>>>
>>>>>>    1. Find/Replace both opens the same dialogue box.(by clicking
>>>>>>    menu option)
>>>>>>    2. Add New Server Connection > Server options keep loading(For
>>>>>>    multiple Server groups & should have some server)
>>>>>>    3. Fixed CSS issues of slickgrid at various places.
>>>>>>    4. Try to edit cell with char varying data type(which opens text
>>>>>>    editor, leave editor open) > Scroll result grid verticall so that ediot
>>>>>>    disappaears > Click on another cell > query edior shows white screen &
>>>>>>    refresh is the only option left.(TypeError: Cannot read properties of null
>>>>>>    (reading 'querySelector’) - Issue is not reproducible if you scroll
>>>>>>    horizontally
>>>>>>    5. C should be captial in ’<New connection…>'
>>>>>>    6. In pop title for New Connection, all words should be
>>>>>>    capital.(Add new connection)
>>>>>>    7. Explain > Analaysis tab > Column heading missing ROWS PLAN with
>>>>>>    cost & In explain only.
>>>>>>    8. Explain > Analaysis tab > with cost enabled > Upward arrow
>>>>>>    size does not match with font of number. Arrow is little bigger than number.
>>>>>>    9. Boolean default is not considered while ading new row.(try
>>>>>>    table from feature test defaults)
>>>>>>    10. In query history , when not query history present, warning
>>>>>>    icon size big. Match it to warning message - No history found
>>>>>>    11. Select table/db object > Open query tool from Tools menu >
>>>>>>    NOT FOUND error is shown. Existing issue, fixed.
>>>>>>    12. Any cell just open by clicking it > Do NOT change any thing >
>>>>>>    Click Ok > Cell is shown as edited.
>>>>>>
>>>>>> Please review.
>>>>>>
>>>>>> On Mon, Apr 18, 2022 at 12:54 PM Akshay Joshi <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Thanks, the patch applied.
>>>>>>>
>>>>>>> On Mon, Apr 18, 2022 at 11:27 AM Aditya Toshniwal <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>> Attached is the patch to fix the issues raised. Few of them are
>>>>>>>> pending and will send it later.
>>>>>>>> Fixed:
>>>>>>>>
>>>>>>>>    1. Add New Server Connection > Server options keep loading(For
>>>>>>>>    empty Server group).
>>>>>>>>    2. After clicking indent/Unindent(for all operations) for large
>>>>>>>>    query option left as it is till operation completes
>>>>>>>>    3. Also check sign beside options in Execute Option/Copy Header
>>>>>>>>    is little bit big
>>>>>>>>    4. In explain > Analysis tab does not show ROWS column
>>>>>>>>    5. In explain > Explain > analysis previous explain output is
>>>>>>>>    NOT cleared. New rows are appended. Same applies to the statistics tab.
>>>>>>>>    6. Update new query tool connection tool tip.(7289)
>>>>>>>>    7. Explain-Analyze > Loops column is empty.
>>>>>>>>    8. Explain-Analyze with Verbose & Costs > in ROW X columns
>>>>>>>>    upward arrows are missing.
>>>>>>>>    9. Explain-Analyze with all option checked > background colors
>>>>>>>>    are missing for timing.
>>>>>>>>    10. Explain-Analyze > Additional bullet is added before Hash
>>>>>>>>    Cond.
>>>>>>>>    11. Browser Tree > Filtered rows icon is not working.
>>>>>>>>    12. Create table with timestamp and default value as function
>>>>>>>>    now() > Add new row > Enter mandatory columns except column where default
>>>>>>>>    value is function(now()) > Click Save > New row added but column with
>>>>>>>>    default value has value [default]. not updated to actual value. / Default
>>>>>>>>    values are not considered for any column while adding a new entry.
>>>>>>>>    13. Disable execute options in View/Edit data.
>>>>>>>>    14. The Boolean column always shows null.
>>>>>>>>    15. In Query history Remove & Remove all buttons are stuck to
>>>>>>>>    each other.
>>>>>>>>    16. On Remove all, the right panel is empty.
>>>>>>>>    17. Create a column with boolean[]/ text[], Try to add a new
>>>>>>>>    entry from data grid, enter “” quotes > Click Ok > Now try edit cell > You
>>>>>>>>    can not change value.
>>>>>>>>    18. In query history - Select queries are suffixed by ’Save
>>>>>>>>    Data’ icon
>>>>>>>>    19. Edit any table with PK > Try to insert duplicate PK > Error
>>>>>>>>    thrown > Correct pK value > Still old error shown > Not able to add new
>>>>>>>>    entry (This works when focus is moved from edited cell)
>>>>>>>>    20. Clicking arrows after opening dropdown options, does not
>>>>>>>>    collapse dropdown.
>>>>>>>>
>>>>>>>> I was not able to reproduce some of the bugs on webpack dev mode,
>>>>>>>> but reproducible on webpack prod mode bundles. After a lot of debugging it
>>>>>>>> turned out that webpack/babel transpile was changing the meaning of a piece
>>>>>>>> of code in prod mode. I tweaked the code then most issues were not
>>>>>>>> reproducible anymore.
>>>>>>>> That said, following issues were not reproducible and this fix
>>>>>>>> could be the reason:
>>>>>>>>
>>>>>>>>    1. Not able to load more than 1000 rows.
>>>>>>>>    2. Find/Replace both opens the same dialogue box.
>>>>>>>>    3. Try to edit cell with char varying data type(which opens
>>>>>>>>    text editor) > Scroll result grid > Click on another cell > query edior
>>>>>>>>    shows white screen & refresh is the only option left.(TypeError: Cannot
>>>>>>>>    read properties of null (reading 'querySelector')
>>>>>>>>    at getCellElement (sqleditor.js?ver=60800:1:995456))
>>>>>>>>    4. Generate script is not working for schema diff for tables
>>>>>>>>    with target only/ not working for any.(TypeError: Cannot read properties of
>>>>>>>>    undefined (reading 'database'))
>>>>>>>>    5. Query results are appended in the Notification tab.
>>>>>>>>    6. Panel name is NOT updated on opening file. Panel-name should
>>>>>>>>    be filename
>>>>>>>>    7. Open a file in query tool > Open another file > Check panel
>>>>>>>>    name > It is the first file name.
>>>>>>>>    8. Incorrect CSV downloaded (film table) when CSV quotes select
>>>>>>>>    single quote from preferences. *CSV generated at backend. No
>>>>>>>>    changes done.*
>>>>>>>>    9. In Data grid > Add New data to cell > without clicking on
>>>>>>>>    other cell click on Add New row > previous data is gone.
>>>>>>>>
>>>>>>>>
>>>>>>>> Please find the comment inline for other issues:
>>>>>>>>
>>>>>>>>    1. Small white line is added below Total rows status bar.
>>>>>>>>    This is an existing issue with wcDocker. It is somehow not
>>>>>>>>    getting the correct size for the query tool. You can verify this by opening
>>>>>>>>    query tool in new tab.
>>>>>>>>    2. In explain > Data output > Query Plan is editable.
>>>>>>>>    To be precise, the JSON editor is editable but does not allow
>>>>>>>>    saving it. This is inline with other editors like text editor which allows
>>>>>>>>    editing but no save.
>>>>>>>>    3. Color is NOT fainted in View/Edit data when query tool is
>>>>>>>>    NOT editable.
>>>>>>>>    This is inline with other places where the SQL is read
>>>>>>>>    only like the properties dialog SQL tab or the RE-SQL tab. Plus, greying
>>>>>>>>    out of SQL affects query readability.
>>>>>>>>    4. If data in result grid is edited & changes are reverted,
>>>>>>>>    then also Save button remain enabled/ Cell is shown in bold indicating data
>>>>>>>>    is edited.
>>>>>>>>    This is based on existing behaviour. A separate RM can be
>>>>>>>>    raised to have any improvement in this.
>>>>>>>>    5. When the Save button is disabled then 'Save as' should be
>>>>>>>>    disabled as well.
>>>>>>>>    Save and Save As are different in behaviour. You can change a
>>>>>>>>    file and save it. The save will be disabled but the user should be allowed.
>>>>>>>>    I also checked the behaviour of VS-Code and PyCharm. They never disable the
>>>>>>>>    "save as" button. After all, there is no harm in allowing a user to save as
>>>>>>>>    even if it is empty.
>>>>>>>>    6. Manage Macros - Help button is disabled. Remove SQL help
>>>>>>>>    button(Not sure).
>>>>>>>>    As I already mentioned in the review by Askhay, the existing
>>>>>>>>    help button opens the query tool help. Query tool help is
>>>>>>>>    already added on the toolbar and so this one is disabled.
>>>>>>>>    7. Macros defined in one database are shown for other databases
>>>>>>>>    also/even across servers.
>>>>>>>>    As per the existing design.
>>>>>>>>    8. Query tool notifier setting is missing in preferences.
>>>>>>>>    Previously, the total time and number of rows were shown in the
>>>>>>>>    notifier. And so, the notifier setting was added so that users can tweak it
>>>>>>>>    to keep it open for a longer time. Now, we do not show those details on the
>>>>>>>>    notifier since we have a fixed status bar for that. This setting is not
>>>>>>>>    relevant anymore.
>>>>>>>>
>>>>>>>>
>>>>>>>> Issues that need to be checked and pending:
>>>>>>>>
>>>>>>>>    1. Explain-Analyze with all option checked > Statistics tab > %
>>>>>>>>    of query is always 0 for node type. Need to check all the calculations.
>>>>>>>>    2. In the Result grid multiple rows can not be selected with
>>>>>>>>    shift + down arrow.
>>>>>>>>    3. In Geometry Viewer , map disappears if taken to bottom.
>>>>>>>>    4. Keyboard shortcut - Focus in query tool and try
>>>>>>>>    Previous/Next tab is Not working add quotes in query tool
>>>>>>>>    5. Keyboard shortcut Switch Panel is not working
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, Apr 7, 2022 at 3:37 PM Aditya Toshniwal <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> Please find an updated patch with PEP8 issues fixed.
>>>>>>>>>
>>>>>>>>> On Thu, Apr 7, 2022 at 3:12 PM Aditya Toshniwal <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Hackers,
>>>>>>>>>>
>>>>>>>>>> Attached is updated patch which now also includes:
>>>>>>>>>> Can't copy and paste row correctly if first column contains no
>>>>>>>>>> data #7294
>>>>>>>>>>
>>>>>>>>>> On Tue, Apr 5, 2022 at 5:45 PM Aditya Toshniwal <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Akshay,
>>>>>>>>>>>
>>>>>>>>>>> Thank you for doing such a detailed review. Please find my
>>>>>>>>>>> comments inline below and attached patch.
>>>>>>>>>>>
>>>>>>>>>>> On Thu, Mar 17, 2022 at 4:05 PM Akshay Joshi <
>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Aditya
>>>>>>>>>>>>
>>>>>>>>>>>> Following are the review comments:
>>>>>>>>>>>>
>>>>>>>>>>>> *GUI:*
>>>>>>>>>>>>
>>>>>>>>>>>>    - The Maximize/Minimize button on the panel should be
>>>>>>>>>>>>    consistent with other panels.
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Scratch Pad is missing or is there any new setting to add
>>>>>>>>>>>>    a scratch pad?
>>>>>>>>>>>>
>>>>>>>>>>>> Added. The layout lib currently does not have a context menu
>>>>>>>>>>> on the header to add a panel. For now, you can use the reset layout button
>>>>>>>>>>> to add the scratch pad again if closed. Context menu can be added
>>>>>>>>>>> separately later. Reset layout will not refresh the page.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Press "Cmd + G" on Query Tool it opens the old search bar
>>>>>>>>>>>>    is it still valid
>>>>>>>>>>>>    - [image: Screenshot 2022-03-16 at 7.02.34 PM.png]
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    -
>>>>>>>>>>>>    - In case of any error, we should move the cursor to the
>>>>>>>>>>>>    error location. We are highlighting the error row but it should be scroll
>>>>>>>>>>>>    to that location in the editor.
>>>>>>>>>>>>
>>>>>>>>>>>> Existing behaviour. Improvement done.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Error highlighting color should be aligned with the
>>>>>>>>>>>>    theme, check the existing color.
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Error highlighting color is not cleared when running the
>>>>>>>>>>>>    successful query. Run "SELECT * from pg_class123" and then run "SELECT *
>>>>>>>>>>>>    from pg_class".
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - *ToolBar buttons*:
>>>>>>>>>>>>       - When the Save button is disabled then 'Save as' should
>>>>>>>>>>>>       be disabled as well.
>>>>>>>>>>>>
>>>>>>>>>>>> This is not correct. A user should be allowed to "Save as" a
>>>>>>>>>>> file even if it is saved and save button is disabled.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Open any SQL file, change some text and click on the
>>>>>>>>>>>>       'Save' button, No notifier message has been flashed that 'File saved
>>>>>>>>>>>>       successfully' and the button does not get disabled as well.
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Format SQL not working.
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Clear Query keyboard shortcut not working.
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    -
>>>>>>>>>>>>       - Clicking on the 'Clear Query' menu should pop up a
>>>>>>>>>>>>       confirmation dialog 'Are you sure you wish to discard the current changes?'
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Open any SQL file, change some text, and try to open
>>>>>>>>>>>>       another file, it should pop up a confirmation dialog 'Are you sure you wish
>>>>>>>>>>>>       to discard the current changes?'
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - When clicking on the New Query Tool button it is
>>>>>>>>>>>>       not opening the new query tool window.
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Shortcut Key for Replace is not correct on *Windows*
>>>>>>>>>>>>       (Tooltip showing Alt + Ctrl + F) but actual is (Shift + Ctrl + F)
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Most of the Keyboard shortcuts are not working on Windows
>>>>>>>>>>>>       at all.
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - *New Connection Dialog:*
>>>>>>>>>>>>       - The close button should be right-aligned.
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Unable to test further because when selecting any
>>>>>>>>>>>>       disconnected server it should pop up the password dialog to connect and
>>>>>>>>>>>>       then fetch the details like databases, users, roles.
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Help buttons are disabled.
>>>>>>>>>>>>
>>>>>>>>>>>> The existing help button opens the query tool help. Query tool
>>>>>>>>>>> help is already added on the toolbar.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - *Query History*:
>>>>>>>>>>>>       - For some queries like 'ROLLBACK' and 'COMMIT,' Rows
>>>>>>>>>>>>       affected shows in the negative (-1).
>>>>>>>>>>>>
>>>>>>>>>>>> Based on existing. I have made it blank.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - *Remove All* should warn the user before removing
>>>>>>>>>>>>       everything "Are you sure you wish to remove all the history? This will
>>>>>>>>>>>>       remove all of your query histories from this and other sessions for this
>>>>>>>>>>>>       database."
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Duration is missing. It should be there with the Date and
>>>>>>>>>>>>       Rows affected.
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - *Status Bar*:
>>>>>>>>>>>>       - We should display Milliseconds as well in Query
>>>>>>>>>>>>       Complete.
>>>>>>>>>>>>
>>>>>>>>>>>> It will now display in <hr>:<min>:<sec>.<msec> format. Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Total Rows: *N of N, *I always observe the same, can you
>>>>>>>>>>>>       please change it to *N *only, Or am I missing some
>>>>>>>>>>>>       scenario where it is changed?
>>>>>>>>>>>>
>>>>>>>>>>>> We're fetching rows on demand. "X of N" says total X rows
>>>>>>>>>>> fetched till now but total N are available.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - *Data output*:
>>>>>>>>>>>>       - Default message "No data output......" should be shown
>>>>>>>>>>>>       when there are no rows/data, check the old behavior.
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Extra space in the JSON Editor, even if I resize it, its
>>>>>>>>>>>>       height is not adjusted. Check the second screenshot
>>>>>>>>>>>>       - [image: Screenshot 2022-03-17 at 11.29.21 AM.png]
>>>>>>>>>>>>              [image: Screenshot 2022-03-17 at 11.29.59 AM.png]
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    -
>>>>>>>>>>>>    - *Explain*:
>>>>>>>>>>>>       - Old content should be cleared from the panel if we run
>>>>>>>>>>>>       the new query by clicking the play button. It should show an informative
>>>>>>>>>>>>       message, check the old behavior.
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - *Macros*:
>>>>>>>>>>>>       - The close button should be right-aligned.
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Help buttons are disabled.
>>>>>>>>>>>>
>>>>>>>>>>>> The existing help button opens the query tool help. Query tool
>>>>>>>>>>> help is already added on the toolbar.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - *View/Edit Data*:
>>>>>>>>>>>>    - Clipboard issues.
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Unable to edit table data even if the primary key is
>>>>>>>>>>>>       defined.
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Select All rows is missing at the left corner of the
>>>>>>>>>>>>       'Data Output' Panel.
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Change some data and try to save if an error comes then
>>>>>>>>>>>>       Spinner is not cleared.
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    -  Filtered Rows not working. Click on the 'Filtered Rows
>>>>>>>>>>>>       ...' context menu.
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Sort/Filter Dialog is missing.
>>>>>>>>>>>>
>>>>>>>>>>>> The sort/filter dialog is present and opens when you click the
>>>>>>>>>>> filter button. I have removed the "Sort/Filter" menu item which does the
>>>>>>>>>>> same thing.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Select any cell of the table content, click on any filter
>>>>>>>>>>>>       menu 'Filter by selection' or 'Exclude by selection' multiple times. It
>>>>>>>>>>>>       updates the query every time and adds the condition which is not there
>>>>>>>>>>>>       previously.
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Limit (100 rows, 500 rows ...) not working. View data of
>>>>>>>>>>>>       any table having 1000+ rows and then apply the limit.
>>>>>>>>>>>>
>>>>>>>>>>>> I am not able to reproduce this. Works fine.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - *Themes*:
>>>>>>>>>>>>       - Check and Fix all the issues related to the theme.
>>>>>>>>>>>>       - [image: Screenshot 2022-03-17 at 1.43.01 PM.png].
>>>>>>>>>>>>                             [image: Screenshot 2022-03-17 at
>>>>>>>>>>>>       1.44.10 PM.png].
>>>>>>>>>>>>       -
>>>>>>>>>>>>       - [image: Screenshot 2022-03-17 at 1.44.53 PM.png]
>>>>>>>>>>>>                              [image: Screenshot 2022-03-17 at
>>>>>>>>>>>>       1.45.54 PM.png]
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    -
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> *Code:*
>>>>>>>>>>>>
>>>>>>>>>>>>    - Fix pep8 issues.
>>>>>>>>>>>>
>>>>>>>>>>>> Fixed.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>    - Can we fix the *Deprecation Warnings?*
>>>>>>>>>>>>
>>>>>>>>>>>> I think those are coming from bootstrap. Need to check that
>>>>>>>>>>> separately. Not related to the query tool.
>>>>>>>>>>>
>>>>>>>>>>>> *Note: *Code review still remains, meanwhile you can start
>>>>>>>>>>>> fixing the above issues.
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Forgot to mention in initial mail - I have removed dependency on
>>>>>>>>>>> Snap.svg and have written Explain SVG codes from scratch.
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Wed, Mar 16, 2022 at 5:54 PM Aditya Toshniwal <
>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Attached is an updated one with few more improvements and
>>>>>>>>>>>>> fixes.
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Wed, Mar 16, 2022 at 1:40 PM Aditya Toshniwal <
>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Please find the attached patch :)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Wed, Mar 16, 2022 at 12:16 PM Akshay Joshi <
>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Hi Aditya
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I think you forgot to attach the patch.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Tue, Mar 15, 2022 at 4:00 PM Aditya Toshniwal <
>>>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Hi Hackers,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Attached is the initial patch that migrates the SQL Editor
>>>>>>>>>>>>>>>> tool to React based. Change highlights:
>>>>>>>>>>>>>>>> 1. Complete rewrite to React code.
>>>>>>>>>>>>>>>> 2. UI improvements based on suggestions and requests.
>>>>>>>>>>>>>>>> 3. Work towards stability and performance improvement.
>>>>>>>>>>>>>>>> 4. Keep row numbers in view when scrolling horizontally.
>>>>>>>>>>>>>>>> Fixes #3989
>>>>>>>>>>>>>>>> 5. Fixed status bar at the bottom with useful details.
>>>>>>>>>>>>>>>> Fixes #3253
>>>>>>>>>>>>>>>> 6. Relocate GIS Viewer Button to the Left Side of Results
>>>>>>>>>>>>>>>> Table. Fixed #6830
>>>>>>>>>>>>>>>> 7. Allow to remove single history records. Refs #4113
>>>>>>>>>>>>>>>> 8. Macros usability improvements. Ref #6969
>>>>>>>>>>>>>>>> 9. Connection bar visibility issue. Fixes #7188
>>>>>>>>>>>>>>>> 10. Query tool layout issues. Fixes #6725
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Please note, there are still few minor niggles at some
>>>>>>>>>>>>>>>> places but the patch qualified to be reviewed. We will need a good amount
>>>>>>>>>>>>>>>> of time to test this properly. So, I am sending the feature patch. JS
>>>>>>>>>>>>>>>> test cases and documentation patches will follow soon.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Please review.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> [image: image.png]
>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>> Aditya Toshniwal
>>>>>>>>>>>>>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>>>>>>>>>>>>>> <http://edbpostgres.com;
>>>>>>>>>>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>> *Thanks & Regards*
>>>>>>>>>>>>>>> *Akshay Joshi*
>>>>>>>>>>>>>>> *pgAdmin Hacker | Principal Software Architect*
>>>>>>>>>>>>>>> *EDB Postgres <http://edbpostgres.com>*
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> *Mobile: +91 976-788-8246*
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>> Aditya Toshniwal
>>>>>>>>>>>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>>>>>>>>>>>> <http://edbpostgres.com;
>>>>>>>>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>> Aditya Toshniwal
>>>>>>>>>>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>>>>>>>>>>> <http://edbpostgres.com;
>>>>>>>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> *Thanks & Regards*
>>>>>>>>>>>> *Akshay Joshi*
>>>>>>>>>>>> *pgAdmin Hacker | Principal Software Architect*
>>>>>>>>>>>> *EDB Postgres <http://edbpostgres.com>*
>>>>>>>>>>>>
>>>>>>>>>>>> *Mobile: +91 976-788-8246*
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Aditya Toshniwal
>>>>>>>>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>>>>>>>>> <http://edbpostgres.com;
>>>>>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Thanks,
>>>>>>>>>> Aditya Toshniwal
>>>>>>>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>>>>>>>> <http://edbpostgres.com;
>>>>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Thanks,
>>>>>>>>> Aditya Toshniwal
>>>>>>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>>>>>>> <http://edbpostgres.com;
>>>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Thanks,
>>>>>>>> Aditya Toshniwal
>>>>>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>>>>>> <http://edbpostgres.com;
>>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> *Thanks & Regards*
>>>>>>> *Akshay Joshi*
>>>>>>> *pgAdmin Hacker | Principal Software Architect*
>>>>>>> *EDB Postgres <http://edbpostgres.com>*
>>>>>>>
>>>>>>> *Mobile: +91 976-788-8246*
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Thanks,
>>>>>> Aditya Toshniwal
>>>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>>>> <http://edbpostgres.com;
>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *Thanks & Regards*
>>>>> *Akshay Joshi*
>>>>> *pgAdmin Hacker | Principal Software Architect*
>>>>> *EDB Postgres <http://edbpostgres.com>*
>>>>>
>>>>> *Mobile: +91 976-788-8246*
>>>>>
>>>>
>>>>
>>>> --
>>>> Thanks,
>>>> Aditya Toshniwal
>>>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>>>> <http://edbpostgres.com;
>>>> "Don't Complain about Heat, Plant a TREE"
>>>>
>>>
>>>
>>> --
>>> *Thanks & Regards*
>>> *Akshay Joshi*
>>> *pgAdmin Hacker | Principal Software Architect*
>>> *EDB Postgres <http://edbpostgres.com>*
>>>
>>> *Mobile: +91 976-788-8246*
>>>
>>
>>
>> --
>> Thanks,
>> Aditya Toshniwal
>> pgAdmin Hacker | Software Architect | *edbpostgres.com*
>> <http://edbpostgres.com;
>> "Don't Complain about Heat, Plant a TREE"
>>
>
>
> --
> *Thanks & Regards*
> *Akshay Joshi*
> *pgAdmin Hacker | Principal Software Architect*
> *EDB Postgres <http://edbpostgres.com>*
>
> *Mobile: +91 976-788-8246*
>


-- 
Thanks,
Aditya Toshniwal
pgAdmin Hacker | Software Architect | *edbpostgres.com*
<http://edbpostgres.com;
"Don't Complain about Heat, Plant a TREE"


Attachments:

  [image/png] image.png (177.9K, 3-image.png)
  download | view image

  [image/png] Screenshot 2022-03-16 at 7.02.34 PM.png (25.0K, 4-Screenshot%202022-03-16%20at%207.02.34%20PM.png)
  download | view image

  [image/png] Screenshot 2022-03-17 at 11.29.21 AM.png (70.5K, 5-Screenshot%202022-03-17%20at%2011.29.21%20AM.png)
  download | view image

  [image/png] Screenshot 2022-03-17 at 11.29.59 AM.png (82.7K, 6-Screenshot%202022-03-17%20at%2011.29.59%20AM.png)
  download | view image

  [image/png] Screenshot 2022-03-17 at 1.43.01 PM.png (315.4K, 7-Screenshot%202022-03-17%20at%201.43.01%20PM.png)
  download | view image

  [image/png] Screenshot 2022-03-17 at 1.44.10 PM.png (105.7K, 8-Screenshot%202022-03-17%20at%201.44.10%20PM.png)
  download | view image

  [image/png] Screenshot 2022-03-17 at 1.44.53 PM.png (49.7K, 9-Screenshot%202022-03-17%20at%201.44.53%20PM.png)
  download | view image

  [image/png] Screenshot 2022-03-17 at 1.45.54 PM.png (158.6K, 10-Screenshot%202022-03-17%20at%201.45.54%20PM.png)
  download | view image

  [application/octet-stream] RM6131.part7.patch (7.4K, 11-RM6131.part7.patch)
  download | inline diff:
diff --git a/web/pgadmin/static/js/components/CodeMirror.jsx b/web/pgadmin/static/js/components/CodeMirror.jsx
index c220ccb88..e6856123f 100644
--- a/web/pgadmin/static/js/components/CodeMirror.jsx
+++ b/web/pgadmin/static/js/components/CodeMirror.jsx
@@ -134,7 +134,7 @@ export function FindDialog({editor, show, replace, onClose}) {
   const search = ()=>{
     if(editor) {
       let query = parseQuery(findVal, useRegex, matchCase);
-      searchCursor.current = editor.getSearchCursor(query, editor.getCursor(true), !matchCase);
+      searchCursor.current = editor.getSearchCursor(query, 0, !matchCase);
       if(findVal != '') {
         editor.removeOverlay(highlightsearch.current);
         highlightsearch.current = searchOverlay(query, matchCase);
@@ -221,6 +221,8 @@ export function FindDialog({editor, show, replace, onClose}) {
   };
 
   const onReplaceAll = ()=>{
+    /* search from start */
+    search();
     while(searchCursor.current.from()) {
       onReplace();
     }
@@ -253,10 +255,13 @@ export function FindDialog({editor, show, replace, onClose}) {
       />}
 
       <Box display="flex" className={classes.marginTop}>
-        <PgIconButton title={gettext('Previous')} icon={<ArrowUpwardRoundedIcon />} size="xs" noBorder onClick={onFindPrev} />
-        <PgIconButton title={gettext('Next')} icon={<ArrowDownwardRoundedIcon />} size="xs" noBorder onClick={onFindNext}/>
+        <PgIconButton title={gettext('Previous')} icon={<ArrowUpwardRoundedIcon />} size="xs" noBorder onClick={onFindPrev}
+          style={{marginRight: '2px'}} />
+        <PgIconButton title={gettext('Next')} icon={<ArrowDownwardRoundedIcon />} size="xs" noBorder onClick={onFindNext}
+          style={{marginRight: '2px'}} />
         {replace && <>
-          <PgIconButton title={gettext('Replace')} icon={<SwapHorizRoundedIcon style={{height: 'unset'}}/>} size="xs" noBorder onClick={onReplace} />
+          <PgIconButton title={gettext('Replace')} icon={<SwapHorizRoundedIcon style={{height: 'unset'}}/>} size="xs" noBorder onClick={onReplace}
+            style={{marginRight: '2px'}} />
           <PgIconButton title={gettext('Replace All')} icon={<SwapCallsRoundedIcon />} size="xs" noBorder onClick={onReplaceAll}/>
         </>}
         <Box marginLeft="auto">
diff --git a/web/pgadmin/tools/sqleditor/static/js/components/QueryToolComponent.jsx b/web/pgadmin/tools/sqleditor/static/js/components/QueryToolComponent.jsx
index 7738dc33f..02ca27367 100644
--- a/web/pgadmin/tools/sqleditor/static/js/components/QueryToolComponent.jsx
+++ b/web/pgadmin/tools/sqleditor/static/js/components/QueryToolComponent.jsx
@@ -68,6 +68,11 @@ function setPanelTitle(panel, title, qtState, dirty=false) {
     setQueryToolDockerTitle(panel, true, title, qtState.current_file ? true : false);
   }
 }
+
+function onBeforeUnload(e) {
+  e.preventDefault();
+  e.returnValue = 'prevent';
+}
 export default function QueryToolComponent({params, pgWindow, pgAdmin, selectedNodeInfo, panel, eventBusObj}) {
   const containerRef = React.useRef(null);
   const forceClose = React.useRef(false);
@@ -111,7 +116,8 @@ export default function QueryToolComponent({params, pgWindow, pgAdmin, selectedN
   const modal = useModal();
 
   /* Connection status poller */
-  let pollTime = qtState.preferences.sqleditor.connection_status_fetch_time > 0 && !qtState.obtaining_conn ?
+  let pollTime = qtState.preferences.sqleditor.connection_status_fetch_time > 0
+    && !qtState.obtaining_conn && qtState.preferences?.sqleditor?.connection_status ?
     qtState.preferences.sqleditor.connection_status_fetch_time*1000 : -1;
   /* No need to poll when the query is executing. Query poller will the txn status */
   if(qtState.connection_status === CONNECTION_STATUS.TRANSACTION_STATUS_ACTIVE && qtState.connected) {
@@ -299,6 +305,7 @@ export default function QueryToolComponent({params, pgWindow, pgAdmin, selectedN
 
     /* WC docker events */
     panel?.on(window.wcDocker.EVENT.CLOSING, function() {
+      window.removeEventListener('beforeunload', onBeforeUnload);
       if(!forceClose.current) {
         eventBus.current.fireEvent(QUERY_TOOL_EVENTS.WARN_SAVE_DATA_CLOSE);
       } else {
@@ -313,6 +320,8 @@ export default function QueryToolComponent({params, pgWindow, pgAdmin, selectedN
     pgAdmin.Browser.Events.on('pgadmin-storage:finish_btn:create_file', (fileName)=>{
       eventBus.current.fireEvent(QUERY_TOOL_EVENTS.SAVE_FILE, fileName);
     }, pgAdmin);
+
+    window.addEventListener('beforeunload', onBeforeUnload);
   }, []);
 
   useEffect(()=>{
diff --git a/web/pgadmin/tools/sqleditor/static/js/components/QueryToolDataGrid/Editors.jsx b/web/pgadmin/tools/sqleditor/static/js/components/QueryToolDataGrid/Editors.jsx
index 16e62a51d..a37a98c63 100644
--- a/web/pgadmin/tools/sqleditor/static/js/components/QueryToolDataGrid/Editors.jsx
+++ b/web/pgadmin/tools/sqleditor/static/js/components/QueryToolDataGrid/Editors.jsx
@@ -93,7 +93,7 @@ const useStyles = makeStyles((theme)=>({
     lineHeight: '16px',
 
     '&.checked, &.unchecked': {
-      background: theme.palette.background.default,
+      background: theme.palette.grey[200],
     },
     '&.checked:after': {
       content: '\'\\2713\'',
diff --git a/web/pgadmin/tools/sqleditor/static/js/components/sections/MainToolBar.jsx b/web/pgadmin/tools/sqleditor/static/js/components/sections/MainToolBar.jsx
index e2d6f9bdd..13bcf507b 100644
--- a/web/pgadmin/tools/sqleditor/static/js/components/sections/MainToolBar.jsx
+++ b/web/pgadmin/tools/sqleditor/static/js/components/sections/MainToolBar.jsx
@@ -43,6 +43,7 @@ const useStyles = makeStyles((theme)=>({
     alignItems: 'center',
     gap: '4px',
     backgroundColor: theme.otherVars.editorToolbarBg,
+    flexWrap: 'wrap',
     ...theme.mixins.panelBorder.bottom,
   },
 }));
@@ -322,7 +323,7 @@ export function MainToolBar({containerRef, onFilterClick, onManageMacros}) {
     eventBus.fireEvent(QUERY_TOOL_EVENTS.EXECUTION_START, 'ROLLBACK;', null, true);
   };
   const executeMacro = (m)=>{
-    eventBus.fireEvent(QUERY_TOOL_EVENTS.EXECUTION_START, m.sql, null, true);
+    eventBus.fireEvent(QUERY_TOOL_EVENTS.TRIGGER_EXECUTION, null, m.sql);
   };
   const onLimitChange=(e)=>{
     setLimit(e.target.value);
diff --git a/web/pgadmin/tools/sqleditor/static/js/components/sections/Query.jsx b/web/pgadmin/tools/sqleditor/static/js/components/sections/Query.jsx
index 42dc05a3b..fa7c23707 100644
--- a/web/pgadmin/tools/sqleditor/static/js/components/sections/Query.jsx
+++ b/web/pgadmin/tools/sqleditor/static/js/components/sections/Query.jsx
@@ -237,11 +237,20 @@ export default function Query() {
     }
   };
 
-  const triggerExecution = (explainObject)=>{
+  const triggerExecution = (explainObject, macroSQL)=>{
     if(queryToolCtx.params.is_query_tool) {
-      let query = editor.current?.getSelection() || editor.current?.getValue() || '';
+      let external = null;
+      let query = editor.current?.getSelection();
+      if(!_.isUndefined(macroSQL)) {
+        const regex = /\$SELECTION\$/gi;
+        query =  macroSQL.replace(regex, query);
+        external = true;
+      } else{
+        /* Normal execution */
+        query = query || editor.current?.getValue() || '';
+      }
       if(query) {
-        eventBus.fireEvent(QUERY_TOOL_EVENTS.EXECUTION_START, query, explainObject);
+        eventBus.fireEvent(QUERY_TOOL_EVENTS.EXECUTION_START, query, explainObject, external);
       }
     } else {
       eventBus.fireEvent(QUERY_TOOL_EVENTS.EXECUTION_START, null, null);


view thread (25+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected]
  Subject: Re: [pgAdmin][RM6131] Port query tool to React
  In-Reply-To: <CAM9w-_nVaKUnG3k7LK+q9K8h-xcKtw0t79B9k-6Kz=_F8dNwrw@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox