Skip to content

Commit cd2932d

Browse files
committed
Convert docs source to markdown
- All files in language folder - All files in sql folder - Adjust test for reserved keyword list
1 parent 7991527 commit cd2932d

File tree

135 files changed

+6676
-6708
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

135 files changed

+6676
-6708
lines changed

core/trino-parser/src/main/java/io/trino/sql/ReservedIdentifiers.java

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,9 @@
3939
public final class ReservedIdentifiers
4040
{
4141
private static final Pattern IDENTIFIER = Pattern.compile("'([A-Z_]+)'");
42-
private static final Pattern TABLE_ROW = Pattern.compile("``([A-Z_]+)``.*");
43-
private static final String TABLE_PREFIX = "============================== ";
42+
private static final Pattern TABLE_ROW = Pattern.compile("\\| `([A-Z_]+).*");
43+
private static final String TABLE_START = "| ------------------- |";
44+
private static final String TABLE_ROW_START = "|";
4445

4546
private static final SqlParser PARSER = new SqlParser();
4647

@@ -71,28 +72,22 @@ private static void validateDocs(Path path)
7172
System.out.println("Validating " + path);
7273
List<String> lines = Files.readAllLines(path);
7374

74-
if (lines.stream().filter(s -> s.startsWith(TABLE_PREFIX)).count() != 3) {
75+
if (lines.stream().filter(s -> s.startsWith(TABLE_START)).count() != 1) {
7576
throw new RuntimeException("Failed to find exactly one table");
7677
}
7778

7879
Iterator<String> iterator = lines.iterator();
7980

80-
// find table and skip header
81-
while (!iterator.next().startsWith(TABLE_PREFIX)) {
81+
// find start of list in table
82+
while (!iterator.next().startsWith(TABLE_START)) {
8283
// skip
8384
}
84-
if (iterator.next().startsWith(TABLE_PREFIX)) {
85-
throw new RuntimeException("Expected to find a header line");
86-
}
87-
if (!iterator.next().startsWith(TABLE_PREFIX)) {
88-
throw new RuntimeException("Found multiple header lines");
89-
}
9085

9186
Set<String> reserved = reservedIdentifiers();
9287
Set<String> found = new HashSet<>();
9388
while (true) {
9489
String line = iterator.next();
95-
if (line.startsWith(TABLE_PREFIX)) {
90+
if (!line.startsWith(TABLE_ROW_START)) {
9691
break;
9792
}
9893

docs/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
<mainClass>io.trino.sql.ReservedIdentifiers</mainClass>
9191
<arguments>
9292
<argument>validateDocs</argument>
93-
<argument>${project.basedir}/src/main/sphinx/language/reserved.rst</argument>
93+
<argument>${project.basedir}/src/main/sphinx/language/reserved.md</argument>
9494
</arguments>
9595
</configuration>
9696
</execution>
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# Reserved keywords
2+
3+
The following table lists all of the keywords that are reserved in Trino,
4+
along with their status in the SQL standard. These reserved keywords must
5+
be quoted (using double quotes) in order to be used as an identifier.
6+
7+
| Keyword | SQL:2016 | SQL-92 |
8+
| ------------------- | -------- | -------- |
9+
| `ALTER` | reserved | reserved |
10+
| `AND` | reserved | reserved |
11+
| `AS` | reserved | reserved |
12+
| `BETWEEN` | reserved | reserved |
13+
| `BY` | reserved | reserved |
14+
| `CASE` | reserved | reserved |
15+
| `CAST` | reserved | reserved |
16+
| `CONSTRAINT` | reserved | reserved |
17+
| `CREATE` | reserved | reserved |
18+
| `CROSS` | reserved | reserved |
19+
| `CUBE` | reserved | |
20+
| `CURRENT_CATALOG` | reserved | |
21+
| `CURRENT_DATE` | reserved | reserved |
22+
| `CURRENT_PATH` | reserved | |
23+
| `CURRENT_ROLE` | reserved | reserved |
24+
| `CURRENT_SCHEMA` | reserved | |
25+
| `CURRENT_TIME` | reserved | reserved |
26+
| `CURRENT_TIMESTAMP` | reserved | reserved |
27+
| `CURRENT_USER` | reserved | |
28+
| `DEALLOCATE` | reserved | reserved |
29+
| `DELETE` | reserved | reserved |
30+
| `DESCRIBE` | reserved | reserved |
31+
| `DISTINCT` | reserved | reserved |
32+
| `DROP` | reserved | reserved |
33+
| `ELSE` | reserved | reserved |
34+
| `END` | reserved | reserved |
35+
| `ESCAPE` | reserved | reserved |
36+
| `EXCEPT` | reserved | reserved |
37+
| `EXECUTE` | reserved | reserved |
38+
| `EXISTS` | reserved | reserved |
39+
| `EXTRACT` | reserved | reserved |
40+
| `FALSE` | reserved | reserved |
41+
| `FOR` | reserved | reserved |
42+
| `FROM` | reserved | reserved |
43+
| `FULL` | reserved | reserved |
44+
| `GROUP` | reserved | reserved |
45+
| `GROUPING` | reserved | |
46+
| `HAVING` | reserved | reserved |
47+
| `IN` | reserved | reserved |
48+
| `INNER` | reserved | reserved |
49+
| `INSERT` | reserved | reserved |
50+
| `INTERSECT` | reserved | reserved |
51+
| `INTO` | reserved | reserved |
52+
| `IS` | reserved | reserved |
53+
| `JOIN` | reserved | reserved |
54+
| `JSON_ARRAY` | reserved | |
55+
| `JSON_EXISTS` | reserved | |
56+
| `JSON_OBJECT` | reserved | |
57+
| `JSON_QUERY` | reserved | |
58+
| `JSON_TABLE` | reserved | |
59+
| `JSON_VALUE` | reserved | |
60+
| `LEFT` | reserved | reserved |
61+
| `LIKE` | reserved | reserved |
62+
| `LISTAGG` | reserved | |
63+
| `LOCALTIME` | reserved | |
64+
| `LOCALTIMESTAMP` | reserved | |
65+
| `NATURAL` | reserved | reserved |
66+
| `NORMALIZE` | reserved | |
67+
| `NOT` | reserved | reserved |
68+
| `NULL` | reserved | reserved |
69+
| `ON` | reserved | reserved |
70+
| `OR` | reserved | reserved |
71+
| `ORDER` | reserved | reserved |
72+
| `OUTER` | reserved | reserved |
73+
| `PREPARE` | reserved | reserved |
74+
| `RECURSIVE` | reserved | |
75+
| `RIGHT` | reserved | reserved |
76+
| `ROLLUP` | reserved | |
77+
| `SELECT` | reserved | reserved |
78+
| `SKIP` | reserved | |
79+
| `TABLE` | reserved | reserved |
80+
| `THEN` | reserved | reserved |
81+
| `TRIM` | reserved | reserved |
82+
| `TRUE` | reserved | reserved |
83+
| `UESCAPE` | reserved | |
84+
| `UNION` | reserved | reserved |
85+
| `UNNEST` | reserved | |
86+
| `USING` | reserved | reserved |
87+
| `VALUES` | reserved | reserved |
88+
| `WHEN` | reserved | reserved |
89+
| `WHERE` | reserved | reserved |
90+
| `WITH` | reserved | reserved |
91+

docs/src/main/sphinx/language/reserved.rst

Lines changed: 0 additions & 95 deletions
This file was deleted.
Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
# SQL statement support
2+
3+
The SQL statement support in Trino can be categorized into several topics. Many
4+
statements are part of the core engine and therefore available in all use cases.
5+
For example, you can always set session properties or inspect an explain plan
6+
and perform other actions with the {ref}`globally available statements
7+
<sql-globally-available>`.
8+
9+
However, the details and architecture of the connected data sources can limit
10+
some SQL functionality. For example, if the data source does not support any
11+
write operations, then a {doc}`/sql/delete` statement cannot be executed against
12+
the data source.
13+
14+
Similarly, if the underlying system does not have any security concepts, SQL
15+
statements like {doc}`/sql/create-role` cannot be supported by Trino and the
16+
connector.
17+
18+
The categories of these different topics are related to {ref}`read operations
19+
<sql-read-operations>`, {ref}`write operations <sql-write-operations>`,
20+
{ref}`security operations <sql-security-operations>` and {ref}`transactions
21+
<sql-transactions>`.
22+
23+
Details of the support for specific statements is available with the
24+
documentation for each connector.
25+
26+
(sql-globally-available)=
27+
28+
## Globally available statements
29+
30+
The following statements are implemented in the core engine and available with
31+
any connector:
32+
33+
- {doc}`/sql/call`
34+
- {doc}`/sql/deallocate-prepare`
35+
- {doc}`/sql/describe-input`
36+
- {doc}`/sql/describe-output`
37+
- {doc}`/sql/execute`
38+
- {doc}`/sql/execute-immediate`
39+
- {doc}`/sql/explain`
40+
- {doc}`/sql/explain-analyze`
41+
- {doc}`/sql/prepare`
42+
- {doc}`/sql/reset-session`
43+
- {doc}`/sql/set-session`
44+
- {doc}`/sql/set-time-zone`
45+
- {doc}`/sql/show-functions`
46+
- {doc}`/sql/show-session`
47+
- {doc}`/sql/use`
48+
- {doc}`/sql/values`
49+
50+
(sql-read-operations)=
51+
52+
## Read operations
53+
54+
The following statements provide read access to data and meta data exposed by a
55+
connector accessing a data source. They are supported by all connectors:
56+
57+
- {doc}`/sql/select` including {doc}`/sql/match-recognize`
58+
- {doc}`/sql/describe`
59+
- {doc}`/sql/show-catalogs`
60+
- {doc}`/sql/show-columns`
61+
- {doc}`/sql/show-create-materialized-view`
62+
- {doc}`/sql/show-create-schema`
63+
- {doc}`/sql/show-create-table`
64+
- {doc}`/sql/show-create-view`
65+
- {doc}`/sql/show-grants`
66+
- {doc}`/sql/show-roles`
67+
- {doc}`/sql/show-schemas`
68+
- {doc}`/sql/show-tables`
69+
- {doc}`/sql/show-stats`
70+
71+
(sql-write-operations)=
72+
73+
## Write operations
74+
75+
The following statements provide write access to data and meta data exposed
76+
by a connector accessing a data source. Availability varies widely from
77+
connector to connector:
78+
79+
(sql-data-management)=
80+
81+
### Data management
82+
83+
- {doc}`/sql/insert`
84+
- {doc}`/sql/update`
85+
- {doc}`/sql/delete`
86+
- {doc}`/sql/truncate`
87+
- {doc}`/sql/merge`
88+
89+
(sql-materialized-view-management)=
90+
91+
### Materialized view management
92+
93+
- {doc}`/sql/create-materialized-view`
94+
- {doc}`/sql/alter-materialized-view`
95+
- {doc}`/sql/drop-materialized-view`
96+
- {doc}`/sql/refresh-materialized-view`
97+
98+
(sql-schema-table-management)=
99+
100+
### Schema and table management
101+
102+
- {doc}`/sql/create-table`
103+
- {doc}`/sql/create-table-as`
104+
- {doc}`/sql/drop-table`
105+
- {doc}`/sql/alter-table`
106+
- {doc}`/sql/create-schema`
107+
- {doc}`/sql/drop-schema`
108+
- {doc}`/sql/alter-schema`
109+
- {doc}`/sql/comment`
110+
111+
(sql-view-management)=
112+
113+
### View management
114+
115+
- {doc}`/sql/create-view`
116+
- {doc}`/sql/drop-view`
117+
- {doc}`/sql/alter-view`
118+
119+
(sql-security-operations)=
120+
121+
## Security operations
122+
123+
The following statements provide security-related operations to security
124+
configuration, data, and meta data exposed by a connector accessing a data
125+
source. Most connectors do not support these operations:
126+
127+
Connector roles:
128+
129+
- {doc}`/sql/create-role`
130+
- {doc}`/sql/drop-role`
131+
- {doc}`/sql/grant-roles`
132+
- {doc}`/sql/revoke-roles`
133+
- {doc}`/sql/set-role`
134+
- {doc}`/sql/show-role-grants`
135+
136+
Grants management:
137+
138+
- {doc}`/sql/deny`
139+
- {doc}`/sql/grant`
140+
- {doc}`/sql/revoke`
141+
142+
(sql-transactions)=
143+
144+
## Transactions
145+
146+
The following statements manage transactions. Most connectors do not support
147+
transactions:
148+
149+
- {doc}`/sql/start-transaction`
150+
- {doc}`/sql/commit`
151+
- {doc}`/sql/rollback`

0 commit comments

Comments
 (0)