kayak / pypika

PyPika is a python SQL query builder that exposes the full richness of the SQL language using a syntax that reflects the resulting query. PyPika excels at all sorts of SQL queries but is especially useful for data analysis.
http://pypika.readthedocs.io/en/latest/
Apache License 2.0
2.43k stars 292 forks source link

can we get querybuilder object from stringified obj? #787

Open RasoulZamani opened 5 months ago

RasoulZamani commented 5 months ago

Hi, thank you fort your open source package PyPika!

I want to use pypika objects as a custom filed type in pydantic, when I want to serialize and deserialize my pydantic model, for pypika field I get error. It seems I need method like QueryBuilder.from_str(query_str) that get string and make querybuider from it. for example

customers = Table('customers')
q_str =str(Query.from_(customers).select(customers.id))

get us :query_str = "SELECT id FROM customers" I want to get q object when I have query_str

Is it possible?

wd60622 commented 5 months ago

It is not part of the library. But I think it would be cool functionality

I've built out some simple parsing using sqlparse but it is not very robust so I haven't released it. Mainly making use of the sqlparse.parse function. It might be good to look into if it isn't on your radar.

How complex are the queries that you are working with?

RasoulZamani commented 5 months ago

Thank you very much for your response, my queries will be complex. As I explained, my main issue is using pypika objects as a field type in the pydantic. For now I simply stringify them, but in deserialization I have no idea. Do you have suggestion for serialization and deserialization of pypika instanses (except stringify)?

wd60622 commented 4 months ago

Not totally sure. Maybe something like this. Were you able to come up with any solutions?