dbeaver / dbeaver

Free universal database tool and SQL client
https://dbeaver.io
Apache License 2.0
39.3k stars 3.4k forks source link

sql edit window text does not exist #35371

Open liuzhe101 opened 3 weeks ago

liuzhe101 commented 3 weeks ago

Description

After closing Dbeaver, open Dbeaver again, and all the sql in the previously opened sql window will be cleared. This is very fatal. For example, if Dbeaver crashes and you force close it and open it again, then all the sql written before will not exist. This is because Dbeaver does not support temporary storage. Or a bug? Is it possible to do the same as Navicat, so that the window will not be cleared after closing the application and opening it again?

DBeaver Version

2024.2.0

Operating System

windows 10/mac os 15

Database and driver

Postgres

Steps to reproduce

No response

Additional context

No response

E1izabeth commented 2 weeks ago

Do you open SQL Editor or Console? image SQL Editor is a file on the file system - it doesn't disappear between launches. Console is an editor, that is not saved somewhere after closing it. Also you can turn Console to SQL Editor by saving it with Ctrl+S or Save action.

I don't quite understand, what do you mean by "This is because Dbeaver does not support temporary storage". Could you clarify it?

liuzhe101 commented 2 weeks ago

您打开的是 SQL 编辑器还是控制台? SQL 编辑器是文件系统上的文件 - 它在启动之间不会消失。 控制台是一个编辑器,关闭后不会保存在某个地方。您也可以通过使用 Ctrl+S 或“保存”操作将其保存,将控制台转换为 SQL 编辑器。 图像

我不太明白,“这是因为 Dbeaver 不支持临时存储”是什么意思。你能解释一下吗?

Where to write sql statements, such as here

image

It will not retain any information when it crashes or closes DBeaver in some cases. If Dbeaver crashes, force ejection through Activity Monitor will lose the sql statement; For example, if you export 10W data to excel, if Dbeaver is stuck and you close Dbeaver or force it out, all the sql without command+s will be lost. Even if we don't have command+s to save as a script, the sql should be temporarily stored in On the computer, it is displayed after closing and opening again;

E1izabeth commented 2 weeks ago

@liuzhe101 you can turn on setting Auto-save after any modifications in Preferences -> Editors -> SQL Editor to get your script always automatically saved after any changes.

E1izabeth commented 2 weeks ago

Could you explain, what does "10W data" means? Are you talking about the size of rows? Could you tell us more about the issue, that led you to force close DBeaver?

liuzhe101 commented 2 weeks ago

您能解释一下“10W 数据”是什么意思吗?您指的是行的大小吗?您能告诉我们更多导致您强制关闭 DBeaver 的问题吗?

Yes, I am simulating the scenario when Dbeaver is stuck and unresponsive, and then forcibly close the Dbeaver app. Then the sql content in the previous windows will be lost without command+s. Under normal circumstances, the data will not be lost if you close the program and reopen it.

liuzhe101 commented 2 weeks ago

@liuzhe101 you can turn on setting Auto-save after any modifications in Preferences -> Editors -> SQL Editor to get your script always automatically saved after any changes.

I don't need to store it locally as a script. If it is stored locally, the script will not be deleted when I close the sql editor window? I hope it can be temporarily stored. Even when Dbeaver crashes, the content will not be lost when I force close the app and open the Dbeaver app again; but when I close the sql editor window myself, the script will be deleted and will not be stored locally.

liuzhe101 commented 2 weeks ago

您能解释一下“10W 数据”是什么意思吗?您指的是行的大小吗?您能告诉我们更多导致您强制关闭 DBeaver 的问题吗?

Please reproduce and solve this problem, because Dbeaver has exceptions from time to time, causing all unmommand+s sql editor content to be lost.

E1izabeth commented 2 weeks ago

We can try reproducing the issue that makes DBeaver freeze. Could you provide any steps to reproduce it?

liuzhe101 commented 1 week ago

我们可以尝试重现导致 DBeaver 冻结的问题。您能提供重现该问题的任何步骤吗?

For example, you can generate more than 8,000 insert into statements in a sql editing area and use command+a to execute them all with more than a dozen fields. In my mind, it seems that it will cause Dbeaver to get stuck, and then the task manager will end. Shut down the Dbeaver app and open other temporary sql editors (those without command+s) and the content will be gone. As long as Dbeaver crashes and gets stuck, it will reappear, and the contents that have not been edited by command+s sql will be lost.

Destrolaric commented 5 days ago

@liuzhe101 Hi, we can't do anything about force exit. But we can do the following:

  1. Warning if script opened is too large to handle for DBeaver and suggest launching it through task functionality
  2. Optimize launch script via task to not store it in memory during execution
liuzhe101 commented 5 days ago

@liuzhe101您好,我们无法对强制退出采取任何措施。但我们可以执行以下操作:

  1. 如果打开的脚本太大而 DBeaver 无法处理,则会发出警告,并建议通过任务功能启动它
  2. 通过任务优化启动脚本,在执行期间不将其存储在内存中

There is nothing wrong with the idea, but I think it should not affect other SQL editing windows and cause SQL statements to be lost. It should be temporarily stored at the moment it is input, and it should not be lost even if it crashes. This phenomenon does not occur with Navicat. After they crash, the statements that open the sql editing window again exist.