From f8b2c4b136505bd614fa93cffac8033d09cfd9ad Mon Sep 17 00:00:00 2001 From: filipriec Date: Fri, 14 Mar 2025 12:58:31 +0100 Subject: [PATCH] fixing regex error --- .../docs/script_refering_different_table.txt | 29 +++++++++++++++++++ server/src/steel/server/syntax_parser.rs | 2 +- .../table_definition/docs/push_new_table.txt | 28 ++++++++++++++++++ 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 server/src/steel/docs/script_refering_different_table.txt diff --git a/server/src/steel/docs/script_refering_different_table.txt b/server/src/steel/docs/script_refering_different_table.txt new file mode 100644 index 0000000..477923b --- /dev/null +++ b/server/src/steel/docs/script_refering_different_table.txt @@ -0,0 +1,29 @@ +Creation of the tables: + +❯ grpcurl -plaintext -d '{ + "table_name": "department", + "columns": [ + {"name": "yearly_goal", "field_type": "text"} + ], + "profile_name": "finance" +}' localhost:50051 multieko2.table_definition.TableDefinition/PostTableDefinition +{ + "success": true, + "sql": "CREATE TABLE \"2025_department\" (\n id BIGSERIAL PRIMARY KEY,\n deleted BOOLEAN NOT NULL DEFAULT FALSE,\n \"yearly_goal\" TEXT,\n created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP\n)\n" +} +❯ grpcurl -plaintext -d '{ + "table_name": "project", + "columns": [ + {"name": "name", "field_type": "TEXT"}, + {"name": "budget_estimate", "field_type": "TEXT"} + ], + "indexes": ["name"], + "profile_name": "finance", + "links": [ + {"linked_table_name": "2025_department", "required": true} + ] +}' localhost:50051 multieko2.table_definition.TableDefinition/PostTableDefinition +{ + "success": true, + "sql": "CREATE TABLE \"2025_project\" (\n id BIGSERIAL PRIMARY KEY,\n deleted BOOLEAN NOT NULL DEFAULT FALSE,\n \"department_id\" BIGINT NOT NULL REFERENCES \"2025_department\"(id),\n \"name\" TEXT,\n \"budget_estimate\" TEXT,\n created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP\n)\nCREATE INDEX idx_2025_project_department_fk ON \"2025_project\" (\"department_id\")\nCREATE INDEX idx_2025_project_name ON \"2025_project\" (\"name\")" +} diff --git a/server/src/steel/server/syntax_parser.rs b/server/src/steel/server/syntax_parser.rs index 779baca..f40938c 100644 --- a/server/src/steel/server/syntax_parser.rs +++ b/server/src/steel/server/syntax_parser.rs @@ -15,7 +15,7 @@ impl SyntaxParser { column_access_re: Regex::new(r"@(\w+)").unwrap(), relationship_re: Regex::new(r"@(\w+)\.(\w+)").unwrap(), indexed_access_re: Regex::new(r"@(\w+)\[(\d+)\]\.(\w+)").unwrap(), - sql_integration_re: Regex::new(r#"@sql\((["'])(.*?)\1\)"#).unwrap(), + sql_integration_re: Regex::new(r#"@sql\((['"])(.*?)['"]\)"#).unwrap(), } } diff --git a/server/src/table_definition/docs/push_new_table.txt b/server/src/table_definition/docs/push_new_table.txt index f230cf5..02cd4a9 100644 --- a/server/src/table_definition/docs/push_new_table.txt +++ b/server/src/table_definition/docs/push_new_table.txt @@ -127,3 +127,31 @@ Indexes: "idx_2025_adresar6_mesto" btree (mesto) multi_rust_dev=> + + + + + + + + +grpcurl -plaintext -d '{ + "table_name": "project_management4", + "columns": [ + {"name": "project_name", "field_type": "text"}, + {"name": "description", "field_type": "text"}, + {"name": "budget", "field_type": "text"}, + {"name": "is_active", "field_type": "boolean"}, + {"name": "deadline", "field_type": "timestamp"} + ], + "indexes": ["project_name", "is_active", "deadline"], + "profile_name": "default", + "links": [ + {"linked_table_name": "2025_customer", "required": true}, + {"linked_table_name": "2025_product", "required": false}, + {"linked_table_name": "2025_author", "required": true}, + {"linked_table_name": "2025_order", "required": false}, + {"linked_table_name": "2025_shipping_provider", "required": false}, + {"linked_table_name": "2025_ecom_product", "required": false} + ] +}' localhost:50051 multieko2.table_definition.TableDefinition/PostTableDefinition