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
The previous behavior is preserved, so adding “.sql” still works. A big shout‑out to [@guspower](https://github.com/guspower) for their contributions!
14
+
Big thanks to [@guspower](https://github.com/guspower) for their contributions!
16
15
17
-
#### **Complete Routing Rewrite**
18
-
We’ve reworked our request routing system from top to bottom to make things smoother and more predictable for every request.
16
+
#### **Complete Routing Rewrite:**
17
+
We overhauled our request routing system for smoother, more predictable routing across every request.
19
18
20
-
### SQLPage functions
19
+
---
21
20
22
-
#### sqlpage.fetch (call external services from SQLPage)
21
+
###2. SQLPage Functions ⚙️
23
22
24
-
**HTTP Basic Authentication**
25
-
SQLPage’s `sqlpage.fetch(request)` function now supports HTTP Basic Authentication. Quickly call external APIs that require a username and password. For example, in PostgreSQL:
26
-
```sql
27
-
SET result =sqlpage.fetch(json_object(
28
-
'url', 'https://api.example.com/data',
29
-
'username', 'user',
30
-
'password', 'pass'
31
-
));
32
-
```
33
-
Learn more in the [fetch documentation](https://sql-page.com/documentation.sql?component=fetch#component).
When your HTTP request definition is off, you’ll now get clearer error messages — especially if there are unknown fields.
37
-
Plus, the `headers` parameter is now optional: if omitted, SQLPage sends a default User‑Agent header that includes the SQLPage version.
25
+
-**HTTP Basic Authentication:**
26
+
SQLPage’s `sqlpage.fetch(request)` now supports HTTP Basic Auth. Easily call APIs requiring a username/password. For example:
38
27
39
-
**New Function: sqlpage.headers**
40
-
Easily manage and inspect HTTP headers with the brand‑new [`sqlpage.headers`](https://sql-page.com/functions.sql?function=headers) function.
28
+
```sql
29
+
SET result =sqlpage.fetch(json_object(
30
+
'url', 'https://api.example.com/data',
31
+
'username', 'user',
32
+
'password', 'pass'
33
+
));
34
+
```
35
+
Check out the [[fetch documentation](https://sql-page.com/documentation.sql?component=fetch#component)](https://sql-page.com/documentation.sql?component=fetch#component) for more.
36
+
37
+
-**Smarter Fetch Errors & Headers Defaults:**
38
+
Get clearer error messages if your HTTP request definition is off (unknown fields, etc.). Plus, if you omit the `headers` parameter, SQLPage now sends a default User‑Agent header that includes the SQLPage version.
39
+
40
+
- New Functions: [`sqlpage.request_body`](https://sql-page.com/functions.sql?function=request_body) and [`sqlpage.request_body_base64`](https://sql-page.com/functions.sql?function=request_body_base64)
41
+
- Return the raw request body as a string or base64 encoded string.
Easily manage and inspect HTTP headers with the brand‑new [`sqlpage.headers`](https://sql-page.com/functions.sql?function=headers) function.
43
54
44
-
#### Table & Card Components
55
+
### 3. UI Component Enhancements 🎨
56
+
57
+
#### **Table & Card Components**
45
58
46
59
-**Table CSS Fixes:**
47
-
We fixed a bug that prevented proper CSS classes from being added to table cells. This fixes alignment in tables.
60
+
We fixed a bug where table cells weren’t getting the right CSS classes—your tables now align perfectly.
48
61
49
62
-**Native Number Formatting:**
50
-
Numeric values in tables are automatically formatted to your visitor’s locale. That means thousands separators, correct decimal points, and sorting that respects numeric order—without any extra work from you.
Not a formatted string in the database—just pure, locale‑sensitive output.
63
+
Numericvaluesin tables are now automatically formatted to your visitor’s locale with proper thousands separators anddecimal points, and sorted numerically.
Add the new `auto_submit`parameter to your forms, and watch them auto‑submit on any field change—perfect for instant filters on dashboards.
76
+
Set`auto_submit` to true andyour form will instantly submit on any field change—ideal for dashboard filters.
65
77
*Example:*
66
78
```sql
67
79
SELECT 'form' AS component, 'Filter Results' AS title, true AS auto_submit;
68
80
SELECT 'date' AS name;
69
81
```
70
82
-**Dynamic Options for Dropdowns:**
71
-
Use the new `options_source`parameter to load dropdown options dynamically from another SQL file. Great for autocomplete on huge option lists!
83
+
Use `options_source` to load dropdown options dynamically from another SQL file. Perfect for autocomplete with large option sets.
72
84
*Example:*
73
85
```sql
74
86
SELECT 'form' AS component, 'Select Country' AS title, 'countries.sql' AS options_source;
75
87
SELECT 'country' AS name;
76
88
```
77
89
-**Markdown in Field Descriptions:**
78
-
With the new `description_md` property, you can now render markdown in form field descriptions to better guide your users.
79
-
90
+
With the new `description_md` property, render markdown in form field descriptions for improved guidance.
80
91
-**Improved Header Error Messages:**
81
-
If you accidentally use a header component (like `json` or `cookie`) after sending data, you’ll now see a more helpful error message.
92
+
Now you’ll get more helpful errors if header components (e.g., `json`, `cookie`) are used incorrectly.
93
+
94
+
---
82
95
83
-
### Chart, Icons & CSS Updates
96
+
### 4. Chart, Icons & CSS Updates 📊
84
97
85
98
-**ApexCharts Upgrade:**
86
-
We’ve updated ApexCharts to [v4.4.0](https://github.com/apexcharts/apexcharts.js/releases/tag/v4.4.0). Expect smoother charts with bug fixes for your visualizations.
99
+
We updated ApexCharts to [[v4.4.0](https://github.com/apexcharts/apexcharts.js/releases/tag/v4.4.0)](https://github.com/apexcharts/apexcharts.js/releases/tag/v4.4.0) for smoother charts and minor bug fixes.
87
100
88
101
-**Tabler Icons & CSS:**
89
-
Enjoy a refreshed look with Tabler Icons updated to [v3.30.0](https://tabler.io/changelog#/changelog/tabler-icons-3.30) and the CSS framework upgraded to [Tabler 1.0.0](https://github.com/tabler/tabler/releases/tag/v1.0.0). More icons, better consistency, and a sleeker interface.
102
+
Enjoy a refreshed look:
103
+
- Tabler Icons are now [[v3.30.0](https://tabler.io/changelog#/changelog/tabler-icons-3.30)](https://tabler.io/changelog#/changelog/tabler-icons-3.30) with many new icons.
104
+
- The CSS framework has been upgraded to [[Tabler 1.0.0](https://github.com/tabler/tabler/releases/tag/v1.0.0)](https://github.com/tabler/tabler/releases/tag/v1.0.0) for improved consistency and a sleeker interface.
105
+
106
+
---
90
107
91
-
### 5. CSV Import & Error Handling
108
+
### 5. CSV Import & Error Handling 📥
92
109
93
110
-**Enhanced CSV Error Messages:**
94
-
We improved error messages when a CSV import fails (using a `copy` statement and file upload).
95
-
-**Postgres CSV Bug Fix**
96
-
A pesky bug causing subsequent requests to fail after a CSV import error on PostgreSQL is now fixed. (See [Issue #788](https://github.com/sqlpage/SQLPage/issues/788) for details.)
111
+
More descriptive error messages when a CSV import fails (via `copy`and file upload).
112
+
113
+
-**Postgres CSV Bug Fix:**
114
+
A bug that caused subsequent requests to fail after a CSV import error on PostgreSQL is now fixed.
115
+
(See [Issue #788](https://github.com/sqlpage/SQLPage/issues/788) for details.)
116
+
117
+
---
97
118
98
-
### 6. SQL Parser & Advanced SQL Support
119
+
### 6. SQL Parser & Advanced SQL Support 🔍
99
120
100
-
**Upgraded SQL Parser (v0.54):**
101
-
Our sqlparser is now at [v0.54](https://github.com/apache/datafusion-sqlparser-rs/blob/main/changelog/0.54.0.md), offering enhanced support for advanced SQL syntax. New additions include:
Our sqlparser is now at [v0.54](https://github.com/apache/datafusion-sqlparser-rs/blob/main/changelog/0.54.0.md), with support for advanced SQL syntax:
102
123
103
124
-**INSERT...SELECT...RETURNING:**
104
125
```sql
@@ -109,10 +130,14 @@ Our sqlparser is now at [v0.54](https://github.com/apache/datafusion-sqlparser-r
109
130
```
110
131
-**PostgreSQL’s overlaps operator:**
111
132
```sql
112
-
SELECT'card'AS component;
113
-
SELECT event_name AS title, start_time ||' - '|| end_time AS description
133
+
SELECT 'card' AS component,
134
+
event_name AS title,
135
+
start_time::text || ' - ' || end_time::text AS description
114
136
FROM events
115
-
WHERE (start_time, end_time) overlaps ($start_filter::timestamp, $end_filter::timestamp);
0 commit comments