sqlx prepare added

This commit is contained in:
filipriec
2025-03-11 11:36:40 +01:00
parent fc6f033711
commit a24ef3d064
13 changed files with 164 additions and 55 deletions

View File

@@ -1,18 +0,0 @@
{
"db_name": "PostgreSQL",
"query": "INSERT INTO table_definitions\n (profile_id, table_name, columns, indexes, linked_table_id)\n VALUES ($1, $2, $3, $4, $5)",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Int8",
"Text",
"Jsonb",
"Jsonb",
"Int8"
]
},
"nullable": []
},
"hash": "3adac56bb53ad25d03352a6e75cab29f8a1b4620e528a16831b7a61135ccb746"
}

View File

@@ -0,0 +1,16 @@
{
"db_name": "PostgreSQL",
"query": "INSERT INTO table_definition_links\n (source_table_id, linked_table_id, is_required)\n VALUES ($1, $2, $3)",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Int8",
"Int8",
"Bool"
]
},
"nullable": []
},
"hash": "41621bc47426b92c64e6dfc56f001ad47263b6eed93f5f68601746c4059db3f8"
}

View File

@@ -0,0 +1,26 @@
{
"db_name": "PostgreSQL",
"query": "INSERT INTO table_scripts\n (table_definitions_id, target_column, target_column_type, script, description)\n VALUES ($1, $2, $3, $4, $5)\n RETURNING id",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int8"
}
],
"parameters": {
"Left": [
"Int8",
"Text",
"Text",
"Text",
"Text"
]
},
"nullable": [
false
]
},
"hash": "4cd5de4d3332ca35a9975ffb32728041978435e14f97c559e2ffec4a82d567ae"
}

View File

@@ -1,28 +0,0 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT\n td.table_name,\n ltd.table_name as \"linked_table_name?\"\n FROM table_definitions td\n LEFT JOIN table_definitions ltd ON td.linked_table_id = ltd.id\n WHERE td.profile_id = $1\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "table_name",
"type_info": "Text"
},
{
"ordinal": 1,
"name": "linked_table_name?",
"type_info": "Text"
}
],
"parameters": {
"Left": [
"Int8"
]
},
"nullable": [
false,
false
]
},
"hash": "5d8e169a5173fd45cf42f56c5dcc85cf5ac7af1950b269d8a57b080fc2684d60"
}

View File

@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
"query": "SELECT id FROM table_definitions\n WHERE profile_id = $1 AND table_name = $2",
"query": "SELECT id FROM table_definitions\n WHERE profile_id = $1 AND table_name = $2",
"describe": {
"columns": [
{
@@ -19,5 +19,5 @@
false
]
},
"hash": "9156cb59f4b13da4efa71051444e401f8e88524733d8ec46e4ef13f87ad8214d"
"hash": "792d886a32bc6b6b7ca27ad347e96ff4ae66a4b8da8185dfb27b9d883e068c43"
}

View File

@@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
"query": "SELECT id, columns, linked_table_id FROM table_definitions\n WHERE profile_id = $1 AND table_name = $2",
"query": "SELECT id, table_name, columns, profile_id\n FROM table_definitions WHERE id = $1",
"describe": {
"columns": [
{
@@ -10,26 +10,31 @@
},
{
"ordinal": 1,
"name": "table_name",
"type_info": "Text"
},
{
"ordinal": 2,
"name": "columns",
"type_info": "Jsonb"
},
{
"ordinal": 2,
"name": "linked_table_id",
"ordinal": 3,
"name": "profile_id",
"type_info": "Int8"
}
],
"parameters": {
"Left": [
"Int8",
"Text"
"Int8"
]
},
"nullable": [
false,
false,
true
false,
false
]
},
"hash": "bda5d4507e4f190b8b9df224688095bb0c77017709415e91e8164a5f029f46af"
"hash": "a466364aa022c2bae1a58f683ecdf390205e43da6b04f46a42820b2fff9e6a79"
}

View File

@@ -0,0 +1,22 @@
{
"db_name": "PostgreSQL",
"query": "SELECT ltd.table_name \n FROM table_definition_links tdl\n JOIN table_definitions ltd ON tdl.linked_table_id = ltd.id\n WHERE tdl.source_table_id = $1 AND tdl.is_required = true",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "table_name",
"type_info": "Text"
}
],
"parameters": {
"Left": [
"Int8"
]
},
"nullable": [
false
]
},
"hash": "b097f30f98490b979939759d85327a20ca7ade4866052a5cfdb0451fb76fbf15"
}

View File

@@ -0,0 +1,28 @@
{
"db_name": "PostgreSQL",
"query": "SELECT target_column, script FROM table_scripts WHERE table_definitions_id = $1",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "target_column",
"type_info": "Text"
},
{
"ordinal": 1,
"name": "script",
"type_info": "Text"
}
],
"parameters": {
"Left": [
"Int8"
]
},
"nullable": [
false,
false
]
},
"hash": "b519307ed5b2dba41c37845f23f9abff35312b62cf05ef2e8c5faa4ab0b0c194"
}

View File

@@ -0,0 +1,25 @@
{
"db_name": "PostgreSQL",
"query": "INSERT INTO table_definitions\n (profile_id, table_name, columns, indexes)\n VALUES ($1, $2, $3, $4)\n RETURNING id",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "id",
"type_info": "Int8"
}
],
"parameters": {
"Left": [
"Int8",
"Text",
"Jsonb",
"Jsonb"
]
},
"nullable": [
false
]
},
"hash": "d1579b19c2b04abd5b58c5ea39f740e403917db736c94e4054d04f8c9509f57a"
}

View File

@@ -0,0 +1,28 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT\n td.table_name,\n COALESCE(\n json_agg(\n json_build_object(\n 'linked_name', ltd.table_name,\n 'required', tdl.is_required\n )\n ) FILTER (WHERE ltd.id IS NOT NULL),\n '[]'\n ) as dependencies\n FROM table_definitions td\n LEFT JOIN table_definition_links tdl ON td.id = tdl.source_table_id\n LEFT JOIN table_definitions ltd ON tdl.linked_table_id = ltd.id\n WHERE td.profile_id = $1\n GROUP BY td.table_name\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "table_name",
"type_info": "Text"
},
{
"ordinal": 1,
"name": "dependencies",
"type_info": "Json"
}
],
"parameters": {
"Left": [
"Int8"
]
},
"nullable": [
false,
null
]
},
"hash": "e23802d20f7f929810f5d294a36d23eca89d4abf6aa7d7d4b4fee9147e153b57"
}

View File

@@ -21,6 +21,8 @@ time = { version = "0.3.39", features = ["local-offset"] }
steel-derive = { git = "https://github.com/mattwparas/steel.git", branch = "master", package = "steel-derive" }
steel-core = { git = "https://github.com/mattwparas/steel.git", version = "0.6.0", features = ["anyhow", "dylibs", "sync"] }
thiserror = "2.0.12"
dashmap = "6.1.0"
lazy_static = "1.5.0"
[lib]
name = "server"

View File

@@ -25,6 +25,7 @@ pub fn execute_script(
) -> Result<Value, ExecutionError> {
let mut vm = Engine::new();
// SAFETY: THIS IS NEEDS TO BE REDONE
// Convert to Box<str> then leak to get 'static lifetime
let static_script: &'static str = Box::leak(script.to_string().into_boxed_str());