@@ -42,38 +42,45 @@ The identifier of any object must be unique among all other objects that share t
4242
4343Based on the uniqueness property of an object name within its parent namespace,
4444an object identifier is the list of object names starting from (not including) the root namespace to (including) the object itself.
45- This is also called an ** list identifier** .
45+ This is also called an ** list style identifier** .
4646For examples:
4747
48- - the list identifier of ` cat5 ` is ` [cat2, cat5] `
49- - the list identifier of ` t1 ` is ` [cat2, cat5, t1] `
48+ - the list style identifier of ` cat5 ` is ` [cat2, cat5] `
49+ - the list style identifier of ` t1 ` is ` [cat2, cat5, t1] `
5050
51- The dot (` . ` ) symbol is typically used as the delimiter to join all the names to form an ** string identifier** ,
51+ The dot (` . ` ) symbol is typically used as the delimiter to join all the names to form an ** string style identifier** ,
5252but other symbols could also be used if dot is used in the object name.
5353For examples:
5454
55- - the string identifier of ` cat5 ` is ` cat2.cat5 `
56- - the string identifier of ` t1 ` is ` cat2.cat5.t1 `
57- - the string identifier of ` t3 ` is ` cat4$t3 ` when using delimiter ` $ `
55+ - the string style identifier of ` cat5 ` is ` cat2.cat5 `
56+ - the string style identifier of ` t1 ` is ` cat2.cat5.t1 `
57+ - the string style identifier of ` t3 ` is ` cat4$t3 ` when using delimiter ` $ `
5858
5959## Name and Identifier for Root Namespace
6060
6161The root namespace itself has no name or identifier.
62- When represented in code, its name and string identifier is represented by an empty or null string,
63- and its list identifier is represented by an empty or null list.
62+ When represented in code, its name and string style identifier is represented by an empty or null string,
63+ and its list style identifier is represented by an empty or null list.
6464
6565The actual name and identifier of the root namespace is typically
6666assigned by users through some configuration when used in a tool.
6767For example, a root namespace can be called ` cat1 ` in Ray, but called ` cat2 ` in Apache Spark,
6868and they are both configured to connect to the same root namespace.
6969
70- ## Namespace Level
70+ ## Object Level
7171
72- If every table has the same number of namespaces all the way to the root namespace,
73- the namespace is called ** leveled** . The [ example above] ( #namespace-definition ) is not leveled
74- because ` t1 ` has 2 namespaces ` ns1 ` and ` ns4 ` before root, whereas ` t2 ` has 1 namespace ` ns2 ` before root.
72+ The root namespace is always at level 0.
73+ This means if an object has list style identifier with list size ` N ` ,
74+ the object is at the ` N ` th level in the entire namespace hierarchy.
75+ We also say the object identifier has ` N ` levels.
76+ For examples, a namespace ` [ns1, ns2] ` is at level 2, the identifier ` ns1.ns2 ` has 2 levels.
77+ A table ` [catalog1, database2, table3] ` is at level 3, the identifier ` catalog1.database2.table3 ` has 3 levels.
78+
79+ ### Leveled Namespace
7580
76- For a leveled namespace, the number of namespaces up to and including the root for any table
77- is referred to as the ** number of levels ** .
81+ If every table in the root namespace are at the same level ` N ` , the namespace is called ** leveled ** ,
82+ and we say this namespace is a ` N ` -level namespace .
7883For example, a [ directory namespace] ( ../impls/dir ) is a 1-level namespace,
79- and a [ Hive 2.x namespace] ( ../impls/hive ) is a 2-level namespace.
84+ and a [ Hive 2.x namespace] ( ../impls/hive ) is a 2-level namespace.
85+ The [ example above] ( #namespace-definition ) is not leveled
86+ because ` t1 ` has 2 namespaces ` ns1 ` and ` ns4 ` before root, whereas ` t2 ` has 1 namespace ` ns2 ` before root.
0 commit comments