Skip to main content

crabka_pgparser/
command.rs

1//! Parser-owned registry of accepted `PostgreSQL` command identities.
2
3macro_rules! command_identities {
4    ($(($variant:ident, $name:literal)),+ $(,)?) => {
5        #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
6        pub enum CommandIdentity { $( $variant, )+ }
7        impl CommandIdentity {
8            pub const ALL: &[Self] = &[ $( Self::$variant, )+ ];
9            #[must_use]
10            pub const fn name(self) -> &'static str { match self { $( Self::$variant => $name, )+ } }
11        }
12    };
13}
14
15command_identities!(
16    (Abort, "ABORT"),
17    (AlterConversion, "ALTER CONVERSION"),
18    (AlterDatabase, "ALTER DATABASE"),
19    (AlterExtension, "ALTER EXTENSION"),
20    (AlterLanguage, "ALTER LANGUAGE"),
21    (AlterLargeObject, "ALTER LARGE OBJECT"),
22    (AlterOperator, "ALTER OPERATOR"),
23    (AlterOperatorClass, "ALTER OPERATOR CLASS"),
24    (AlterOperatorFamily, "ALTER OPERATOR FAMILY"),
25    (AlterPublication, "ALTER PUBLICATION"),
26    (AlterRule, "ALTER RULE"),
27    (AlterServer, "ALTER SERVER"),
28    (AlterSubscription, "ALTER SUBSCRIPTION"),
29    (AlterTable, "ALTER TABLE"),
30    (AlterTablespace, "ALTER TABLESPACE"),
31    (AlterTextSearchParser, "ALTER TEXT SEARCH PARSER"),
32    (AlterTextSearchTemplate, "ALTER TEXT SEARCH TEMPLATE"),
33    (AlterUserMapping, "ALTER USER MAPPING"),
34    (Begin, "BEGIN"),
35    (Commit, "COMMIT"),
36    (CommitPrepared, "COMMIT PREPARED"),
37    (Copy, "COPY"),
38    (CreateAccessMethod, "CREATE ACCESS METHOD"),
39    (CreateConversion, "CREATE CONVERSION"),
40    (CreateDatabase, "CREATE DATABASE"),
41    (CreateForeignDataWrapper, "CREATE FOREIGN DATA WRAPPER"),
42    (CreateForeignTable, "CREATE FOREIGN TABLE"),
43    (CreateIndex, "CREATE INDEX"),
44    (CreateLanguage, "CREATE LANGUAGE"),
45    (CreateOperator, "CREATE OPERATOR"),
46    (CreateOperatorClass, "CREATE OPERATOR CLASS"),
47    (CreateOperatorFamily, "CREATE OPERATOR FAMILY"),
48    (CreatePublication, "CREATE PUBLICATION"),
49    (CreateRole, "CREATE ROLE"),
50    (CreateRule, "CREATE RULE"),
51    (CreateSequence, "CREATE SEQUENCE"),
52    (CreateServer, "CREATE SERVER"),
53    (CreateSubscription, "CREATE SUBSCRIPTION"),
54    (CreateTable, "CREATE TABLE"),
55    (CreateTablespace, "CREATE TABLESPACE"),
56    (CreateTextSearchParser, "CREATE TEXT SEARCH PARSER"),
57    (CreateTextSearchTemplate, "CREATE TEXT SEARCH TEMPLATE"),
58    (CreateTransform, "CREATE TRANSFORM"),
59    (CreateUser, "CREATE USER"),
60    (CreateUserMapping, "CREATE USER MAPPING"),
61    (CreateView, "CREATE VIEW"),
62    (Delete, "DELETE"),
63    (Discard, "DISCARD"),
64    (DropAccessMethod, "DROP ACCESS METHOD"),
65    (DropConversion, "DROP CONVERSION"),
66    (DropDatabase, "DROP DATABASE"),
67    (DropExtension, "DROP EXTENSION"),
68    (DropForeignDataWrapper, "DROP FOREIGN DATA WRAPPER"),
69    (DropForeignTable, "DROP FOREIGN TABLE"),
70    (DropIndex, "DROP INDEX"),
71    (DropLanguage, "DROP LANGUAGE"),
72    (DropOperator, "DROP OPERATOR"),
73    (DropOperatorClass, "DROP OPERATOR CLASS"),
74    (DropOperatorFamily, "DROP OPERATOR FAMILY"),
75    (DropPublication, "DROP PUBLICATION"),
76    (DropRole, "DROP ROLE"),
77    (DropRule, "DROP RULE"),
78    (DropSequence, "DROP SEQUENCE"),
79    (DropServer, "DROP SERVER"),
80    (DropSubscription, "DROP SUBSCRIPTION"),
81    (DropTable, "DROP TABLE"),
82    (DropTablespace, "DROP TABLESPACE"),
83    (DropTextSearchParser, "DROP TEXT SEARCH PARSER"),
84    (DropTextSearchTemplate, "DROP TEXT SEARCH TEMPLATE"),
85    (DropTransform, "DROP TRANSFORM"),
86    (DropUser, "DROP USER"),
87    (DropUserMapping, "DROP USER MAPPING"),
88    (DropView, "DROP VIEW"),
89    (End, "END"),
90    (Grant, "GRANT"),
91    (ImportForeignSchema, "IMPORT FOREIGN SCHEMA"),
92    (Insert, "INSERT"),
93    (Load, "LOAD"),
94    (PrepareTransaction, "PREPARE TRANSACTION"),
95    (Reset, "RESET"),
96    (Revoke, "REVOKE"),
97    (Rollback, "ROLLBACK"),
98    (RollbackPrepared, "ROLLBACK PREPARED"),
99    (SecurityLabel, "SECURITY LABEL"),
100    (Select, "SELECT"),
101    (Set, "SET"),
102    (SetRole, "SET ROLE"),
103    (SetTransaction, "SET TRANSACTION"),
104    (Show, "SHOW"),
105    (StartTransaction, "START TRANSACTION"),
106    (Update, "UPDATE"),
107    (Values, "VALUES"),
108);