fix: support postgres pragma table info

This commit is contained in:
ImBenji
2026-08-19 08:42:58 +01:00
parent 8288bbc028
commit 9eb59443bd
+18
View File
@@ -64,6 +64,24 @@ function rewritePlaceholders(sql, params) {
function rewriteSql(sql, params) {
let text = String(sql).trim();
const pragmaTable = text.match(/^PRAGMA\s+table_info\((?:"([^"]+)"|'([^']+)'|([^)]+))\)$/i);
if (pragmaTable) {
const table = String(pragmaTable[1] || pragmaTable[2] || pragmaTable[3] || '').trim();
return {
sql: `
SELECT ordinal_position - 1 AS cid,
column_name AS name,
data_type AS type,
CASE WHEN is_nullable = 'NO' THEN 1 ELSE 0 END AS notnull,
column_default AS dflt_value,
0 AS pk
FROM information_schema.columns
WHERE table_schema = current_schema() AND table_name = $1
ORDER BY ordinal_position
`,
params: [table],
};
}
text = text.replace(/INSERT\s+OR\s+IGNORE\s+INTO/gi, 'INSERT INTO');
text = text.replace(/INSERT\s+OR\s+REPLACE\s+INTO\s+autonomy_outcomes\s*\(([^)]+)\)\s*VALUES\s*\(([^)]+)\)/i,
(match, columns, values) => {