654 Commits

Author SHA1 Message Date
148b04e2d4 Try to prevent inner exception at the end of TMySQLQuery.Col. Hopefully reveals a more meaningful error message for issue #904 2020-12-17 12:46:26 +01:00
281a53b88a Limit rows per exported INSERT to 1000 for MSSQL. Introduced MaxRowsPerInsert property per connection type. 10000 for all other types. Closes #1189 2020-12-17 11:43:29 +01:00
1da0ad2092 Prefer SUBSTR() over LEFT() function in PostgreSQL data grid. Closes #1259 2020-12-15 17:56:41 +01:00
04a32cb035 Issue #1243: fix crash in reconnect, due to free'd list of IS objects 2020-12-13 08:17:49 +01:00
cb77a602b5 Code cleanup in TConnectionParameters.NetTypeName and introduce StrictDetect param in TConnectionParameters.IsMySQL, to have a clear distinction for TDBConnection.IsTextDefault, where I was on the way to re-break issue #1099. 2020-12-11 14:17:17 +01:00
bd0dca7f1d Rename network type "MySQL ..." again to "MariaDB or MySQL ...", and name it "MySQL" only if we're sure it's not anything else. This is a bit hacky, as I have to leave IsMySQL a bit inexact, so it still matches servers with version_comment="Source distribution" (see issue #1099) 2020-12-11 11:13:59 +01:00
2eef57ae1c Retrieve column details through IS.columns even if IS schema is hidden by session setting. Closes #1243 . Preferring a hardcoded over dynamic list of existing tables in IS schema. 2020-12-11 10:19:59 +01:00
a0f45439ef Issue #477: Attempt to fix crash in main form due to refreshed database objects after creating a table via CSV detector:
* TDBConnection.GetDbObjects now leaves old object references intact if a table still exists after a refresh
* Restructure caching of columns, keys and foreign keys in generic TDictionary typed lists. This should make GetTableColumns and friends safe against endless recursion.
* Probably fixes issue #319
2020-12-05 17:08:49 +01:00
8201ac6169 Leave Datatype.MaxSize for CSV layout detection, and introduce Datatype.DefaultSize for deciding whether a column gets a length definition. Closes #1245 2020-12-03 08:00:59 +01:00
3c18c08fb7 Show reasonable error dialog when current query is empty and user tries to run "Explain current query" or "Explain analyzer for current query". Closes #1240 2020-12-02 17:32:06 +01:00
5df6149db4 Issue #477: Implement CSV layout detection, in a new dialog, callable through a "<New table>" item. Detection yet limited to integers, floats and text column types. 2020-11-29 14:25:29 +01:00
dcd43bc843 Enable MYSQL_OPT_LOCAL_INFILE, seems still required on some systems for importing local CSV files 2020-11-23 17:53:09 +01:00
b9b5976413 Fix slow data exports of large MS SQL tables, by introducing ORDER BY .. OFFSET .. FETCH clauses in SELECT's. Reduces the chunks to ~10000 rows. Larger results seem to take more time for iterating through rows. Closes #343 2020-11-20 14:51:25 +01:00
b22c3fd815 Dynamic default value for library session setting, depending on its network type. Closes #1010 2020-10-26 20:02:12 +01:00
c4dbdfe948 Enable loading SQLite extensions. Closes #1186 2020-10-12 21:03:22 +02:00
de97595bfb MSSQL: Cast TEXT fields to NVARCHAR before applying LEFT() function. Fixes issue #1136 2020-10-11 13:56:19 +02:00
e8248c4177 Fix LEFT() clause in data grid with NTEXT column on MSSQL. Closes #1136. 2020-08-22 08:00:28 +02:00
557a0acaf7 Unquote table name when retrieving via 123::regclass result. Closes #1124 2020-08-13 06:57:37 +02:00
6e3b811233 Use TTableColumn.CastAsText in SELECT query for data tab, when applying LEFT() on large column. Closes #1122 2020-08-11 19:35:23 +02:00
d577b06fe8 In grid updates and deletes, support key column values with international characters using MSSQL's "N" prefix. Closes #1115 2020-08-09 08:22:15 +02:00
c33624aa12 Respect user's plink timeout setting when plink takes longer than 2s after the first text output. Closes #1114 2020-08-09 07:52:38 +02:00
a34e2ab690 Set "0" as default port for new MSSQL TCP/IP connections, which leaves the port away from the connection string, enabling auto-detection. See https://www.heidisql.com/forum.php?t=34256#p36709 2020-08-07 07:23:07 +02:00
ad706f5519 Issue #1114: send Enter after plink anti-spoof output "Access granted. Press Return to begin session" 2020-08-06 16:46:30 +02:00
f2af43f1e0 Fix all 11 compiler hints and 5 warnings 2020-08-06 13:49:32 +02:00
76aaf87216 Prevent access violation in DBTree.GetImageIndex, with no connection on connection root node 2020-08-05 08:30:04 +02:00
eb75818ea9 Prefer string constants from TTableKey over hardcoded literals 2020-08-01 19:20:26 +02:00
dc8526996c Fix version detection in TConnectionParameters.IsMySQL, don't expect the word "mysql" in version or version_comment variable. Ensures we detect CURRENT_TIMESTAMP default value in TDBConnection.IsTextDefault correctly (among other things). Closes #1099 2020-07-24 07:25:18 +02:00
04e475ad68 Handle postponed log lines as long as main window was not fully created, and display them later. This reveals very early log messages, good for debugging. 2020-07-11 09:23:19 +02:00
955ba58a66 Issue #350: use various SQLite queries as working replacements in ProxySQL mode, to get the Table and Data tabs working 2020-07-07 11:28:29 +02:00
d8b99a4ff2 Issue #350:
* mark ProxySQL network type as experimental
* use TComboboxEx for network types, with icons and ProxySQL sorted after the regular MySQL types
* more exact network type name for IsMySQL
2020-07-06 18:14:00 +02:00
2c47ef1b53 Issue #350: support displaying server uptime of ProxySQL Admin servers 2020-07-04 19:11:29 +02:00
193b22ba16 Issue #350: introduce basic support for connecting to ProxySQL Admin servers, via new network type 2020-07-04 18:32:46 +02:00
bca89ec2f3 Issue #350: Roll back modifications I made for supporting ProxySQL Admin interface. There would be too many more issues. 2020-07-02 20:06:07 +02:00
7abc1d1f67 Prefer ILIKE over LIKE operator on PostgreSQL servers, for auto-generated queries, to overcome errors with double columns. See https://www.heidisql.com/forum.php?t=36500 2020-07-02 14:00:36 +02:00
3b7cdf1583 Fix wrong row index used in TSQLiteQuery.Col and TSQLiteQuery.IsNull. Fixes loading more rows after first page on large SQLite tables. Closes #1053 2020-06-27 18:59:04 +02:00
561bba95d0 Leave numeric precision and scale away from DOUBLE column detection if either of them is empty. Closes #953 2020-06-27 18:33:10 +02:00
ea68cddb24 Use different sets of characters not requiring quotes, per connection type. Use that to force quotes around columns with uppercase characters in PostgreSQL. Closes #1072. 2020-06-27 16:10:30 +02:00
1981afdf3b Issue #120: Allow unsupported ADODB providers per registry hack 2020-06-24 07:30:43 +02:00
c7c07aab92 Issue #350: change startup queries for MySQL:
* SELECT NOW() => SELECT CURRENT_TIMESTAMP, which should be working for ProxySQL, as well as downward for MySQL 4.1
* SHOW STATUS => just see if that runs and show errors in the console, the only vital variable we use here is FServerUptime
2020-06-17 16:48:23 +02:00
9ffae88c5d Issue #350: make detection of "proxy admin module" more exact 2020-06-17 15:16:14 +02:00
3d27baf1c3 Issue #350: move first call to Connection.GetThreadId to DoAfterConnect, where we have the ServerVersion string, which in turn we can use for disabling SELECT CONNECTION_ID() 2020-06-17 14:59:13 +02:00
900e0dd119 Cast relpages to bigint, preventing out-of-range SQL error in PostgreSQL. Closes #1038 2020-05-20 12:12:02 +02:00
407d5ad3ed Issue #1028: Code cosmetic in TDBObject.GetTableColumns 2020-05-14 20:57:38 +02:00
6026d364ec Issue #1028: Optimize unused code in TDBConnection.GetDbObjects away, which looked for cached object lists which specific OnlyNodeType property, which we don't cache anyway 2020-05-14 20:51:00 +02:00
b45070e8c8 Issue #1028: Fix one-time recursion in TMySQLConnection.FetchDbObjects, caused by accessing InformationSchemaObjects, which in turn calls GetDBObjects and then again FetchDbObjects. More dramatically, this caused GetTableColumns to do an endless loop with two cache entries for "information_schema". This also fixes many of the v11.0 crashes in TAppSettings.PrepareRegistry, which were just a symptom of that endless loop. Thanks to als2020 on Github for pointing me in this direction. 2020-05-14 20:45:33 +02:00
7fbf88bebc Optimize SQL query in TDBConnection.GetTableForeignKeys. See https://www.heidisql.com/forum.php?t=36212 2020-05-14 19:36:21 +02:00
afe3342168 Reset session variables cache on database change, so "collation_database" is refreshed for creating a new table. Closes #1030 2020-05-13 08:10:05 +02:00
883c5287e6 Issue #1028: Compatibility to old MySQL 4.x servers where SHOW FULL COLUMNS did not yet have "Collation" and "Comment" columns. 2020-05-13 08:08:31 +02:00
fb41077613 Stop showing a length for MySQL/MariaDB data types which don't support it. Even leave the length away for TEXT + BLOB types if it's the maximum (default) value. Closes #1023 2020-05-07 18:32:15 +02:00
53d0316144 Fix detection of UNSIGNED flag on *INT columns without length (MySQL 8 only?). See https://www.heidisql.com/forum.php?t=36170 2020-05-04 16:56:24 +02:00