chore: import upstream snapshot with attribution
CI / compile_and_lint (push) Failing after 0s
CI / docker_build (linux/amd64, -linux-amd64-duckdb, duckdb) (push) Failing after 0s
CI / docker_build (linux/arm64, -linux-arm64, minimal) (push) Failing after 2s
CI / docker_build (linux/arm64, -linux-arm64-duckdb, duckdb) (push) Failing after 1s
CI / docker_build (linux/amd64, minimal) (push) Failing after 1s
CI / test (, sqlite, sqlite::memory:) (push) Has been skipped
CI / test (mssql, mssql, mssql://root:Password123!@127.0.0.1/sqlpage) (push) Has been skipped
CI / test (mysql, mysql, mysql://root:Password123!@127.0.0.1/sqlpage) (push) Has been skipped
CI / test (oracle, oracle, Driver=Oracle 21 ODBC driver;Dbq=//127.0.0.1:1521/FREEPDB1;Uid=root;Pwd=Password123!) (push) Has been skipped
CI / test (postgres, odbc, Driver=PostgreSQL Unicode;Server=127.0.0.1;Port=5432;Database=sqlpage;UID=root;PWD=Password123!, true) (push) Has been skipped
CI / test (postgres, postgres, postgres://root:Password123!@127.0.0.1/sqlpage) (push) Has been skipped
CI / playwright (push) Has been skipped
CI / docker_build (linux/arm/v7, -linux-arm-v7, minimal) (push) Failing after 0s
CI / hurl_examples (push) Failing after 8s
deploy website / deploy_official_site (push) Failing after 1s
CI / hurl (${{ matrix.example }}) (push) Has been skipped
CI / docker_push (duckdb) (push) Has been cancelled
CI / docker_push (minimal) (push) Has been cancelled
CI / windows_test (push) Has been cancelled
CI / compile_and_lint (push) Failing after 0s
CI / docker_build (linux/amd64, -linux-amd64-duckdb, duckdb) (push) Failing after 0s
CI / docker_build (linux/arm64, -linux-arm64, minimal) (push) Failing after 2s
CI / docker_build (linux/arm64, -linux-arm64-duckdb, duckdb) (push) Failing after 1s
CI / docker_build (linux/amd64, minimal) (push) Failing after 1s
CI / test (, sqlite, sqlite::memory:) (push) Has been skipped
CI / test (mssql, mssql, mssql://root:Password123!@127.0.0.1/sqlpage) (push) Has been skipped
CI / test (mysql, mysql, mysql://root:Password123!@127.0.0.1/sqlpage) (push) Has been skipped
CI / test (oracle, oracle, Driver=Oracle 21 ODBC driver;Dbq=//127.0.0.1:1521/FREEPDB1;Uid=root;Pwd=Password123!) (push) Has been skipped
CI / test (postgres, odbc, Driver=PostgreSQL Unicode;Server=127.0.0.1;Port=5432;Database=sqlpage;UID=root;PWD=Password123!, true) (push) Has been skipped
CI / test (postgres, postgres, postgres://root:Password123!@127.0.0.1/sqlpage) (push) Has been skipped
CI / playwright (push) Has been skipped
CI / docker_build (linux/arm/v7, -linux-arm-v7, minimal) (push) Failing after 0s
CI / hurl_examples (push) Failing after 8s
deploy website / deploy_official_site (push) Failing after 1s
CI / hurl (${{ matrix.example }}) (push) Has been skipped
CI / docker_push (duckdb) (push) Has been cancelled
CI / docker_push (minimal) (push) Has been cancelled
CI / windows_test (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,154 @@
|
||||
-- ensure that the component exists and do not render this page if it does not
|
||||
select 'redirect' as component,
|
||||
'component_not_found.sql' || coalesce('?component=' || sqlpage.url_encode($component), '') as link
|
||||
where not exists (select 1 from component where name = $component);
|
||||
|
||||
-- This line, at the top of the page, tells web browsers to keep the page locally in cache once they have it.
|
||||
select 'http_header' as component,
|
||||
'public, max-age=600, stale-while-revalidate=3600, stale-if-error=86400' as "Cache-Control",
|
||||
printf('<%s>; rel="canonical"', sqlpage.link('component', json_object('component', $component))) as "Link";
|
||||
|
||||
select 'dynamic' as component, json_patch(json_extract(properties, '$[0]'), json_object(
|
||||
'title', coalesce($component || ' - ', '') || 'SQLPage Documentation'
|
||||
)) as properties
|
||||
FROM example WHERE component = 'shell' LIMIT 1;
|
||||
|
||||
select 'breadcrumb' as component;
|
||||
select 'SQLPage' as title, '/' as link, 'Home page' as description;
|
||||
select 'Components' as title, '/documentation.sql' as link, 'List of all components' as description;
|
||||
select $component as title, '/component.sql?component=' || sqlpage.url_encode($component) as link;
|
||||
|
||||
select 'text' as component, 'component' as id, true as article,
|
||||
format('# The **%s** component
|
||||
|
||||
%s', $component, description) as contents_md
|
||||
from component where name = $component;
|
||||
|
||||
select format('Introduced in SQLPage v%s.', introduced_in_version) as contents, 1 as size
|
||||
from component
|
||||
where name = $component and introduced_in_version IS NOT NULL;
|
||||
|
||||
select 'title' as component, 3 as level, 'Top-level parameters' as contents where $component IS NOT NULL;
|
||||
select 'table' as component, true as striped, true as hoverable, true as freeze_columns,
|
||||
'type' as markdown
|
||||
where $component IS NOT NULL;
|
||||
select
|
||||
name,
|
||||
CASE WHEN optional THEN '' ELSE 'REQUIRED' END as required,
|
||||
CASE type
|
||||
WHEN 'COLOR' THEN printf('[%s](/colors.sql)', type)
|
||||
WHEN 'ICON' THEN printf('[%s](https://tabler-icons.io/?ref=sqlpage)', type)
|
||||
ELSE type
|
||||
END AS type,
|
||||
description
|
||||
from parameter where component = $component AND top_level
|
||||
ORDER BY optional, name;
|
||||
|
||||
|
||||
select 'title' as component, 3 as level, 'Row-level parameters' as contents
|
||||
WHERE $component IS NOT NULL AND EXISTS (SELECT 1 from parameter where component = $component AND NOT top_level);
|
||||
select 'table' as component, true as striped, true as hoverable, true as freeze_columns,
|
||||
'type' as markdown
|
||||
where $component IS NOT NULL;
|
||||
select
|
||||
name,
|
||||
CASE WHEN optional THEN '' ELSE 'REQUIRED' END as required,
|
||||
CASE type
|
||||
WHEN 'COLOR' THEN printf('[%s](/colors.sql)', type)
|
||||
WHEN 'ICON' THEN printf('[%s](https://tabler-icons.io/?ref=sqlpage)', type)
|
||||
ELSE type
|
||||
END AS type,
|
||||
description
|
||||
from parameter where component = $component AND NOT top_level
|
||||
ORDER BY optional, name;
|
||||
|
||||
select
|
||||
'dynamic' as component,
|
||||
'[
|
||||
{"component": "code"},
|
||||
{
|
||||
"title": "Example ' || (row_number() OVER ()) || '",
|
||||
"description_md": ' || json_quote(description) || ',
|
||||
"language": "sql",
|
||||
"contents": ' || json_quote((
|
||||
select
|
||||
group_concat(
|
||||
'select ' || char(10) ||
|
||||
(
|
||||
with t as (
|
||||
select *,
|
||||
case type
|
||||
when 'array' then json_array_length(value)>1
|
||||
else false
|
||||
end as is_arr
|
||||
from json_tree(top.value)
|
||||
),
|
||||
key_val as (select
|
||||
CASE t.type
|
||||
WHEN 'integer' THEN t.atom
|
||||
WHEN 'real' THEN t.atom
|
||||
WHEN 'true' THEN 'TRUE'
|
||||
WHEN 'false' THEN 'FALSE'
|
||||
WHEN 'null' THEN 'NULL'
|
||||
WHEN 'object' THEN 'JSON(' || quote(t.value) || ')'
|
||||
WHEN 'array' THEN 'JSON(' || quote(t.value) || ')'
|
||||
ELSE quote(t.value)
|
||||
END as val,
|
||||
CASE parent.fullkey
|
||||
WHEN '$' THEN t.key
|
||||
ELSE parent.key
|
||||
END as key
|
||||
from t inner join t parent on parent.id = t.parent
|
||||
where ((parent.fullkey = '$' and not t.is_arr)
|
||||
or (parent.path = '$' and parent.is_arr))
|
||||
),
|
||||
key_val_padding as (select
|
||||
CASE
|
||||
WHEN (key LIKE '% %') or (key LIKE '%-%') THEN
|
||||
format('"%w"', key)
|
||||
ELSE
|
||||
key
|
||||
END as key,
|
||||
val,
|
||||
1 + max(0, max(case when length(val) < 30 then length(val) else 0 end) over () - length(val)) as padding
|
||||
from key_val
|
||||
)
|
||||
select group_concat(
|
||||
format(' %s%.*cas %s', val, padding, ' ', key),
|
||||
',' || char(10)
|
||||
) from key_val_padding
|
||||
) || ';',
|
||||
char(10)
|
||||
)
|
||||
from json_each(properties) AS top
|
||||
)) || '
|
||||
}, '||
|
||||
CASE component
|
||||
WHEN 'shell' THEN '{"component": "text", "contents": ""}'
|
||||
WHEN 'http_header' THEN '{ "component": "text", "contents": "" }'
|
||||
ELSE '
|
||||
{"component": "title", "level": 3, "contents": "Result"},
|
||||
{"component": "dynamic", "properties": ' || properties ||' }
|
||||
'
|
||||
END || '
|
||||
]
|
||||
' as properties
|
||||
from example where component = $component AND properties IS NOT NULL;
|
||||
|
||||
SELECT 'title' AS component, 3 AS level, 'Examples' AS contents
|
||||
WHERE EXISTS (SELECT 1 FROM example WHERE component = $component AND properties IS NULL);
|
||||
SELECT 'text' AS component, description AS contents_md
|
||||
FROM example WHERE component = $component AND properties IS NULL;
|
||||
|
||||
|
||||
select 'title' as component, 2 as level, 'See also: other components' as contents;
|
||||
select
|
||||
'button' as component,
|
||||
'sm' as size,
|
||||
'pill' as shape;
|
||||
select
|
||||
name as title,
|
||||
icon,
|
||||
sqlpage.set_variable('component', name) as link
|
||||
from component
|
||||
order by name;
|
||||
Reference in New Issue
Block a user