Allow to set default catalog and default schema when `transform_sql`
Description
Currently, wren-core-rs recognizes a qualified table name to generate the corresponding model. The user needs to provide the full name of the model in the query, such as:
SELECT * FROM wren.public.orders
It would be more convenient if the user could simply query with the table name:
SELECT * FROM orders
Solution
We can modify the transform_sql API to apply the catalog and schema of MDL to the DataFusion SessionContext.
It is also related to the V3 validation API. https://github.com/Canner/wren-engine/blob/8449442a54a7953dee694bf5526f35448da23273/ibis-server/tests/routers/v3/connector/test_postgres.py#L311-L312
@goldmedal Can you assign it to me?
Thanks @himanshu634. If you have any questions about it, feel free to ask me here or leave message.
Hey @goldmedal , I want to understand the project. What module does what work?
Hey @goldmedal , I want to understand the project. What module does what work?
Hi @himanshu634, sorry for the delayed response; I had some personal matters to attend to.
This project is transitioning to a Rust implementation. There are many legacy Java modules you can ignore. You only need to focus on the following three modules:
- ibis-server: This is a server responsible for data source connections (e.g., Postgres, BigQuery, etc.).
- wren-modeling-rs: This Rust module handles data modeling and can translate a semantic SQL based on an MDL (provided by WrenAI web) into a real SQL. For more information about modeling concepts, you can check our documentation.
- wren-modeling-py: This is a Python API for
wren-modeling-rs. Theibis-serveruses it to invokewren-modeling-rs. You can refer to https://github.com/Canner/wren-engine/pull/710 to see how it is used.
I hope this information is helpful to you.
Hey @goldmedal , I want to understand the project. What module does what work? Here's a grammatically corrected version:
Hi @himanshu634, sorry for the delayed response; I had some personal matters to attend to.
This project is transitioning to a Rust implementation. There are many legacy Java modules you can ignore. You only need to focus on the following three modules:
- ibis-server: This is a server responsible for data source connections (e.g., Postgres, BigQuery, etc.).
- wren-modeling-rs: This Rust module handles data modeling and can translate a semantic SQL based on an MDL (provided by WrenAI web) into a real SQL. For more information about modeling concepts, you can check our documentation.
- wren-modeling-py: This is a Python API for
wren-modeling-rs. Theibis-serveruses it to invokewren-modeling-rs. You can refer to Provide the V3 API of Ibis server for the wren-core rust beta version #710 to see how it is used.I hope this information is helpful to you.
Thanks.
Hi @himanshu634 Due to our schedule, I finished this work first. I found it may not be so simple for someone unfamiliar with our project and Rust. Maybe it's not a good first issue I think 🤔 Anyway, thank you for trying to contribute to wren-engine.