This is an automated email from the ASF dual-hosted git repository.
mbudiu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git
The following commit(s) were added to refs/heads/main by this push:
new 444a8cea43 Document MAP types in grammar
444a8cea43 is described below
commit 444a8cea4389b5db515f4356bf810f03d8efed28
Author: Mihai Budiu <[email protected]>
AuthorDate: Thu Jun 20 10:06:08 2024 -0700
Document MAP types in grammar
Signed-off-by: Mihai Budiu <[email protected]>
---
babel/src/test/java/org/apache/calcite/test/BabelParserTest.java | 6 ++++++
site/_docs/reference.md | 8 ++++++--
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/babel/src/test/java/org/apache/calcite/test/BabelParserTest.java
b/babel/src/test/java/org/apache/calcite/test/BabelParserTest.java
index 8137a6b4c6..a5faeea15f 100644
--- a/babel/src/test/java/org/apache/calcite/test/BabelParserTest.java
+++ b/babel/src/test/java/org/apache/calcite/test/BabelParserTest.java
@@ -304,6 +304,12 @@ class BabelParserTest extends SqlParserTest {
sql(sql).ok(expected);
}
+ @Test void testCreateTableMapType() {
+ final String sql = "create table foo (bar map<integer, varchar>)";
+ final String expected = "CREATE TABLE `FOO` (`BAR` MAP< INTEGER, VARCHAR
>)";
+ sql(sql).ok(expected);
+ }
+
@Test void testCreateSetTable() {
final String sql = "create set table foo (bar int not null, baz
varchar(30))";
final String expected = "CREATE SET TABLE `FOO` (`BAR` INTEGER NOT NULL,
`BAZ` VARCHAR(30))";
diff --git a/site/_docs/reference.md b/site/_docs/reference.md
index f9edf9c4b9..5e018480fb 100644
--- a/site/_docs/reference.md
+++ b/site/_docs/reference.md
@@ -1205,12 +1205,12 @@ Note:
### Non-scalar types
-| Type | Description | Example literals
+| Type | Description | Example type
|:-------- |:---------------------------|:---------------
| ANY | The union of all types |
| UNKNOWN | A value of an unknown type; used as a placeholder |
| ROW | Row with 1 or more columns | Example: row(f0 int null, f1 varchar)
-| MAP | Collection of keys mapped to values | Example: (int, varchar) map
+| MAP | Collection of keys mapped to values | Example: map < int,
varchar >
| MULTISET | Unordered collection that may contain duplicates | Example: int
multiset
| ARRAY | Ordered, contiguous collection that may contain duplicates |
Example: varchar(10) array
| CURSOR | Cursor over the result of executing a query |
@@ -1500,8 +1500,12 @@ type:
typeName:
sqlTypeName
| rowTypeName
+ | mapTypeName
| compoundIdentifier
+mapTypeName:
+ MAP '<' type ',' type '>'
+
sqlTypeName:
char [ precision ] [ charSet ]
| varchar [ precision ] [ charSet ]