Calcite’s schemas are hierarchical, very similar to a unix file-system. So yes, each schema is a “level”. The root schema is at level 0. A schema has a unique name within its parent, and because the the root schema has no parent, it has no name.
Another example. A second level directory in a unix file-system might be /mydb/foodmart. The corresponding second level schema would be “mydb”.”foodmart”. Calcite is flexible enough to model systems that have a database and a schema, or just a schema, or whatever you want. Let’s suppose your system has both a database and a schema, and you connect using database = “mydb” and schema = “foodmart”. Then the default schema for the connection will be the 2nd level schema “mydb”.”foodmart”. Not the root schema. Julian > On May 1, 2017, at 6:58 PM, Jess Balint <[email protected]> wrote: > > Isn't an instance of the schema a "level"? Is the root schema level 0? Why > is it anonymous? Is it supposed to represent the current database/catalog? > > Jess > > On Wed, Apr 26, 2017 at 12:11 PM, Julian Hyde <[email protected]> wrote: > >> It would probably work. (Maybe you'd have to tweak the implementation >> of getExpression.) >> >> Databases traditionally don't have tables at level 0 (i.e. the root >> directory). They usually have tables in level 1 (they belong to a >> user, as in Oracle) or level 2 (they belong to a database and then a >> schema, as in SQL Server). If you put tables at level 0 or level 7 you >> run the risk of confusing the tools. >> >> If you get it working please contribute a test case. >> >> Julian >> >> >> On Wed, Apr 26, 2017 at 8:04 AM, Jess Balint <[email protected]> wrote: >>> What is the function of the root schema? Why can't I use a JdbcSchema as >>> the root? >>> >>> Thx. >>> Jess >>
