
--- Scott Dial <scott+python-ideas@scottdial.com> wrote:
Steve Howell wrote:
Presumbably most people who use SQL databases already have to understand the syntax anyway. And those that don't can simply ignore it.
That simply will never be true. If there is new syntax added to Python, than the burden is on everyone to understand other people's code that uses such a feature. I'm very familiar with SQL and I am still not convinced that I want to see it in my Python.
I fully concede to working under the premise that most Python programmers know SQL, and you're a perfect example, I guess, but I realize there are exceptions, and I don't deny that as a tradeoff, just like I don't deny that any expansion of a language's functionality reduces comprehension for average users. Written any decorators lately?
First of all, the concept of a relational table is ill-defined.
SQL's been around for at least 20 years, as has the concept of a relational table. So it's not exactly ill-defined. Start here, if you disagree: http://en.wikipedia.org/wiki/Relational_model
I gather from your code that you believe this to be a list containing dictionaries, but why could this not be a tuple of tuples?
In the code that I posted, I don't "believe" that I'm dealing with a list of dictionaries, I "know" because I wrote it. You can check it out yourself. But I agree with your implied premise that the Python interpreter doesn't know what it's dealing with, and I fully accept in my proposal that Python, not some third-party library, would properly throw an exception when it found my data not to fit the relational model, just as generator expressions sometimes throw run-time expressions, just as lambdas throw run-time expressions, etc. I'm ok with that.
For that matter, any iterable of iterables? Or how about using tuple'd indices, and so on.. It would be impossible to graft the SQL language onto all of the variations on the idea of a "table" in Python.
I'm not proposing to graft SQL on to all variations of the "table" in Python, just the ones that conform to a relational model.
Python does not have a relational table data structure, thus there cannot be a relational language used to address such a structure.
Python certainly expresses data structures that don't fit the relational model, but please explain to me how a list of dictionaries doesn't fit the relational model. And don't bore me with the explanation that dictionaries can be heterogeneous; I'd just have Python throw an exception there. ____________________________________________________________________________________ Expecting? Get great news right away with email Auto-Check. Try the Yahoo! Mail Beta. http://advision.webevents.yahoo.com/mailbeta/newmail_tools.html