Skip to content

Commit 47a55c4

Browse files
authored
prepare release of v0.31
1 parent dc9353b commit 47a55c4

File tree

1 file changed

+91
-51
lines changed

1 file changed

+91
-51
lines changed

CHANGELOG.md

+91-51
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,96 @@
11
# CHANGELOG.md
22

3-
## 0.31.0 (unreleased)
4-
- [update apexcharts.js to v4.0.0](https://github.com/apexcharts/apexcharts.js/releases)
5-
- Fixed a bug where the chart library would be loaded multiple times when the page contained multiple charts. This made the page load slower and could cause issues with the chart library.
6-
- Fixed a bug where [timeline chart tooltips displayed the wrong labels](https://github.com/sqlpage/SQLPage/issues/659).
7-
- Fixed an incorrect warning polluting logs when using sqlpage functions with json arguments in sqlite: `WARN sqlpage::webserver::database::execute_queries] The column _sqlpage_f0_a1 is missing from the result set, so it cannot be converted to JSON.`.
8-
- Fixed Microsoft SQL Server driver not being able to read VARCHAR columns from databases with non-european collations.
9-
- Added support for `BIT` columns in Microsoft SQL Server.
10-
- Avoid generating file names that contain spaces in `sqlpage.persist_uploaded_file`. This makes it easier to use the file name in URLs without URL-encoding it.
11-
- Fixed a bug with REAL value decoding in Microsoft SQL Server.
12-
- Support preserving the timezone of `DATETIMEOFFSET` columns in Microsoft SQL Server and `TIMESTAMPTZ` columns in Postgres. Previously, all datetime columns were converted to UTC.
13-
- Fixed a bug where select dropdown fields would retain their state when their form is reset.
14-
- Add support for `null as item` in the columns component to skip the display of an item.
15-
- Add support for `description_md` in the columns component to display markdown text in an item's description.
16-
- Add support for simple text item in the columns component. This avoids having to deal with json functions to display a simple textual column item description.
17-
- Increase spacing between items in the columns component for improved readability.
18-
- Fixed invalid decoding of some less common data types in Microsoft SQL Server and MySQL.
19-
- Fixed a display bug where the table search box would disappear when scrolling horizontally in a large table.
20-
- Remove small blank padding around tables in the table component
21-
- Fixed a bug in the table component where searching for "xy" would match a row with a cell that contains "x" followed by a cell that contains "y". This should match "x y" but not "xy".
22-
- Fixed a bug where embedded card contents would be initialized multiple times, potentially causing issues with some components (such as the chart component) when embedded in a card.
23-
- Fixed misaligned loading spinner in the card component when the card is loading embedded content.
24-
- Updated the SQL parser to [v0.52.0](https://github.com/apache/datafusion-sqlparser-rs/blob/main/changelog/0.52.0.md).
25-
- This fixes a bug where the parser would fail parse a `SET` clause for a variable named `role`.
26-
- Better support for the `JSON_TABLE` function, for manipulating json arrays in MySQL.
27-
- Adds support for `EXECUTE` statements with parameters in mssql, to run stored procedures.
28-
- Adds support for `TRY_CONVERT` in mssql, to convert data types.
29-
- Adds support for setting column names with an `=` sign, like `SELECT some_property = (a*b) FROM some_table` in mssql
30-
- Adds support for the `LIMIT max_rows, offset` syntax in SQLite. https://www.sqlite.org/lang_select.html#limitoffset
31-
- Adds support for `ANY`, `ALL`, and `SOME` subqueries, like `SELECT * FROM t WHERE a = ANY (SELECT b FROM t2)`
32-
- Add support for `change_percent` without `description` in the big_number component to display the percentage change of a value.
33-
- Add support for `freeze_columns` and `freeze_headers` in the table component to freeze columns and headers.
34-
- Fix an error that occured when the site_prefix configuration option was set to a value containing special characters like `-` and a request was made directly to the server without url-encoding the site prefix.
35-
- Improve error messages:
36-
- The error message now always includes the name of the file where the error occurred, which is useful when embedding SQLPage pages using `sqlpage.run_sql`, or the card component.
37-
- When an error occurs while executing a SQL statement, the error message now always includes the (potentially transformed) SQL statement that was sent to the database.
38-
- Fixed a problem where database errors would be displayed twice in the error message.
39-
- Database errors now always trigger warning messages in the console, in addition to the error message displayed in the browser. This allows the application's administrator to be alerted and fix errors faster, without having to wait for a user to report the error.
40-
- Fixed layout issues in the card component when embedding content with `embed`: remove double border and padding.
41-
- ![embedded card screenshot](https://github.com/user-attachments/assets/ea85438d-5fcb-4eed-b90b-a4385675355d)
42-
- Added support for `empty_option` in the form component to add an empty option before the options defined in `options`. Useful when generating other options from a database table.
43-
- Allow nested json objects and arrays as sqlpage function parameters (useful in `sqlpage.fetch`).
44-
- Implement *Login packet encryption* in mssql:
45-
- SQL Server has three levels of encryption support, which are now all supported by this library:
46-
- No encryption, where all data including the password is sent in plaintext. Used only when either client or server declare missing encryption capabilities. You can enable this mode in this library by setting `encrypt=not_supported` in the connection string.
47-
- Encryption is supported on both sides, but disabled on either side. You can enable this mode in this library by setting `encrypt=off` in the connection string. In this mode, the login phase will be encrypted, but data packets will be sent in plaintext.
48-
- Encryption is supported and enabled on both sides. You can enable this mode in this library by setting `encrypt=strict` in the connection string. In this mode, both the login phase and data packets will be encrypted.
49-
- Improved logging in the mssql driver login phase
50-
- Improved handling of very large form submissions
51-
- The was a fixed 16kB limit on the size of form submissions.
52-
- The size is now limited by the `max_uploaded_file_size` configuration option, which defaults to 5MB.
53-
- In forms with a searchable select dropdown, the search field now resets itself after an item is selected, to let the user easily select another item. Fixes https://github.com/sqlpage/SQLPage/issues/706
3+
## 0.31.0 (2024-11-24)
4+
5+
### 🚀 **New Features**
6+
7+
#### **Improved Components**
8+
- [**Columns Component**](https://sql.datapage.app/component.sql?component=columns)
9+
- Markdown-supported descriptions (`description_md`) allow richer formatting.
10+
- Add simple text items without needing JSON handling.
11+
- Optionally skip displaying items (`null as item`).
12+
- ![columns component screenshot](https://github.com/user-attachments/assets/dd5e1ba7-e12f-4119-a201-0583cf765000)
13+
14+
- [**Table Component**](https://sql.datapage.app/component.sql?component=table)
15+
- New **freeze headers and columns** feature improves usability with large tables.
16+
- Enhanced search logic ensures more precise matches (e.g., `"xy"` no longer matches separate `x` and `y` cells in adjacent columns).
17+
- Search box visibility is retained during horizontal scrolling.
18+
*Technical:* Adds `freeze_headers`, `freeze_columns`, and improves the internal search algorithm.
19+
- ![scroll table](https://github.com/user-attachments/assets/546f36fb-b590-487d-8817-47eeed8f1835)
20+
21+
- [**Form Component**](https://sql.datapage.app/component.sql?component=form)
22+
- Added an empty option (`empty_option`) to dropdowns, enabling placeholder-like behavior.
23+
- ![form](https://github.com/user-attachments/assets/40a230da-9b1b-49ed-9759-5e21fe812957)
24+
- Improved handling of large form submissions with configurable size limits (`max_uploaded_file_size`, default 5MB).
25+
*Technical:* There used to be a hardcoded limit to 16kB for all forms.
26+
---
27+
28+
29+
#### **Database Enhancements**
30+
- **Support for New Data Types**:
31+
- Microsoft SQL Server now supports `BIT` columns.
32+
- Improved handling of `DATETIMEOFFSET` in MSSQL and `TIMESTAMPTZ` in PostgreSQL, preserving their timezones instead of converting them to UTC.
33+
34+
- **Better JSON Handling**:
35+
- Accept nested JSON objects and arrays as function parameters.
36+
Useful for advanced usage like calling external APIs using `sqlpage.fetch` with complex data structures.
37+
38+
- **SQL Parser Update**:
39+
- Upgraded to [v0.52.0](https://github.com/apache/datafusion-sqlparser-rs/blob/main/changelog/0.52.0.md) with new features:
40+
- Added support for:
41+
- advanced `JSON_TABLE` usage in MySQL for working with JSON arrays.
42+
- `EXECUTE` statements with parameters in MSSQL for running stored procedures.
43+
- MSSQL’s `TRY_CONVERT` function for type conversion.
44+
- `ANY`, `ALL`, and `SOME` subqueries (e.g., `SELECT * FROM t WHERE a = ANY (SELECT b FROM t2)`).
45+
- `LIMIT max_rows, offset` syntax in SQLite.
46+
- Assigning column names aliases using `=` in MSSQL (e.g., `SELECT col_name = value`).
47+
- Fixes a bug where the parser would fail parse a `SET` clause for a variable named `role`.
48+
49+
---
50+
51+
#### **Security and Performance**
52+
- **Encrypted Login Support for MSSQL**:
53+
- Ensures secure connections with flexible encryption modes:
54+
- No encryption (`?encrypt=not_supported`): For legacy systems and environments where SSL is blocked
55+
- Partial encryption (`?encrypt=off`): Protects login credentials but not data packets.
56+
- Full encryption (`?encrypt=on`): Secures both login and data.
57+
*Technical:* Controlled using the `encrypt` parameter (`not_supported`, `off`, or `strict`) in mssql connection strings.
58+
59+
- **Chart Library Optimization**:
60+
- Updated ApexCharts to v4.0.0.
61+
- Fixed duplicate library loads, speeding up pages with multiple charts.
62+
- Fixed a bug where [timeline chart tooltips displayed the wrong labels](https://github.com/sqlpage/SQLPage/issues/659).
63+
64+
---
65+
66+
### 🛠 **Bug Fixes**
67+
#### Database and Compatibility Fixes
68+
- **Microsoft SQL Server**:
69+
- Fixed decoding issues for less common data types.
70+
- Resolved bugs in reading `VARCHAR` columns from non-European collations.
71+
- Correctly handles `REAL` values.
72+
73+
- **SQLite**:
74+
- Eliminated spurious warnings when using SQLPage functions with JSON arguments.
75+
*Technical:* Avoids warnings like `The column _sqlpage_f0_a1 is missing`.
76+
77+
#### Component Fixes
78+
- **Card Component**:
79+
- Fixed layout issues with embedded content (e.g., removed double borders).
80+
- ![Example Screenshot](https://github.com/user-attachments/assets/ea85438d-5fcb-4eed-b90b-a4385675355d)
81+
- Corrected misaligned loading spinners.
82+
83+
- **Form Dropdowns**:
84+
- Resolved state retention after form resets, ensuring dropdowns reset correctly.
85+
86+
#### Usability Enhancements
87+
- Removed unnecessary padding around tables for cleaner layouts.
88+
- Increased spacing between items in the columns component for improved readability.
89+
- Database errors are now consistently logged and displayed with more actionable details.
90+
- ![better errors](https://github.com/user-attachments/assets/f0d2f9ef-9a30-4ff2-af3c-b33a375f2e9b)
91+
*Technical:* Ensures warnings in the browser and console for faster debugging.
92+
93+
---
5494

5595
## 0.30.1 (2024-10-31)
5696
- fix a bug where table sorting would break if table search was not also enabled.

0 commit comments

Comments
 (0)