|
|
| |
| |
| |
| CREATE TABLE attribute_parsers ( |
| parser_id VARCHAR(50) PRIMARY KEY, |
| parser_name VARCHAR(100) NOT NULL, |
| importance INTEGER DEFAULT 1, |
| created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() |
| ); |
|
|
| |
| |
| |
| CREATE TABLE parser_initial_vars ( |
| var_id SERIAL PRIMARY KEY, |
| parser_id VARCHAR(50) REFERENCES attribute_parsers(parser_id) ON DELETE CASCADE, |
| var_key VARCHAR(50) NOT NULL, |
| |
| |
| var_value TEXT NOT NULL, |
| var_type VARCHAR(20) NOT NULL, |
| |
| UNIQUE(parser_id, var_key) |
| ); |
|
|
| |
| |
| |
| CREATE TABLE parser_strategies ( |
| strategy_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), |
| parser_id VARCHAR(50) REFERENCES attribute_parsers(parser_id) ON DELETE CASCADE, |
| strategy_name VARCHAR(100) NOT NULL, |
| hint_template TEXT; |
| hint_capture TEXT; |
| fill_template TEXT; |
| regex_pattern TEXT NOT NULL, |
| output_variable VARCHAR(50) NOT NULL, |
| unambiguous INTEGER DEFAULT 0, |
| execution_order INTEGER NOT NULL, |
| UNIQUE(parser_id, execution_order) |
| ); |
|
|
| |
| |
| |
| CREATE TABLE strategy_operations ( |
| operation_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), |
| strategy_id UUID REFERENCES parser_strategies(strategy_id) ON DELETE CASCADE, |
| op_code VARCHAR(50) NOT NULL, |
| input_variables TEXT[] NOT NULL, |
| output_variable VARCHAR(50) NOT NULL, |
| step_sequence INTEGER NOT NULL, |
| UNIQUE(strategy_id, step_sequence) |
| ); |
|
|
| |
| |
| |
| CREATE TABLE tag_parser_routing ( |
| routing_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), |
| tag_id VARCHAR(50) REFERENCES expression_tags(tag_id) ON DELETE CASCADE, |
| parser_id VARCHAR(50) REFERENCES attribute_parsers(parser_id) ON DELETE CASCADE, |
| is_required BOOLEAN DEFAULT FALSE, |
| UNIQUE(tag_id, parser_id) |
| ); |
|
|