libgda issueshttps://gitlab.gnome.org/GNOME/libgda/-/issues2020-10-11T00:50:45Zhttps://gitlab.gnome.org/GNOME/libgda/-/issues/230gda_value_new_blob_from_file didn't read data into memory2020-10-11T00:50:45ZTAO ZUHONGgda_value_new_blob_from_file didn't read data into memoryI found libgda 5.2.9 and master bransh have the same issue:
function gda_value_new_blob_from_file didn't read file content into memory, have tested in my app
```c
GValue * gda_value_new_blob_from_file (const gchar *filename)
{
GValue *v...I found libgda 5.2.9 and master bransh have the same issue:
function gda_value_new_blob_from_file didn't read file content into memory, have tested in my app
```c
GValue * gda_value_new_blob_from_file (const gchar *filename)
{
GValue *value;
GdaBlob *blob;
blob = g_new0 (GdaBlob, 1);
blob->op = _gda_dir_blob_op_new (filename);
value = g_new0 (GValue, 1);
g_value_init (value, GDA_TYPE_BLOB);
g_value_take_boxed (value, blob);
return value;
}
------------> Fixed
GValue * gda_value_new_blob_from_file (const gchar *filename)
{
GValue *value;
GdaBlob *blob;
blob = g_new0 (GdaBlob, 1);
blob->op = _gda_dir_blob_op_new (filename);
g_return_val_if_fail(gda_blob_op_read_all(blob->op, blob), null);
value = g_new0 (GValue, 1);
g_value_init (value, GDA_TYPE_BLOB);
g_value_take_boxed (value, blob);
return value;
}
```6.2https://gitlab.gnome.org/GNOME/libgda/-/issues/229SSl support for PostgreSQL2020-10-11T02:39:24ZPavlo SolntsevSSl support for PostgreSQLCurrently, PostgreSQL uses `requiressl` internally. This option is obsolete.
Form PostgreSQL [documentation](https://www.postgresql.org/docs/12/libpq-connect.html)
```
requiressl
This option is deprecated in favor of the sslmode se...Currently, PostgreSQL uses `requiressl` internally. This option is obsolete.
Form PostgreSQL [documentation](https://www.postgresql.org/docs/12/libpq-connect.html)
```
requiressl
This option is deprecated in favor of the sslmode setting.
If set to 1, an SSL connection to the server is required (this is equivalent to sslmode require).
libpq will then refuse to connect if the server does not accept an SSL connection. If set to 0 (default),
libpq will negotiate the connection type with the server (equivalent to sslmode prefer). This option is only
available if PostgreSQL is compiled with SSL support.
```
As a replacemnt, `sslmode` should be used:
```
sslmode
This option determines whether or with what priority a secure SSL TCP/IP connection will be negotiated
with the server. There are six modes:
disable
only try a non-SSL connection
allow
first try a non-SSL connection; if that fails, try an SSL connection
prefer (default)
first try an SSL connection; if that fails, try a non-SSL connection
require
only try an SSL connection. If a root CA file is present, verify the certificate in the same way as
if verify-ca was specified
verify-ca
only try an SSL connection, and verify that the server certificate is issued by a trusted certificate
authority (CA)
verify-full
only try an SSL connection, verify that the server certificate is issued by a trusted CA and that the
requested server host name matches that in the certificate
See Section 33.18 for a detailed description of how these options work.
sslmode is ignored for Unix domain socket communication. If PostgreSQL is compiled without SSL support,
using options require, verify-ca, or verify-full will cause an error, while options allow and prefer will be
accepted but libpq will not actually attempt an SSL connection.
```
The proposal here is to obsolete `USE_SSL` parameter in the connection string and use `SSLMODE` instead.
We need also make sure that `libssl` and/or `libcrypto` are initialized as described in the [doc](https://www.postgresql.org/docs/12/libpq-ssl.html)6.2https://gitlab.gnome.org/GNOME/libgda/-/issues/228Add example code: read and update date/time/datetime/timestamp/timespan colum...2020-10-11T00:57:57ZTAO ZUHONGAdd example code: read and update date/time/datetime/timestamp/timespan column typeAdd example code: read and update date/time/datetime/timestamp/timespan column typeAdd example code: read and update date/time/datetime/timestamp/timespan column type6.2https://gitlab.gnome.org/GNOME/libgda/-/issues/226Add example code: data row cursor handle for large dataset2020-10-11T01:00:45ZTAO ZUHONGAdd example code: data row cursor handle for large datasetAdd example code: data row cursor handle for large datasetAdd example code: data row cursor handle for large dataset6.2https://gitlab.gnome.org/GNOME/libgda/-/issues/225Add example code: Connect database with all kinds of authentication method2020-10-11T01:01:23ZTAO ZUHONGAdd example code: Connect database with all kinds of authentication methodAdd example code: Connect database with all kinds of authentication method
MySQL: Native / SHA-256 / Caching SHA2 / Windows NTLM / LDAP /
PostgreSQL: Password / GSSAPI / Windows NTLM / LDAP
。。。。Add example code: Connect database with all kinds of authentication method
MySQL: Native / SHA-256 / Caching SHA2 / Windows NTLM / LDAP /
PostgreSQL: Password / GSSAPI / Windows NTLM / LDAP
。。。。6.2https://gitlab.gnome.org/GNOME/libgda/-/issues/224Add example code: Connect database with SSL2020-10-11T01:00:27ZTAO ZUHONGAdd example code: Connect database with SSLAdd example code: Connect database with SSL(MySQL/PostgreSQL)Add example code: Connect database with SSL(MySQL/PostgreSQL)6.2https://gitlab.gnome.org/GNOME/libgda/-/issues/218Doc: examples of creating, changing and discarding tables, inserting data, re...2020-10-11T00:55:48ZDanilo GaleteDoc: examples of creating, changing and discarding tables, inserting data, removing data and selecting data.Can more practical examples of using the library be added to the documentation? For example: connecting to databases, creating a table, querying data in tables, updating data, removing data, among other use cases. Demonstrate to users wh...Can more practical examples of using the library be added to the documentation? For example: connecting to databases, creating a table, querying data in tables, updating data, removing data, among other use cases. Demonstrate to users what are the best practices for certain cases. Warn if the memory will be released after use, for example: GdaDbTable free the memory with g_object_unref ().
Documentation with these resources will help many people learn and use the library correctly. More people will interact with the project.
For example if we type in google examples of using libgda, we don't find many results and the vast majority are from very old versions.6.2https://gitlab.gnome.org/GNOME/libgda/-/issues/217MySQL, SQLite: rewrite ProviderMySQL and ProviderSQLite tests2021-01-31T03:30:52ZPavlo SolntsevMySQL, SQLite: rewrite ProviderMySQL and ProviderSQLite testsIn the current form, MySQL provider test `ProviderMySQL` test name contains a bug. It returns `0` when it fails. Also, tests inside do not create all tables needed, e.g. `tstest`. We need to rewrite this test and probably use the same te...In the current form, MySQL provider test `ProviderMySQL` test name contains a bug. It returns `0` when it fails. Also, tests inside do not create all tables needed, e.g. `tstest`. We need to rewrite this test and probably use the same test as `PostgreSQL` uses.6.2https://gitlab.gnome.org/GNOME/libgda/-/issues/216Add support for MariaDB2021-01-31T03:25:50ZPavlo SolntsevAdd support for MariaDBAdd support for MariaDB as a separate provider or as part of MySQL. It looks like MySQL and MariaDB can be handled by the same provider.Add support for MariaDB as a separate provider or as part of MySQL. It looks like MySQL and MariaDB can be handled by the same provider.6.2https://gitlab.gnome.org/GNOME/libgda/-/issues/196Port unit tests to GLib.Test2019-11-22T14:30:13ZPavlo SolntsevPort unit tests to GLib.Test6.2https://gitlab.gnome.org/GNOME/libgda/-/issues/195Remove static variables2021-01-31T03:28:45ZDaniel Espinosa OrtizRemove static variablesAny static variableS, if initialized to objects, should be freed in order to avoid memory leaks.
Check on the following locations to see if there potential memory leaks or thread sharing issues.
This should be related to #194
* [ ] ...Any static variableS, if initialized to objects, should be freed in order to avoid memory leaks.
Check on the following locations to see if there potential memory leaks or thread sharing issues.
This should be related to #194
* [ ] GDA at libgda/gda-connection.c:6221
* [ ] GDA at libgda/gda-connection.c:85
* [x] GDA at libgda/gda-meta-store.c:493
* [ ] GDA at libgda/sqlite/gda-sqlite-meta.c:87
* [x] GDA at libgda/sqlite/gda-sqlite-provider.c:780
* [ ] GDA at libgda/sqlite/gda-sqlite-provider.c:1011
* [x] GDA at libgda/sqlite/gda-sqlite-provider.c:1485
* [x] GDA at libgda/sqlite/gda-sqlite-provider.c:1931
* [x] GDA at libgda/sqlite/gda-sqlite-provider.c:1816
* [x] GDA at libgda/sqlite/gda-sqlite-provider.c:1855
* [x] GDA at libgda/sqlite/gda-sqlite-provider.c:1895
* [ ] GDA at libgda/sqlite/virtual/gda-vconnection-data-model.c:266
* [x] GDA at libgda/gda-util.c:829
* [ ] GDA at libgda/gda-server-provider.c:880
* [ ] GDA at libgda/gda-data-pivot.c:101
* [ ] GDA at libgda/gda-data-pivot.c:102
* [x] GDA at libgda/gda-meta-struct.c:856
* [ ] GDA at libgda/sql-parser/gda-sql-parser.c:880
* [ ] GDA at libgda/sql-parser/gda-sql-parser.c:881
* [ ] GDA at libgda/sql-parser/gda-statement-struct.c:79
* [ ] GDA at libgda/sql-parser/gda-statement-struct.c:78
* [ ] GDA at libgda/gda-data-proxy.c:3552
* [ ] GDA at libgda/gda-data-proxy.c:109
* [ ] GDA at libgda/gda-data-proxy.c:111 Can be related to #194
* [ ] GDA at libgda/gda-config.c:324
* [ ] GDA at libgda/gda-provider-meta.c:38
* [ ] GDA at libgda/binreloc/binreloc.c:283
* [ ] GDA at libgda/binreloc/gda-binreloc.c:29
* [ ] GDA at libgda/thread-wrapper/background.c:96
* [ ] GDA at libgda/thread-wrapper/background.c:75
* [ ] GDA at libgda/thread-wrapper/gda-worker.c:302
* [ ] GDA at libgda/thread-wrapper/test-worker.c:248:
* [ ] GDA at libgda/thread-wrapper/test-worker.c:265:
* [ ] GDA at libgda/thread-wrapper/test-worker.c:586:
* [ ] GDA at libgda/thread-wrapper/test-worker.c:822:
* [ ] PostgreSQL at providers/reuseable/postgres/gda-postgres-meta.c
* [ ] PostgreSQL at providers/postgres/gda-postgres-provider.c:302
* [ ] PostgreSQL at providers/postgres/gda-postgres-provider.c:1583
* [ ] PostgreSQL at providers/postgres/gda-postgres-provider.c:1692
* [ ] PostgreSQL at providers/postgres/gda-postgres-provider.c:1923
* [ ] MySQL at providers/reuseable/mysql/gda-mysql-meta.c
* [ ] MySQL at providers/mysql/gda-mysql-provider.c:244
* [ ] MySQL at providers/mysql/gda-mysql-provider.c:393
* [ ] JDBC at providers/jdbc/gda-jdbc-provider.c:332
* [ ] JDBC at providers/jdbc/gda-jdbc-provider.c:147
* [ ] JDBC at providers/jdbc/gda-jdbc-provider.c:148
* [ ] JDBC at providers/jdbc/gda-jdbc-meta.c:50
* [ ] JDBC at providers/jdbc/libmain.c:73
* [ ] JDBC at providers/jdbc/libmain.c:72
* [ ] JDBC at providers/jdbc/libmain.c:60
* [ ] JDBC at providers/jdbc/libmain.c:51
* [ ] JDBC at providers/jdbc/libmain.c:43
* [ ] JDBC at providers/jdbc/libmain.c:46
* [ ] JDBC at providers/jdbc/gda-jdbc-test.c:70
* [ ] JDBC at providers/jdbc/GdaJValue.c:29
* [ ] JDBC at providers/jdbc/GdaJValue.c:30
* [ ] JDBC at providers/jdbc/GdaJValue.c:31
* [ ] WEB at providers/web/gda-web-util.c:310
* [ ] WEB at providers/web/gda-web-provider.c:237
* [ ] WEB at providers/web/libmain.c:336.2https://gitlab.gnome.org/GNOME/libgda/-/issues/184GdauiForm: segmentation fault at data change validation2019-04-08T22:27:35ZDaniel Espinosa OrtizGdauiForm: segmentation fault at data change validation6.2https://gitlab.gnome.org/GNOME/libgda/-/issues/171Browser: opened connections should use "Open New Connection" for button2019-03-08T23:32:49ZDaniel Espinosa OrtizBrowser: opened connections should use "Open New Connection" for buttonButton lable's "Connection" is not clear enough, because it add new connectionsButton lable's "Connection" is not clear enough, because it add new connections6.2https://gitlab.gnome.org/GNOME/libgda/-/issues/157Write tests to test all DDL operations2021-01-31T03:29:34ZPavlo SolntsevWrite tests to test all DDL operationsWe need a test to test all DDL operations. Starting from CREATE DB and go over all available DDL operation. This test can be based on GdaDDlCreator (or renamed equivalent). Also, it can be a good platform for test driven development for ...We need a test to test all DDL operations. Starting from CREATE DB and go over all available DDL operation. This test can be based on GdaDDlCreator (or renamed equivalent). Also, it can be a good platform for test driven development for new DDL module. It may require to introduce new objects, e.g. GdaDbInfo to store information about DB itself, GdaUserInfo to store information about user. Additional control over parameters, e.g. "IF EXISTS" should be added. This is a starting list of operation we should implement for most common DBs. Items marked with (*) are subject for review and discussion.
SQLite3:
* [x] CREATE_TABLE
* [x] CREATE_VIEW
* [x] CREATE_DB
* [x] ADD_COLUMN
* [x] RENAME_TABLE
* [x] DROP_VIEW
* [x] CREATE_INDEX
* [x] DROP_INDEX
* [x] DROP_TABLE
PostgreSQL:
* [ ] CREATE_DB
* [x] CREATE_INDEX
* [ ] CREATE_ROLE
* [ ] CREATE_USER*
* [x] CREATE_TABLE
* [x] CREATE_VIEW
* [x] ADD_COLUMN
* [ ] DROP_COLUMN
* [ ] DROP_DB
* [x] DROP_INDEX
* [ ] DROP_ROLE
* [ ] DROP_USER
* [x] DROP_TABLE
* [x] DROP_VIEW
* [x] RENAME_TABLE
MySQL:
* [ ] CREATE_DB
* [ ] CREATE_TABLE
* [ ] CREATE_VIEW
* [ ] ADD_COLUMN
* [ ] DROP_COLUMN
* [ ] DROP_DB
* [ ] DROP_INDEX
* [ ] DROP_TABLE
* [ ] DROP_VIEW
* [ ] RENAME_TABLE
* [ ] COMMENT_COLUMN
* [ ] COMMENT_TABLE
* [ ] CREATE_INDEX
* [ ] CREATE_USER*
* [ ] DROP_ROLE*
* [ ] DROP_USER*
* [ ] CREATE_ROLE*6.2Pavlo SolntsevPavlo Solntsevhttps://gitlab.gnome.org/GNOME/libgda/-/issues/31Port GdaConfig to GSettings2019-04-16T18:57:07ZDaniel Espinosa OrtizPort GdaConfig to GSettingsCurrent implementation is a central place to locale DSN connection's configuration. Now we have GSettings, a better place to locale central user's configurations, so is better to port GdaConfig to use GSettings.Current implementation is a central place to locale DSN connection's configuration. Now we have GSettings, a better place to locale central user's configurations, so is better to port GdaConfig to use GSettings.6.2https://gitlab.gnome.org/GNOME/libgda/-/issues/27Use typography as in HIG2018-10-10T17:21:23ZRafael FontenelleUse typography as in HIG[HIG Typography](https://developer.gnome.org/hig/stable/typography.html) tells to “take advantage of Unicode”. I could work on replaced characters using Unicode in strings of libgda and presenting it as a Merge Request. Would it be somet...[HIG Typography](https://developer.gnome.org/hig/stable/typography.html) tells to “take advantage of Unicode”. I could work on replaced characters using Unicode in strings of libgda and presenting it as a Merge Request. Would it be something of the interest of the developer(s) of this project?6.2https://gitlab.gnome.org/GNOME/libgda/-/issues/21Berkeley DB is Broken2018-08-02T20:29:41ZDaniel Espinosa OrtizBerkeley DB is BrokenCurrent implementation of BDB is broken, just noted when working to add to Meson.
Should be disable from build systems or advertise it.Current implementation of BDB is broken, just noted when working to add to Meson.
Should be disable from build systems or advertise it.6.2https://gitlab.gnome.org/GNOME/libgda/-/issues/87GdaSqlBuilder: Table names not quoted2018-10-10T18:31:21ZBugzillaGdaSqlBuilder: Table names not quoted## Submitted by Murray Cumming `@murrayc`
Assigned to **mal..@..db.org**
**[Link to original bug (#763596)](https://bugzilla.gnome.org/show_bug.cgi?id=763596)**
## Description
Created attachment 323840
test_libgda_table_name_with_...## Submitted by Murray Cumming `@murrayc`
Assigned to **mal..@..db.org**
**[Link to original bug (#763596)](https://bugzilla.gnome.org/show_bug.cgi?id=763596)**
## Description
Created attachment 323840
test_libgda_table_name_with_space.c
At least with PostgreSQL, GdaSQLBuilder doesn't seem to quote table names, leading to errors if the table names have spaces, for instance.
Running this test shows this error:
** (process:12975): WARNING **: gda_connection_statement_execute_select() failed: syntax error at or near "with space"
LINE 1: ...tists"."artist_id", "artists"."description" FROM with space
**Attachment 323840**, "test_libgda_table_name_with_space.c":
[test_libgda_table_name_with_space.c](/uploads/3d83ec581561b014415ff2f0eb4e585d/test_libgda_table_name_with_space.c)
### Blocking
* [Bug 763534](https://bugzilla.gnome.org/show_bug.cgi?id=763534)6.2https://gitlab.gnome.org/GNOME/libgda/-/issues/76Incorrect holder when changing a GdaDataSelector model2019-04-08T22:33:15ZBugzillaIncorrect holder when changing a GdaDataSelector model## Submitted by DTJF
Assigned to **mal..@..db.org**
**[Link to original bug (#720289)](https://bugzilla.gnome.org/show_bug.cgi?id=720289)**
## Description
By using the gdaui_data_selector_set_model() function we can change the Gda...## Submitted by DTJF
Assigned to **mal..@..db.org**
**[Link to original bug (#720289)](https://bugzilla.gnome.org/show_bug.cgi?id=720289)**
## Description
By using the gdaui_data_selector_set_model() function we can change the GdaDataModel. But sometimes the GdaDataEntry labels are not correct after the change.
Example: just start
gdaui-demo-5.0
and choose
Forms -> Changing data model
After switching to '4 columns x 30 rows' the first entry is labelled 'ref', but it should be 'name'. Same problem in
Grids -> Changing data model
where the first column has a wrong label.
Version: 5.2.x6.2https://gitlab.gnome.org/GNOME/libgda/-/issues/73GtkCellRendererText does not work with GdauiDataStore2019-04-08T22:31:18ZBugzillaGtkCellRendererText does not work with GdauiDataStore## Submitted by Boris
Assigned to **mal..@..db.org**
**[Link to original bug (#699114)](https://bugzilla.gnome.org/show_bug.cgi?id=699114)**
## Description
Created attachment 242704
Solution of the problem can be like that
For e...## Submitted by Boris
Assigned to **mal..@..db.org**
**[Link to original bug (#699114)](https://bugzilla.gnome.org/show_bug.cgi?id=699114)**
## Description
Created attachment 242704
Solution of the problem can be like that
For example, if the design done in the glade, and then try to make it work in reality do not succeed, because gpointer carries no information about the type of displayed fields
**Patch 242704**, " Solution of the problem can be like that":
[libgda-5.1.2.patch](/uploads/2e69dc176d073579133b76c01b3af073/libgda-5.1.2.patch)6.2