Skip to main content

Module export

Module export 

Source
Expand description

数据导出 Axum 流式处理器(仅 server:纯 Axum 路由,无 WASM 消费者)。 数据导出:Axum 流式路由(大文件不走 JSON 序列化)。

鉴权走 crate::api::auth::require_admin_from_headers:从 cookie 取 session,校验管理员。 两种来源:按表导出(表名白名单)/ 按查询导出(强制只读,AST 校验)。 两种格式:CSV(COPY TO STDOUT 流式)/ SQL(逐行拼 INSERT)。

Structs§

ExportParams
ExportSource 🔒
解析后的导出来源。

Constants§

SQL_EXPORT_CHUNK_BYTES 🔒
单个响应块的字节上限;缓冲达到后即推给客户端。

Functions§

export_csv 🔒
CSV 导出:用 COPY … TO STDOUT WITH CSV 流式(大表不 OOM)。
export_data
GET /api/database/export —— 流式导出。
export_sql 🔒
SQL 导出:逐行拼 INSERT(纯数据,不含 DDL)。
is_simple_ident 🔒
简单标识符校验(字母数字下划线,防 SQL 注入与路径穿越)。
parse_source 🔒
解析导出来源。
row_literals 🔒
一行文本单元格转成 SQL 字面量。
sql_literal 🔒
把单元格的文本表示转成 SQL 字面量:NULL 原样;布尔写 TRUE/FALSE;有限数值不加引号; 其余(含 NaN/Infinity)单引号转义,插入时由目标列类型解析。
text_cast_query 🔒
把查询包进子查询,按位置给列起别名后逐列 ::text,由数据库输出任意类型的文本表示; 按位置取列,重名列也不冲突。
trim_statement_tail 🔒
去掉语句末尾的分号、空白与注释:嵌进子查询后,末尾的 ; 或行注释会破坏外层语法。