You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -60,7 +60,7 @@ Whole library is documented as markdown documents:
60
60
The following list summarizes all the `TinyDrivers` and `TinyMySql` libraries' features. 🆕
61
61
62
62
- both, normal and prepared statements are supported
63
-
- TLS/SSL connections using [`MYSQL_OPT_SSL_MODE`](https://dev.mysql.com/doc/c-api/8.4/en/mysql-options.html) (verify_ca, verify_identity) 🔥
63
+
- TLS/SSL connections using [`MYSQL_OPT_SSL_MODE`](https://dev.mysql.com/doc/c-api/9.0/en/mysql-options.html) (verify_ca, verify_identity) 🔥
64
64
- setting many other connection options (see [`mysqldriver_p.cpp`](https://github.com/silverqx/TinyORM/blob/main/drivers/mysql/src/orm/drivers/mysql/mysqldriver_p.cpp))
65
65
- building and linking against the [`MariaDB Connector/C`](https://mariadb.com/kb/en/mariadb-connector-c/)
Copy file name to clipboardExpand all lines: docs/building/tinyorm.mdx
+3-3
Original file line number
Diff line number
Diff line change
@@ -994,7 +994,7 @@ These are <u>`qmake`</u> and <u>`environment`</u> variables that affect the `Aut
994
994
| -------------------- | ----------- |
995
995
|`TINY_VCPKG_ROOT`| Path to the `vcpkg` installation folder.<br/>If not defined, then it tries to use the `VCPKG_ROOT` environment variable. |
996
996
|`TINY_VCPKG_TRIPLET`| The `vcpkg``triplet` to use <small>(vcpkg/installed/$$TINY_VCPKG_TRIPLET/)</small>.<br/>If not defined, then it tries to guess the `vcpkg``triplet` based on the current compiler and OS (based on the `QMAKESPEC`), and as the last thing, it tries to use the `VCPKG_DEFAULT_TRIPLET` environment variable. |
997
-
|`TINY_MYSQL_ROOT`| Path to the `MySQL` installation folder.<br/>If not defined, then it tries to guess the `MySQL` installation folder (`win32` only): <code>$$(ProgramFiles)/MySQL/MySQL Server (8.4|8.3|8.2|8.1|8.0|5.7)/</code> |
997
+
|`TINY_MYSQL_ROOT`| Path to the `MySQL` installation folder.<br/>If not defined, then it tries to guess the `MySQL` installation folder (`win32` only): <code>$$(ProgramFiles)/MySQL/MySQL Server (9.0|8.4|8.3|8.2|8.1|8.0|5.7)/</code> |
998
998
999
999
You can set these variables in the `.env` (recommended) or `conf.pri` files, in the `.qmake.conf` file (or wherever you want), or as environment variables.
1000
1000
@@ -1003,8 +1003,8 @@ These variables will be set after `auto-configuration` is done:
1003
1003
| Variable Name | Description |
1004
1004
| -------------------- | ----------- |
1005
1005
|`TINY_VCPKG_INCLUDE`| Path to the `vcpkg``include` folder <small>(vcpkg/installed/<triplet>/include/)</small>. |
1006
-
|`TINY_MYSQL_INCLUDE`| Path to the `MySQL``include` folder <small>(MySQL Server 8.4/include/)</small>. |
1007
-
|`TINY_MYSQL_LIB`| Path to the `MySQL``lib` folder <small>(MySQL Server 8.4/lib/)</small>. |
1006
+
|`TINY_MYSQL_INCLUDE`| Path to the `MySQL``include` folder <small>(MySQL Server 9.0/include/)</small>. |
1007
+
|`TINY_MYSQL_LIB`| Path to the `MySQL``lib` folder <small>(MySQL Server 9.0/lib/)</small>. |
1008
1008
1009
1009
The `TINY_MYSQL_INCLUDE` and `TINY_MYSQL_LIB` are only set on `win32` platform except `mingw`.
Copy file name to clipboardExpand all lines: docs/database/getting-started.mdx
+3-3
Original file line number
Diff line number
Diff line change
@@ -358,7 +358,7 @@ The first argument is configuration hash which is of type `QVariantHash` and the
358
358
359
359
You may also configure connection options by `options` key as `QVariantHash` or `QString`, you can pass any [connection options](https://doc.qt.io/qt/qsqldatabase.html#setConnectOptions) supported by `QSqlDatabase`.
360
360
361
-
You can also configure [Transaction Isolation Levels](https://dev.mysql.com/doc/refman/8.4/en/innodb-transaction-isolation-levels.html) for MySQL connection with the `isolation_level` configuration option.
361
+
You can also configure [Transaction Isolation Levels](https://dev.mysql.com/doc/refman/9.0/en/innodb-transaction-isolation-levels.html) for MySQL connection with the `isolation_level` configuration option.
362
362
363
363
The `version` option is relevant only for the MySQL connections and you can save/avoid one database query (select version()) if you provide it manually. On the base of this version will be decided which [session variables](https://github.com/silverqx/TinyORM/blob/main/src/orm/connectors/mysqlconnector.cpp#L154) will be set if strict mode is enabled and whether to use an [alias](https://github.com/silverqx/TinyORM/blob/main/src/orm/query/grammars/mysqlgrammar.cpp#L36) during the `upsert` method call.
364
364
@@ -794,13 +794,13 @@ Since unprepared statements do not bind parameters, they may be vulnerable to SQ
794
794
795
795
#### Implicit Commits
796
796
797
-
When using the `DB` facade's `statement` methods within transactions, you must be careful to avoid statements that cause [implicit commits](https://dev.mysql.com/doc/refman/8.4/en/implicit-commit.html). These statements will cause the database engine to indirectly commit the entire transaction, leaving TinyORM unaware of the database's transaction level. An example of such a statement is creating a database table:
797
+
When using the `DB` facade's `statement` methods within transactions, you must be careful to avoid statements that cause [implicit commits](https://dev.mysql.com/doc/refman/9.0/en/implicit-commit.html). These statements will cause the database engine to indirectly commit the entire transaction, leaving TinyORM unaware of the database's transaction level. An example of such a statement is creating a database table:
Please refer to the MySQL manual for [a list of all statements](https://dev.mysql.com/doc/refman/8.4/en/implicit-commit.html) that trigger implicit commits.
803
+
Please refer to the MySQL manual for [a list of all statements](https://dev.mysql.com/doc/refman/9.0/en/implicit-commit.html) that trigger implicit commits.
Copy file name to clipboardExpand all lines: docs/database/query-builder.mdx
+1-1
Original file line number
Diff line number
Diff line change
@@ -1021,7 +1021,7 @@ All databases except SQL Server require the columns in the second argument of th
1021
1021
:::
1022
1022
1023
1023
:::info
1024
-
Row and column aliases will be used with the MySQL server >=8.0.19 instead of the VALUES() function as is described in the MySQL [documentation](https://dev.mysql.com/doc/refman/8.4/en/insert-on-duplicate.html). The MySQL server version is auto-detected and can be overridden in the [configuration](/database/getting-started.mdx#configuration).
1024
+
Row and column aliases will be used with the MySQL server >=8.0.19 instead of the VALUES() function as is described in the MySQL [documentation](https://dev.mysql.com/doc/refman/9.0/en/insert-on-duplicate.html). The MySQL server version is auto-detected and can be overridden in the [configuration](/database/getting-started.mdx#configuration).
Copy file name to clipboardExpand all lines: docs/dependencies.mdx
+1-1
Original file line number
Diff line number
Diff line change
@@ -30,7 +30,7 @@ Be aware that the standard support for the last release of the __Qt v5__ series
30
30
31
31
##### Optional
32
32
33
-
->= [MySQL Connector/C 8](https://dev.mysql.com/downloads/c-api/) - used only for the [`mysql_ping`](https://dev.mysql.com/doc/c-api/8.4/en/mysql-ping.html) function and provided by [MySQL 8 Server](https://dev.mysql.com/downloads/mysql/)
33
+
->= [MySQL Connector/C 8](https://dev.mysql.com/downloads/c-api/) - used only for the [`mysql_ping`](https://dev.mysql.com/doc/c-api/9.0/en/mysql-ping.html) function and provided by [MySQL 8 Server](https://dev.mysql.com/downloads/mysql/)
34
34
35
35
:::info
36
36
The `TinyORM` will support `Qt` versions that aren't [end-of-life](https://endoflife.date/qt).
Copy file name to clipboardExpand all lines: docs/tinydrivers/getting-started.mdx
+5-5
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,7 @@ It was designed to drop the `QtSql` dependency while maintaining backward compat
22
22
##### Features summary
23
23
24
24
- both, normal and prepared statements are supported
25
-
- TLS/SSL connections using [`MYSQL_OPT_SSL_MODE`](https://dev.mysql.com/doc/c-api/8.4/en/mysql-options.html) (verify_ca, verify_identity) 🔥
25
+
- TLS/SSL connections using [`MYSQL_OPT_SSL_MODE`](https://dev.mysql.com/doc/c-api/9.0/en/mysql-options.html) (verify_ca, verify_identity) 🔥
26
26
- setting many other connection options (see [`mysqldriver_p.cpp`](https://github.com/silverqx/TinyORM/blob/main/drivers/mysql/src/orm/drivers/mysql/mysqldriver_p.cpp))
27
27
- building and linking against the [`MariaDB Connector/C`](https://mariadb.com/kb/en/mariadb-connector-c/)
28
28
- transactions
@@ -52,9 +52,9 @@ Currently, only the `MySQL` database driver is supported and finished.
52
52
53
53
The following describes the differences between `QMYSQL` and `TinyMySql` drivers.
54
54
55
-
The `QMYSQL` driver doesn't support setting `MySQL` non-flag [connection options](https://dev.mysql.com/doc/c-api/8.4/en/mysql-options.html) like `MYSQL_OPT_RECONNECT` without the value, it needs to be defined with value like `=1` or `=TRUE` (case-sensitive), only real flag options like `CLIENT_INTERACTIVE` can be set without the value and `=` character.
55
+
The `QMYSQL` driver doesn't support setting `MySQL` non-flag [connection options](https://dev.mysql.com/doc/c-api/9.0/en/mysql-options.html) like `MYSQL_OPT_RECONNECT` without the value, it needs to be defined with value like `=1` or `=TRUE` (case-sensitive), only real flag options like `CLIENT_INTERACTIVE` can be set without the value and `=` character.
56
56
57
-
On the other hand, the `TinyMySql` driver allows setting non-flag [connection options](https://dev.mysql.com/doc/c-api/8.4/en/mysql-options.html) options without the value and `=` character, which are considered enabled (ON or TRUE).
57
+
On the other hand, the `TinyMySql` driver allows setting non-flag [connection options](https://dev.mysql.com/doc/c-api/9.0/en/mysql-options.html) options without the value and `=` character, which are considered enabled (ON or TRUE).
58
58
59
59
##### Removed features
60
60
@@ -102,7 +102,7 @@ To control shared and static build use [`static`](building/tinyorm.mdx#qmake-sta
102
102
103
103
Performance is several milliseconds faster compared to `QtSql` with the `QMYSQL` driver. It was tuned using the `KCacheGrind` to be so. It's ~40ms faster on [`TinyOrmPlayground`](https://github.com/silverqx/TinyOrmPlayground) project with __620__ database queries compiled using `GCC v13.2.1` Debug build on Linux. Similar results can be expected on other platforms but it's not guaranteed.
104
104
105
-
This means performance is very similar to `QtSql`. There is not much to speed up because `TinyDrivers` code is swift and 90% of the time is spent inside the [`MySQL C API`](https://dev.mysql.com/doc/c-api/8.4/en/) because we always have to wait for the database server, especially when creating database connections using eg. [`mysql_real_connect()`](https://dev.mysql.com/doc/c-api/8.4/en/mysql-real-connect.html) (this function is king among the slowest functions 😎, which is understandable of course).
105
+
This means performance is very similar to `QtSql`. There is not much to speed up because `TinyDrivers` code is swift and 90% of the time is spent inside the [`MySQL C API`](https://dev.mysql.com/doc/c-api/9.0/en/) because we always have to wait for the database server, especially when creating database connections using eg. [`mysql_real_connect()`](https://dev.mysql.com/doc/c-api/9.0/en/mysql-real-connect.html) (this function is king among the slowest functions 😎, which is understandable of course).
106
106
107
107
## Internals
108
108
@@ -112,7 +112,7 @@ This means performance is very similar to `QtSql`. There is not much to speed up
112
112
- SQL API layer
113
113
- Public API layer
114
114
115
-
The Driver layer is eg. `TinyMySql` library which is responsible for communicating with the underlying database driver (eg. [`MySQL C API`](https://dev.mysql.com/doc/c-api/8.4/en/)).
115
+
The Driver layer is eg. `TinyMySql` library which is responsible for communicating with the underlying database driver (eg. [`MySQL C API`](https://dev.mysql.com/doc/c-api/9.0/en/)).
116
116
117
117
The SQL API layer is a semi-layer that glues everything up and sits between the Public interface API and the Driver layer.
Copy file name to clipboardExpand all lines: docs/tinyorm/getting-started.mdx
+1-1
Original file line number
Diff line number
Diff line change
@@ -847,7 +847,7 @@ All databases except SQL Server require the columns in the second argument of th
847
847
:::
848
848
849
849
:::info
850
-
Row and column aliases will be used with the MySQL server >=8.0.19 instead of the VALUES() function as is described in the MySQL [documentation](https://dev.mysql.com/doc/refman/8.4/en/insert-on-duplicate.html). The MySQL server version is auto-detected and can be overridden in the [configuration](/database/getting-started.mdx#configuration).
850
+
Row and column aliases will be used with the MySQL server >=8.0.19 instead of the VALUES() function as is described in the MySQL [documentation](https://dev.mysql.com/doc/refman/9.0/en/insert-on-duplicate.html). The MySQL server version is auto-detected and can be overridden in the [configuration](/database/getting-started.mdx#configuration).
- select c.COLUMN_NAME, c.IS_NULLABLE, c.COLUMN_DEFAULT from information_schema.`COLUMNS` c where c.TABLE_SCHEMA = 'tinyorm_test_1' and c.TABLE_NAME = 'users'; (this select-s as little info as possible)
0 commit comments