Giter Club home page Giter Club logo

querym's People

Contributors

dependabot[bot] avatar dglalperen avatar ebfood avatar invisal avatar jimmymeister98 avatar rathpanha avatar rin-yato avatar rithythul avatar seanghay avatar senior-code avatar sudeepmahato16 avatar thormengkheang avatar vatana7 avatar vicheanath avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

querym's Issues

Request to Add React DevTool

Description

Hello @invisal. I believe React DevTool is an essential tool for development in our project. During the recent development, I have actually been adding the DevTool locally each time, can we add React DevTool to the project?

My attempt

I tried electron-devtools-installer , which is already one of the project's dependencies and the recommended approach by the official documentation. However, this method didn't work: electron issue#36545

Currently, I'm using the workaround mentioned at react issue#25843, which involves temporarily downgrading my extension and loading it locally. However, before each commit, I need to revert the relevant changes.

Do you have any good solutions for this?

Select per row

Please kindly select per row because If I want to know that value on which row

Code auto complete the ENUM

When user type "=", if we detect that the field is the ENUM field, then it should provide the possible ENUM value.

Improve to auto update

Right now, it is auto update silently in the background. User has no control and what is the downloading progress.

  • We should have popup and ask user if they want to update. It should not update without user consent.
  • When user agree, it should also show the download progress.
  • Then once the download is finished, there should be button to restart the app

Remove a row of the query result

This will be a bit challenging to implement as there are many components at play here. But let try to understand on how it works. First there are 2 important components to understand.

How to find which row is selected

We don't have row selection feature. We can either use cell selection as row selection or we can implement row selection (#10).

Decide if row can be deleted

We also need to find a way to decide if the row can be deleted. The row can be deleted if and only if the result contains only one table. Query with INNER JOIN can contains 2 or more tables. It is not possible to remove if there are mixing of more than 1 table. The result must have PRIMARY KEY columns

Record which rows are deleted

QueryResultChangeProvider is just a context that wrap around ResultChangeCollector (https://github.com/invisal/query-master/blob/main/src/libs/ResultChangeCollector.ts). Currently, it only support recording which cell is being changed. We need to add ability to record which rows has been deleted.

Transform changed to plans

When we commit, we will call getSqlPlanFromChange (https://github.com/invisal/query-master/blob/main/src/libs/GenerateSqlFromChanges.ts). This will prepare the plans from changes

Transform plans to SQL

Once we have the plan, we transform the plan into raw SQL using this function. https://github.com/invisal/query-master/blob/main/src/libs/GenerateSqlFromPlan.ts

If everything is correctly implemented, it should work. I believe we need to implement row selection first before we can continue this feature. I will write up how to implement the row selection shortly as well.

Schema doesnt update

When creating a new table, even if it runs successfully, it wont show up in the sidebar. If console.log(schema), it shows outdated schema without the new table that has just been created

Getting 'undefined' when selecting a database.

Issue Description

image
When I try to select a database, I'm getting a list of 'undefined'.
The issue is occurring in MySQLCommonInterface.ts , where the properties defined in the interface MySqlColumn are in uppercase, while the corresponding data in the response is in lowercase. Due to case sensitivity, retrieving the property is returning 'undefined'

Environment Information

  • Operating System: Windows10
  • Version of MySQL: 5.7

Add row selection support

We can extend the OptimizedTable (https://github.com/invisal/query-master/blob/main/src/renderer/components/OptimizeTable/index.tsx) to support row selection.

We should expose two properties:

  • selectedRowsIndex is an array of index of rows that has been selected
  • onSelectedRowsIndexChanged will give the array of index when user interact with the table.

How user interact with the table to change the row selection:

  • When user click on a cell, it will select a single row
  • When user CTRL + Click, it will select another row without deselect the previous row. (this is multiple select).
  • When user SHIFT + Click, it will select from previous last row select to the current row (multiple range select).

Hotkey proposal

I think F9 isnt the best hotkey to execute sql. Since many people use keyboard that cant easily type the F9 key. Maybe command/ctrl + enter is a good hotkey?

Stuck on update app

When I use in windows it's not update. It show 100% but not popup anything to update and I try to restart also can not

image

I used in mac It's work fine

Properly syntax highlight MySQL dialet

Currently, when we type

CREATE DATABASE foo;

The database keyword does not highlight as keyword. I believe we didn't config the editor properly to handle MySQL dialet

Connection error

How do I connect it with my database?

Using Mac with apple silicon chip.

Tab should be draggable

Currently, our tab does is not draggable to re-arrange its position. We can make it draggable like in Visual Studio Code as attached video.

WelcomeScreen.tsx.-.query-master.-.Visual.Studio.Code.2023-06-15.08-53-29.mp4

Where to implement it?

The tab component is located in this files.
https://github.com/invisal/query-master/blob/main/src/renderer/components/WindowTab/index.tsx

We can add drag functionality in this place. We can expose two more properties:

<WindowTab
   onTabChanged={setTab}
   draggable
 />
  • draggable means that it is possible to drag tab. There are some places where we want the tab to stay in fixed position.
  • onTabChanged will change the tab states when drag is success.

Some stuffs that we need to improve after I have use 30 minutes

  1. Tab to fill the auto completion suggestion, current it does not but add tab to the current line. The good new it works normally with Enter.
  2. It should show loading while it try to fetch or execute query, current it does its job silently
  3. Crash when we keep click on previous page button until there is no page to show. Anyway, it does not crash on click on next button, but it seems not to look smart to allow user to click on next page when there is nothing to show
  4. Double on connection name to open query panel. It is okay if the connection is correct, but it also open with empty connection string. In this case, I have no way to go back to set my connection but force close and reopen
  5. It is super annoying that it cannot remember my connection even I had saved it. I believe that is unintentional
  6. It keeps showing confirmation when I try to run a query. It looks professional to be confirmed. For me personally, it is annoying. It is better to have option not to show.
  7. Query tab name should be unique and be able to save.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.