An error occurred

We are sorry, but an error occurred while generating this page. You should contact the site's administrator.

In "entries.sql": Error in function call sqlpage.run_sql('_nav.sql', JSON_OBJECT()).
Expected sqlpage.run_sql(sql_file_path, variables)
entries.sql: line 21
Backtrace
Error in function call sqlpage.run_sql('_nav.sql', JSON_OBJECT()).
Expected sqlpage.run_sql(sql_file_path, variables)
run_sql: unable to run "_nav.sql"
In "_nav.sql": The following error occurred while executing an SQL statement:
error returned from database: column d.footer_hint does not exist

The SQL statement sent by SQLPage was:
WITH raw AS (SELECT coalesce(CAST($1 AS TEXT), '') AS path_raw), pp AS (SELECT coalesce((regexp_match(split_part(path_raw, '?', 1), '([^/]+)$'))[1], '') AS page, coalesce(TRIM(BOTH '/' FROM split_part(path_raw, '?', 1)), '') AS path_trim, CAST($2 AS TEXT)::JSONB AS v, coalesce(lower('/' || coalesce(TRIM(BOTH '/' FROM split_part(path_raw, '?', 1)), '') || CASE WHEN nullif(split_part(path_raw, '?', 2), '') IS NOT NULL THEN '?' || split_part(path_raw, '?', 2) ELSE '' END), '') AS loc_norm FROM raw), nav_cols AS (SELECT EXISTS (SELECT 1 FROM information_schema.columns c WHERE c.table_schema = 'public' AND c.table_name = 'nav_menu_dashboard' AND c.column_name = 'footer_hint') AS has_footer_hint), dash_default_link AS (SELECT COALESCE((SELECT d.href FROM nav_menu_dashboard d ORDER BY d.sort_order, d.title LIMIT 1), '/index.sql') AS first_href), dash_sub AS (SELECT coalesce((SELECT jsonb_agg(jsonb_build_object('title', d.title, 'link', d.href, 'icon', coalesce(d.icon, 'layout-dashboard'), 'active', coalesce(pp.loc_norm = lower(TRIM(BOTH '/' FROM d.href)), false)) ORDER BY d.sort_order, d.title) FROM nav_menu_dashboard d), '[]'::JSONB) AS submenu FROM pp), dash_footer AS (SELECT CASE WHEN nav_cols.has_footer_hint AND pp.path_trim ~ '(^|/)dashboard/[^/]+\.sql$' THEN COALESCE((SELECT NULLIF(TRIM(BOTH E'\n\t ' FROM d.footer_hint), '') FROM nav_menu_dashboard d WHERE lower(TRIM(BOTH '/' FROM d.href)) = lower(TRIM(BOTH '/' FROM pp.path_trim)) LIMIT 1), '') ELSE '' END AS hint FROM pp CROSS JOIN nav_cols), filter_sub AS (SELECT coalesce(jsonb_build_array(jsonb_build_object('title', 'Erweiterte Filter', 'link', '/entries.sql', 'icon', 'adjustments', 'active', coalesce(pp.loc_norm = '/entries.sql' OR pp.loc_norm LIKE '/entries.sql?%', false))) || coalesce((SELECT jsonb_agg(jsonb_build_object('title', f.title, 'link', f.href, 'icon', coalesce(f.icon, 'filter'), 'active', coalesce(pp.loc_norm = lower(TRIM(BOTH '/' FROM f.href)), false)) ORDER BY f.sort_order, f.title) FROM nav_menu_filter_preset f), '[]'::JSONB), '[]'::JSONB) AS submenu FROM pp), src_sub AS (SELECT coalesce(jsonb_build_array(jsonb_build_object('title', 'Alle Quellen', 'link', '/sources.sql', 'icon', 'server', 'active', coalesce(pp.page = 'sources.sql', false))) || coalesce((SELECT jsonb_agg(jsonb_build_object('title', coalesce(nullif(TRIM(s.name), ''), s.source_id), 'link', '/source.sql?source_id=' || s.source_id, 'icon', 'rss', 'active', coalesce(pp.page = 'source.sql' AND coalesce(pp.v ->> 'source_id', '') = s.source_id, false)) ORDER BY coalesce(nullif(TRIM(s.name), ''), s.source_id)) FROM sources s WHERE s.active = true), '[]'::JSONB), '[]'::JSONB) AS submenu FROM pp), menu_item AS (SELECT jsonb_build_array(jsonb_build_object('title', 'Alle Eintraege', 'link', '/index.sql', 'icon', 'list', 'active', coalesce((pp.page = 'index.sql' OR pp.path_trim = '') AND coalesce(pp.v ->> 'q', '') = '', false)), jsonb_build_object('title', 'CVEs', 'link', '/cves.sql', 'icon', 'bug', 'active', coalesce(pp.page IN ('cves.sql', 'cve.sql'), false)), jsonb_build_object('title', 'Dashboards', 'link', ddl.first_href, 'icon', 'layout-dashboard', 'active', coalesce(pp.path_trim ~ '(^|/)dashboard/', false), 'submenu', dash_sub.submenu), jsonb_build_object('title', 'Filter', 'link', '/entries.sql', 'icon', 'filter', 'active', coalesce(pp.page = 'entries.sql' OR pp.loc_norm LIKE '/entries.sql?%' OR EXISTS (SELECT 1 FROM nav_menu_filter_preset nf WHERE pp.loc_norm = lower(TRIM(BOTH '/' FROM nf.href))), false), 'submenu', filter_sub.submenu), jsonb_build_object('title', 'Quellen', 'link', '/sources.sql', 'icon', 'server', 'active', coalesce(pp.page IN ('sources.sql', 'source.sql'), false), 'submenu', src_sub.submenu), jsonb_build_object('title', 'Bookmarks', 'link', '/bookmarks.sql', 'icon', 'bookmark', 'active', coalesce(pp.page = 'bookmarks.sql', false)), jsonb_build_object('title', 'Suche', 'link', '/search.sql', 'icon', 'search', 'active', coalesce(pp.page = 'search.sql', false))) AS items FROM pp CROSS JOIN dash_default_link ddl CROSS JOIN dash_sub CROSS JOIN filter_sub CROSS JOIN src_sub) SELECT 'shell' AS component, 'Sec Feed Reader' AS title, '/index.sql' AS link, 'shield' AS icon, 'Security-Advisories und CVEs aus konfigurierten Feeds.' || E'\n' || 'Stack: Aggregator · SQLPage · PostgreSQL.' AS description, 'dark' AS theme, '/assets/readability-dark.css' AS css, '["/assets/external-links-newtab.js","/assets/table-default-sort-published.js","/assets/sidebar-submenu-open.js"]' AS javascript, true AS sidebar, 'dark' AS sidebar_theme, 'fluid' AS layout, menu_item.items AS menu_item, CASE WHEN df.hint <> '' THEN df.hint || E'\n\n' ELSE '' END || 'Aggregator · SQLPage + PostgreSQL' AS footer FROM menu_item CROSS JOIN dash_footer df;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ⬆️

_nav.sql: lines 9 to 271
Built with SQLPage