-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Format] Add arbitrarily nested (metadata) schemas #320
Comments
There's some ambiguity here; what should we do if a schema name (for whatever reason) contains the delimiter? Normally the driver would be returning 'unescaped' names, but now there's nothing we can do here. A different solution might be to make the name columns It would be good to combine this with #621 for a future 'GetObjects2'-style function. (And possibly, break up the nested schema.) |
It also significantly complicates the filters in the API; again, do you supply the escaped name? Or all functions have to take a list, which is a bit painful |
And hmm, what do JDBC/ODBC do here? JDBC also assumes a fixed catalog/schema/table hierarchy. So what happens for Dremio, etc.? Dremio doesn't even implement getDbSchemas (IIRC) despite having designed the spec, so not sure if we can use it as a real life example. What does the Trino JDBC driver do? |
I don't know that I've personally worked with a database that allows for arbitrarily nested schemas but would be curious to know how client tools handle this via ODBC/JDBC today. I'm guessing that a nested schema would be represented as You would lose a "clean" understanding of the schema hierarchy, but AFAIK that is not a SQL standard anyway |
Yup, I'm just curious about a few things like
etc. And I wonder if these systems even expose this info in their metadata in the first place, given the main use case appears to be pulling in data from external systems. |
ADBC's model of database metadata is limited to a catalog-schema-table hierarchy; some systems allow unlimited nesting. (See #46.)
Proposal:
For example: a table like
postgres1.dbname.schemaname.table
(which has 4 layers of hierarchy rather than 3) would be represented as: catalog =postgres1
, db_schema =dbname.schemaname
, table =table
.This proposal applies across languages. See #317 for how to manage backwards compatibility.
The text was updated successfully, but these errors were encountered: