WASH_NL2SQL / schema.py
hmm404's picture
Upload 3 files
530a106 verified
schema = """
TABLE states (
state_id INTEGER PRIMARY KEY,
lgd_state_id INTEGER NOT NULL,
state_name TEXT NOT NULL,
census_state INTEGER NOT NULL
)
TABLE districts (
district_id INTEGER PRIMARY KEY,
lgd_district_id INTEGER NOT NULL,
district_name TEXT NOT NULL,
census_district INTEGER NOT NULL
)
TABLE blocks (
block_id INTEGER PRIMARY KEY,
lgd_block_id INTEGER NOT NULL,
block_name TEXT NOT NULL
)
TABLE panchayats (
panchayat_id INTEGER PRIMARY KEY,
lgd_panchayat_id INTEGER NOT NULL,
panchayat_name TEXT NOT NULL
)
TABLE divisions (
division_id INTEGER PRIMARY KEY,
division_name TEXT NOT NULL
)
TABLE villages (
village_id INTEGER PRIMARY KEY,
lgd_village_id INTEGER NOT NULL,
village_name TEXT NOT NULL,
census_village TEXT NOT NULL,
village_type TEXT NOT NULL,
village_status TEXT NOT NULL,
vap_status TEXT NOT NULL,
vwsc_formed INTEGER NOT NULL,
village_certificate INTEGER NOT NULL,
gp_resolution INTEGER NOT NULL,
declaration_video INTEGER NOT NULL,
total_no_households INTEGER NOT NULL,
total_no_house_connection INTEGER NOT NULL,
no_of_ftk_trained_women INTEGER NOT NULL,
no_of_school INTEGER NOT NULL,
school_with_tap_connection INTEGER NOT NULL,
no_of_aws INTEGER NOT NULL,
no_of_aws_with_tap_connection INTEGER NOT NULL,
total_pop INTEGER NOT NULL,
gen_pop INTEGER NOT NULL,
sc_pop INTEGER NOT NULL,
st_pop INTEGER NOT NULL,
sanctioned_approved_status INTEGER,
work_order_updated_status INTEGER,
scheme_is_work_started_status INTEGER
)
TABLE habitations (
habitation_id INTEGER PRIMARY KEY,
habitation_name TEXT NOT NULL,
is_pvtg INTEGER NOT NULL,
community_access_planned INTEGER NOT NULL,
pvtg_fully_partial INTEGER NOT NULL,
pvtg_households INTEGER NOT NULL,
total_no_households INTEGER NOT NULL,
total_no_house_connection INTEGER NOT NULL,
is_pvtg_given_by_mota INTEGER NOT NULL
)
TABLE source_type_categories (
source_type_category_id INTEGER PRIMARY KEY,
description TEXT NOT NULL
)
TABLE source_types (
source_type_id INTEGER PRIMARY KEY,
description TEXT NOT NULL
)
TABLE storage_structure_types (
storage_structure_type_id INTEGER PRIMARY KEY,
description TEXT NOT NULL
)
TABLE categories (
category_id INTEGER PRIMARY KEY,
description TEXT NOT NULL
)
TABLE water_sources (
source_id INTEGER PRIMARY KEY,
location TEXT,
source_type_category_id INTEGER,
source_type_id INTEGER,
response_on TEXT,
scheme_id INTEGER,
latitude TEXT,
longitude TEXT,
pws_fhtc_status INTEGER
)
TABLE schemes (
scheme_id INTEGER PRIMARY KEY,
scheme_name TEXT,
category TEXT,
no_of_villages INTEGER,
household_planned INTEGER,
fhtc_provided INTEGER,
is_pws INTEGER,
fhtc_scheme TEXT,
is_jjm INTEGER,
sanction_year TEXT,
type TEXT,
work_order_date TEXT,
status TEXT,
physical_progress_in_percentage REAL,
handed_over_community_status TEXT,
handed_over_community_date TEXT,
estimated_cost REAL,
csr_donation REAL,
om_cost REAL,
expenditure REAL,
total_central_expenditure REAL,
central_expenditure_sc REAL,
central_expenditure_st REAL,
central_expenditure_gen REAL,
total_state_expenditure REAL,
state_expenditure_sc REAL,
state_expenditure_st REAL,
state_expenditure_gen REAL,
total_world_bank_expenditure REAL,
total_community_expenditure REAL,
total_csr_expenditure REAL,
total_other_expenditure REAL,
total_expenditure_during_JJM REAL,
latitude REAL NOT NULL,
longitude REAL NOT NULL,
location TEXT NOT NULL
)
TABLE scheme_assets (
id INTEGER PRIMARY KEY,
habitation_id INTEGER,
scheme_id INTEGER,
scheme_name TEXT,
latitude REAL,
longitude REAL,
location TEXT,
category_id INTEGER,
FOREIGN KEY (habitation_id) REFERENCES habitations(habitation_id),
FOREIGN KEY (scheme_id) REFERENCES schemes(scheme_id),
FOREIGN KEY (category_id) REFERENCES categories(category_id)
)
TABLE district_state_mapping (
district_id INTEGER PRIMARY KEY,
state_id INTEGER,
FOREIGN KEY (district_id) REFERENCES districts(district_id),
FOREIGN KEY (state_id) REFERENCES states(state_id)
)
TABLE block_district_mapping (
block_id INTEGER PRIMARY KEY,
district_id INTEGER,
FOREIGN KEY (block_id) REFERENCES blocks(block_id),
FOREIGN KEY (district_id) REFERENCES districts(district_id)
)
TABLE block_division_mapping (
block_id INTEGER PRIMARY KEY,
division_id INTEGER,
FOREIGN KEY (block_id) REFERENCES blocks(block_id),
FOREIGN KEY (division_id) REFERENCES divisions(division_id)
)
TABLE panchayat_block_mapping (
panchayat_id INTEGER PRIMARY KEY,
block_id INTEGER,
FOREIGN KEY (panchayat_id) REFERENCES panchayats(panchayat_id),
FOREIGN KEY (block_id) REFERENCES blocks(block_id)
)
TABLE village_panchayat_mapping (
village_id INTEGER PRIMARY KEY,
panchayat_id INTEGER,
FOREIGN KEY (village_id) REFERENCES villages(village_id),
FOREIGN KEY (panchayat_id) REFERENCES panchayats(panchayat_id)
)
TABLE habitation_village_mapping (
habitation_id INTEGER PRIMARY KEY,
village_id INTEGER,
FOREIGN KEY (habitation_id) REFERENCES habitations(habitation_id),
FOREIGN KEY (village_id) REFERENCES villages(village_id)
)
TABLE source_habitation_mapping (
source_id INTEGER PRIMARY KEY,
habitation_id INTEGER,
FOREIGN KEY (source_id) REFERENCES water_sources(source_id),
FOREIGN KEY (habitation_id) REFERENCES habitations(habitation_id)
)
TABLE scheme_village_mapping (
scheme_id INTEGER,
village_id INTEGER,
PRIMARY KEY (scheme_id, village_id),
FOREIGN KEY (scheme_id) REFERENCES schemes(scheme_id),
FOREIGN KEY (village_id) REFERENCES villages(village_id)
)
TABLE scheme_division_mapping (
scheme_id INTEGER PRIMARY KEY,
division_id INTEGER,
FOREIGN KEY (scheme_id) REFERENCES schemes(scheme_id),
FOREIGN KEY (division_id) REFERENCES divisions(division_id)
)
TABLE source_type_source_type_category_mapping (
source_type_id INTEGER PRIMARY KEY,
source_type_category_id INTEGER,
FOREIGN KEY (source_type_id) REFERENCES source_types(source_type_id),
FOREIGN KEY (source_type_category_id) REFERENCES source_type_categories(source_type_category_id)
)
TABLE wtps (
wtp_id INTEGER PRIMARY KEY,
wtp_name INTEGER NOT NULL
)
TABLE labs (
lab_id INTEGER PRIMARY KEY,
lab_name TEXT NOT NULL,
lab_type TEXT NOT NULL,
lab_group TEXT NOT NULL,
latitude REAL,
longitude REAL,
wtp_id INTEGER NOT NULL,
is_in_house INTEGER NOT NULL,
FOREIGN KEY (wtp_id) REFERENCES wtps(wtp_id)
)
TABLE parameters (
parameterid INTEGER PRIMARY KEY,
parameter_name TEXT NOT NULL,
measurement_unit TEXT NOT NULL,
acceptable_limit REAL NOT NULL,
permissible_limit TEXT NOT NULL,
value_type TEXT NOT NULL,
value_type_description TEXT NOT NULL,
public_rate INTEGER NOT NULL,
department_rate INTEGER NOT NULL,
commercial_rate INTEGER NOT NULL,
test_parameter_type TEXT NOT NULL
)
TABLE types (
type_id INTEGER PRIMARY KEY,
type_name TEXT NOT NULL,
description TEXT NOT NULL
)
TABLE wtp_village_mapping (
wtp_id INTEGER PRIMARY KEY,
village_id INTEGER,
FOREIGN KEY (wtp_id) REFERENCES wtps(wtp_id),
FOREIGN KEY (village_id) REFERENCES villages(village_id)
)
TABLE lab_village_mapping (
lab_id INTEGER,
village_id INTEGER,
FOREIGN KEY (lab_id) REFERENCES labs(lab_id),
FOREIGN KEY (village_id) REFERENCES villages(village_id)
)
"""
system_prompt = f"""
You are a precise SQL query generator assistant working with the database schema below.
Only use the tables and columns explicitly provided in the schema when generating SQL.
Schema definition:
{schema}
Guidelines:
- Use the correct primary and foreign key relationships.
- Do not invent tables or columns not listed in the schema.
- If the natural language question is ambiguous, make a reasonable assumption about the intent.
- Output only the final SQL query. Do not add any explanations or commentary.
Instructions: The user question will be provided after this prompt. Write the SQL query that answers it.
"""