diff --git a/Cargo.lock b/Cargo.lock index ce338b59c8..5b612dfb5d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -41,6 +41,15 @@ dependencies = [ "object", ] +[[package]] +name = "arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" +dependencies = [ + "derive_arbitrary", +] + [[package]] name = "autocfg" version = "1.5.1" @@ -222,6 +231,17 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" +[[package]] +name = "derive_arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + [[package]] name = "diff" version = "0.1.13" @@ -638,6 +658,7 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" name = "sqlparser" version = "0.63.0" dependencies = [ + "arbitrary", "bigdecimal", "log", "matches", diff --git a/Cargo.toml b/Cargo.toml index 8b1ab55dd3..ae0926a669 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -60,6 +60,7 @@ recursive-protection = ["std", "recursive"] json_example = ["serde_json", "serde"] derive-dialect = ["sqlparser_derive"] visitor = ["sqlparser_derive"] +arbitrary = ["dep:arbitrary"] [dependencies] bigdecimal = { version = "0.4.1", features = ["serde"], optional = true } @@ -72,6 +73,7 @@ serde = { version = "1.0", default-features = false, features = ["derive", "allo # https://github.com/rust-lang/cargo/issues/1596 serde_json = { version = "1.0", optional = true } sqlparser_derive = { version = "0.6.0", path = "derive", optional = true } +arbitrary = { version = "1.0", features = ["derive"], optional = true } [dev-dependencies] simple_logger = "5.0" diff --git a/src/ast/comments.rs b/src/ast/comments.rs index 6b562b10d3..ec0a760fab 100644 --- a/src/ast/comments.rs +++ b/src/ast/comments.rs @@ -26,6 +26,7 @@ use crate::tokenizer::{Location, Span}; /// An opaque container for comments from a parse SQL source code. #[derive(Default, Debug, Clone)] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Comments(Vec); impl Comments { @@ -185,6 +186,7 @@ impl From for Vec { /// A source code comment with information of its entire span. #[derive(Debug, Clone, PartialEq, Eq, Hash)] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CommentWithSpan { /// The source code comment iself pub comment: Comment, @@ -206,6 +208,7 @@ impl Deref for CommentWithSpan { /// A unified type of the different source code comment formats. #[derive(Debug, Clone, PartialEq, Eq, Hash)] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum Comment { /// A single line comment, typically introduced with a prefix and spanning /// until end-of-line or end-of-file in the source code. diff --git a/src/ast/data_type.rs b/src/ast/data_type.rs index acb1b2ab9c..b371a5f1dd 100644 --- a/src/ast/data_type.rs +++ b/src/ast/data_type.rs @@ -33,6 +33,7 @@ use super::{value::escape_single_quote_string, ColumnDef}; #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// A member of an ENUM type. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum EnumMember { /// Just a name. Name(String), @@ -46,6 +47,7 @@ pub enum EnumMember { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum TypeModifier { /// Identifier or keyword segment, quotes carried by `Ident`. Identifier(Ident), @@ -69,6 +71,7 @@ impl fmt::Display for TypeModifier { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum DataType { /// Table type in [PostgreSQL], e.g. CREATE FUNCTION RETURNS TABLE(...). /// @@ -951,6 +954,7 @@ fn format_clickhouse_datetime_precision_and_timezone( #[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum StructBracketKind { /// Example: `STRUCT(a INT, b STRING)` Parentheses, @@ -962,6 +966,7 @@ pub enum StructBracketKind { #[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum MapBracketKind { /// Example: `Map(String, UInt16)` Parentheses, @@ -978,6 +983,7 @@ pub enum MapBracketKind { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum TimezoneInfo { /// No information about time zone, e.g. TIMESTAMP None, @@ -1025,6 +1031,7 @@ impl fmt::Display for TimezoneInfo { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum IntervalFields { /// `YEAR` field Year, @@ -1081,6 +1088,7 @@ impl fmt::Display for IntervalFields { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ExactNumberInfo { /// No additional information, e.g. `DECIMAL`. None, @@ -1112,6 +1120,7 @@ impl fmt::Display for ExactNumberInfo { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CharacterLength { /// Integer length with optional unit (e.g. `CHAR(10)` or `VARCHAR(10 CHARACTERS)`). IntegerLength { @@ -1147,6 +1156,7 @@ impl fmt::Display for CharacterLength { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CharLengthUnits { /// CHARACTERS unit Characters, @@ -1173,6 +1183,7 @@ impl fmt::Display for CharLengthUnits { /// Information about [binary length][1], including length and possibly unit. /// /// [1]: https://jakewheat.github.io/sql-overview/sql-2016-foundation-grammar.html#binary-length +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum BinaryLength { /// Integer length for binary types (e.g. `VARBINARY(100)`). IntegerLength { @@ -1204,6 +1215,7 @@ impl fmt::Display for BinaryLength { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ArrayElemTypeDef { /// Use `ARRAY` style without an explicit element type. None, @@ -1226,6 +1238,7 @@ pub enum ArrayElemTypeDef { #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum GeometricTypeKind { /// Point geometry Point, diff --git a/src/ast/dcl.rs b/src/ast/dcl.rs index 3fc6f0c89b..6cb7d9c106 100644 --- a/src/ast/dcl.rs +++ b/src/ast/dcl.rs @@ -39,6 +39,7 @@ use crate::tokenizer::Span; #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum RoleKeyword { /// `ROLE`, the general role object in both PostgreSQL and Redshift. Role, @@ -62,6 +63,7 @@ impl fmt::Display for RoleKeyword { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum RoleOption { /// Enable or disable BYPASSRLS. BypassRLS(bool), @@ -137,6 +139,7 @@ impl fmt::Display for RoleOption { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum SetConfigValue { /// Use the default value. Default, @@ -152,6 +155,7 @@ pub enum SetConfigValue { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ResetConfig { /// Reset all configuration parameters. ALL, @@ -163,6 +167,7 @@ pub enum ResetConfig { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterRoleOperation { /// Generic RenameRole { @@ -263,6 +268,7 @@ impl fmt::Display for AlterRoleOperation { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum Use { /// Switch to the given catalog (e.g. `USE CATALOG ...`). Catalog(ObjectName), @@ -305,6 +311,7 @@ impl fmt::Display for Use { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum SecondaryRoles { /// Use all secondary roles. All, @@ -329,6 +336,7 @@ impl fmt::Display for SecondaryRoles { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateRole { /// Whether the statement was spelled `CREATE ROLE` or `CREATE GROUP`. pub keyword: RoleKeyword, @@ -459,6 +467,7 @@ impl Spanned for CreateRole { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Grant { /// Privileges being granted. pub privileges: Privileges, @@ -515,6 +524,7 @@ impl From for crate::ast::Statement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Revoke { /// Whether `GRANT OPTION FOR` is present, withdrawing the right to grant /// the privileges rather than the privileges themselves. @@ -566,6 +576,7 @@ impl From for crate::ast::Statement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct RevokeRole { /// The option named in `OPTION FOR`, such as `ADMIN`, withdrawn while the membership stays. pub option_for: Option, @@ -613,6 +624,7 @@ impl From for crate::ast::Statement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct GrantRole { /// Roles whose membership is granted. pub roles: Vec, @@ -652,6 +664,7 @@ impl From for crate::ast::Statement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct RoleGrantOption { /// The option name, such as `ADMIN`, `INHERIT` or `SET`. pub name: Ident, @@ -669,6 +682,7 @@ impl fmt::Display for RoleGrantOption { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum RoleGrantOptionValue { /// `OPTION`, equivalent to `TRUE`. Option, @@ -691,6 +705,7 @@ impl fmt::Display for RoleGrantOptionValue { /// The options of [`AlterDefaultPrivileges`], kept in the order written. #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] pub enum DefaultPrivilegesOption { /// `FOR ROLE [, ...]`. @@ -718,6 +733,7 @@ impl fmt::Display for DefaultPrivilegesOption { /// [PostgreSQL](https://www.postgresql.org/docs/current/sql-alterdefaultprivileges.html) #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] pub struct AlterDefaultPrivileges { /// The `FOR ROLE` and `IN SCHEMA` options, in written order. @@ -774,6 +790,7 @@ impl From for crate::ast::Statement { /// an object type rather than named objects and so unable to reuse [`Grant`]. #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] pub enum AlterDefaultPrivilegesOperation { /// `GRANT ON TO [WITH GRANT OPTION]` @@ -848,6 +865,7 @@ impl fmt::Display for AlterDefaultPrivilegesOperation { /// The kind of future object an [`AlterDefaultPrivileges`] applies to. #[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] pub enum DefaultPrivilegesObjectType { /// `TABLES`, which also covers views and foreign tables. diff --git a/src/ast/ddl.rs b/src/ast/ddl.rs index 5acf038bf8..f021fa3b00 100644 --- a/src/ast/ddl.rs +++ b/src/ast/ddl.rs @@ -61,6 +61,7 @@ use crate::tokenizer::{Span, Token}; #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct IndexColumn { /// The indexed column expression. pub column: OrderByExpr, @@ -99,6 +100,7 @@ impl fmt::Display for IndexColumn { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ReplicaIdentity { /// No replica identity (`REPLICA IDENTITY NOTHING`). Nothing, @@ -125,6 +127,7 @@ impl fmt::Display for ReplicaIdentity { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterTableOperation { /// `ADD [NOT VALID]` AddConstraint { @@ -586,6 +589,7 @@ pub enum AlterTableOperation { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterPolicyOperation { /// Rename the policy to `new_name`. Rename { @@ -635,6 +639,7 @@ impl fmt::Display for AlterPolicyOperation { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterTriggerOperation { /// `RENAME TO new_name` Rename { @@ -673,6 +678,7 @@ impl fmt::Display for AlterTriggerOperation { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Algorithm option for `ALTER TABLE` operations (MySQL-specific). +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterTableAlgorithm { /// Default algorithm selection. Default, @@ -702,6 +708,7 @@ impl fmt::Display for AlterTableAlgorithm { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Locking behavior for `ALTER TABLE` (MySQL-specific). +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterTableLock { /// `DEFAULT` lock behavior. Default, @@ -728,6 +735,7 @@ impl fmt::Display for AlterTableLock { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// New owner specification for `ALTER TABLE ... OWNER TO ...` +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum Owner { /// A specific user/role identifier. Ident(Ident), @@ -754,6 +762,7 @@ impl fmt::Display for Owner { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// New connector owner specification for `ALTER CONNECTOR ... OWNER TO ...` +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterConnectorOwner { /// `USER ` connector owner. User(Ident), @@ -774,6 +783,7 @@ impl fmt::Display for AlterConnectorOwner { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Alterations that can be applied to an index. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterIndexOperation { /// Rename the index to `index_name`. RenameIndex { @@ -1164,6 +1174,7 @@ impl fmt::Display for AlterIndexOperation { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterType { /// Name of the type being altered (may be schema-qualified). pub name: ObjectName, @@ -1175,6 +1186,7 @@ pub struct AlterType { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterTypeOperation { /// Rename the type. Rename(AlterTypeRename), @@ -1188,6 +1200,7 @@ pub enum AlterTypeOperation { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterTypeRename { /// The new name for the type. pub new_name: Ident, @@ -1197,6 +1210,7 @@ pub struct AlterTypeRename { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterTypeAddValue { /// If true, do not error when the value already exists (`IF NOT EXISTS`). pub if_not_exists: bool, @@ -1210,6 +1224,7 @@ pub struct AlterTypeAddValue { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterTypeAddValuePosition { /// Place the new value before the given neighbor value. Before(Ident), @@ -1221,6 +1236,7 @@ pub enum AlterTypeAddValuePosition { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterTypeRenameValue { /// Existing value identifier to rename. pub from: Ident, @@ -1267,6 +1283,7 @@ impl fmt::Display for AlterTypeOperation { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterOperator { /// Operator name (can be schema-qualified) pub name: ObjectName, @@ -1282,6 +1299,7 @@ pub struct AlterOperator { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterOperatorOperation { /// `OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }` OwnerTo(Owner), @@ -1302,6 +1320,7 @@ pub enum AlterOperatorOperation { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum OperatorOption { /// `RESTRICT = { res_proc | NONE }` Restrict(Option), @@ -1367,6 +1386,7 @@ impl fmt::Display for OperatorOption { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterColumnOperation { /// `SET NOT NULL` SetNotNull, @@ -1469,6 +1489,7 @@ impl fmt::Display for AlterColumnOperation { /// [PostgreSQL](https://www.postgresql.org/docs/current/sql-alterforeigntable.html) #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] pub enum AlterGenericOption { /// `[ ADD ] option 'value'`, which fails if the option is already set. @@ -1512,6 +1533,7 @@ impl fmt::Display for AlterGenericOption { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum KeyOrIndexDisplay { /// Nothing to display None, @@ -1561,6 +1583,7 @@ impl fmt::Display for KeyOrIndexDisplay { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum IndexType { /// B-Tree index (commonly default for many databases). BTree, @@ -1604,6 +1627,7 @@ impl fmt::Display for IndexType { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum IndexOption { /// `USING { BTREE | HASH }`: Index type to use for the index. /// @@ -1628,6 +1652,7 @@ impl fmt::Display for IndexOption { #[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum NullsDistinctOption { /// Not specified None, @@ -1651,6 +1676,7 @@ impl fmt::Display for NullsDistinctOption { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// A parameter of a stored procedure or function declaration. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ProcedureParam { /// Parameter name. pub name: Ident, @@ -1682,6 +1708,7 @@ impl fmt::Display for ProcedureParam { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ColumnDef { /// Column name. pub name: Ident, @@ -1724,6 +1751,7 @@ impl fmt::Display for ColumnDef { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ViewColumnDef { /// Column identifier. pub name: Ident, @@ -1737,6 +1765,7 @@ pub struct ViewColumnDef { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Representation of how multiple `ColumnOption`s are grouped for a column. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ColumnOptions { /// Options separated by comma: `OPTIONS(a, b, c)`. CommaSeparated(Vec), @@ -1793,6 +1822,7 @@ impl fmt::Display for ViewColumnDef { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ColumnOptionDef { /// Optional name of the constraint. pub name: Option, @@ -1816,6 +1846,7 @@ impl fmt::Display for ColumnOptionDef { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum IdentityPropertyKind { /// An identity property declared via the `AUTOINCREMENT` key word /// Example: @@ -1861,6 +1892,7 @@ impl fmt::Display for IdentityPropertyKind { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct IdentityProperty { /// Optional parameters specifying seed/increment for the identity column. pub parameters: Option, @@ -1885,6 +1917,7 @@ pub struct IdentityProperty { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum IdentityPropertyFormatKind { /// A parameters of identity column declared like parameters of function call /// Example: @@ -1923,6 +1956,7 @@ impl fmt::Display for IdentityPropertyFormatKind { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct IdentityParameters { /// The initial seed expression for the identity column. pub seed: Expr, @@ -1939,6 +1973,7 @@ pub struct IdentityParameters { #[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum IdentityPropertyOrder { /// `ORDER` - preserve ordering for generated values (where supported). Order, @@ -1965,6 +2000,7 @@ impl fmt::Display for IdentityPropertyOrder { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ColumnPolicy { /// `MASKING POLICY ()` MaskingPolicy(ColumnPolicyProperty), @@ -1993,6 +2029,7 @@ impl fmt::Display for ColumnPolicy { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Properties describing a column policy (masking or projection). +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ColumnPolicyProperty { /// This flag indicates that the column policy option is declared using the `WITH` prefix. /// Example @@ -2016,6 +2053,7 @@ pub struct ColumnPolicyProperty { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct TagsColumnOption { /// This flag indicates that the tags option is declared using the `WITH` prefix. /// Example: @@ -2043,6 +2081,7 @@ impl fmt::Display for TagsColumnOption { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ColumnOption { /// `NULL` Null, @@ -2322,6 +2361,7 @@ impl fmt::Display for ColumnOption { #[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum GeneratedAs { /// `GENERATED ALWAYS` Always, @@ -2336,6 +2376,7 @@ pub enum GeneratedAs { #[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum GeneratedExpressionMode { /// `VIRTUAL` generated expression Virtual, @@ -2393,6 +2434,7 @@ pub(crate) fn display_option_spaced(option: &Option) -> impl #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Default, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ConstraintCharacteristics { /// `[ DEFERRABLE | NOT DEFERRABLE ]` pub deferrable: Option, @@ -2406,6 +2448,7 @@ pub struct ConstraintCharacteristics { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum DeferrableInitial { /// `INITIALLY IMMEDIATE` Immediate, @@ -2473,6 +2516,7 @@ impl fmt::Display for ConstraintCharacteristics { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ReferentialAction { /// `RESTRICT` - disallow action if it would break referential integrity. Restrict, @@ -2504,6 +2548,7 @@ impl fmt::Display for ReferentialAction { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum DropBehavior { /// `RESTRICT` - refuse to drop if there are any dependent objects. Restrict, @@ -2524,6 +2569,7 @@ impl fmt::Display for DropBehavior { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum UserDefinedTypeRepresentation { /// Composite type: `CREATE TYPE name AS (attributes)` Composite { @@ -2579,6 +2625,7 @@ impl fmt::Display for UserDefinedTypeRepresentation { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct UserDefinedTypeCompositeAttributeDef { /// Attribute name. pub name: Ident, @@ -2623,6 +2670,7 @@ impl fmt::Display for UserDefinedTypeCompositeAttributeDef { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum UserDefinedTypeInternalLength { /// Fixed internal length: `INTERNALLENGTH = ` Fixed(u64), @@ -2660,6 +2708,7 @@ impl fmt::Display for UserDefinedTypeInternalLength { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum Alignment { /// Single-byte alignment: `ALIGNMENT = char` Char, @@ -2704,6 +2753,7 @@ impl fmt::Display for Alignment { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum UserDefinedTypeStorage { /// No compression or out-of-line storage: `STORAGE = plain` Plain, @@ -2746,6 +2796,7 @@ impl fmt::Display for UserDefinedTypeStorage { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum UserDefinedTypeRangeOption { /// The element type that the range type will represent: `SUBTYPE = subtype` Subtype(DataType), @@ -2801,6 +2852,7 @@ impl fmt::Display for UserDefinedTypeRangeOption { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum UserDefinedTypeSqlDefinitionOption { /// Function to convert from external text representation to internal: `INPUT = input_function` Input(ObjectName), @@ -2886,6 +2938,7 @@ impl fmt::Display for UserDefinedTypeSqlDefinitionOption { #[derive(Debug, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum Partition { /// ClickHouse supports PARTITION ID 'partition_id' syntax. Identifier(Ident), @@ -2916,6 +2969,7 @@ impl fmt::Display for Partition { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum Deduplicate { /// DEDUPLICATE ALL All, @@ -2939,6 +2993,7 @@ impl fmt::Display for Deduplicate { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ClusteredBy { /// columns used for clustering pub columns: Vec, @@ -2966,6 +3021,7 @@ impl fmt::Display for ClusteredBy { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateIndex { /// index name pub name: Option, @@ -3065,6 +3121,7 @@ impl fmt::Display for CreateIndex { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum SqliteTableOption { /// `WITHOUT ROWID` WithoutRowid, @@ -3085,6 +3142,7 @@ impl fmt::Display for SqliteTableOption { #[derive(Debug, Default, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct SqliteTableOptions { /// Whether a comma separates the list from the column definitions, /// as in `(a INT), STRICT`. @@ -3097,6 +3155,7 @@ pub struct SqliteTableOptions { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateTable { /// `OR REPLACE` clause pub or_replace: bool, @@ -3623,6 +3682,7 @@ impl fmt::Display for CreateTable { #[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct WithData { /// `true` for `WITH DATA`, `false` for `WITH NO DATA`. pub data: bool, @@ -3657,6 +3717,7 @@ impl fmt::Display for WithData { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ForValues { /// `FOR VALUES IN (expr, ...)` In(Vec), @@ -3710,6 +3771,7 @@ impl fmt::Display for ForValues { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum PartitionBoundValue { /// An expression representing a partition bound value. Expr(Expr), @@ -3735,6 +3797,7 @@ impl fmt::Display for PartitionBoundValue { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum DistStyle { /// `DISTSTYLE AUTO` Auto, @@ -3772,6 +3835,7 @@ impl fmt::Display for DistStyle { /// { NOT NULL | NULL | CHECK (expression) } /// ``` /// See [PostgreSQL](https://www.postgresql.org/docs/current/sql-createdomain.html) +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateDomain { /// The name of the domain to be created. pub name: ObjectName, @@ -3810,6 +3874,7 @@ impl fmt::Display for CreateDomain { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum FunctionReturnType { /// `RETURNS ` DataType(DataType), @@ -3832,6 +3897,7 @@ impl fmt::Display for FunctionReturnType { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// CREATE FUNCTION statement +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateFunction { /// True if this is a `CREATE OR ALTER FUNCTION` statement /// @@ -4007,6 +4073,7 @@ impl fmt::Display for CreateFunction { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateConnector { /// The name of the connector to be created. pub name: Ident, @@ -4066,6 +4133,7 @@ impl fmt::Display for CreateConnector { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterSchemaOperation { /// Set the default collation for the schema. SetDefaultCollate { @@ -4131,6 +4199,7 @@ impl fmt::Display for AlterSchemaOperation { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum RenameTableNameKind { /// `AS new_table_name` As(ObjectName), @@ -4151,6 +4220,7 @@ impl fmt::Display for RenameTableNameKind { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// An `ALTER SCHEMA` (`Statement::AlterSchema`) statement. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterSchema { /// The schema name to alter. pub name: ObjectName, @@ -4188,6 +4258,7 @@ impl Spanned for RenameTableNameKind { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Whether the syntax used for the trigger object (ROW or STATEMENT) is `FOR` or `FOR EACH`. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum TriggerObjectKind { /// The `FOR` syntax is used. For(TriggerObject), @@ -4220,6 +4291,7 @@ impl Display for TriggerObjectKind { /// /// Postgres: /// SQL Server: +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateTrigger { /// True if this is a `CREATE OR ALTER TRIGGER` statement /// @@ -4410,6 +4482,7 @@ impl Display for CreateTrigger { /// DROP TRIGGER [ IF EXISTS ] name ON table_name [ CASCADE | RESTRICT ] /// ``` /// +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct DropTrigger { /// Whether to include the `IF EXISTS` clause. pub if_exists: bool, @@ -4452,6 +4525,7 @@ impl fmt::Display for DropTrigger { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Truncate { /// Table names to truncate pub table_names: Vec, @@ -4527,6 +4601,7 @@ impl Spanned for Truncate { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Msck { /// Table name to check #[cfg_attr(feature = "visitor", visit(with = "visit_relation"))] @@ -4562,6 +4637,7 @@ impl Spanned for Msck { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateView { /// True if this is a `CREATE OR ALTER VIEW` statement /// @@ -4688,6 +4764,7 @@ impl fmt::Display for CreateView { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateExtension { /// Extension name pub name: Ident, @@ -4748,6 +4825,7 @@ impl Spanned for CreateExtension { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct DropExtension { /// One or more extension names to drop pub names: Vec, @@ -4782,6 +4860,7 @@ impl Spanned for DropExtension { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateCollation { /// Whether `IF NOT EXISTS` was specified. pub if_not_exists: bool, @@ -4795,6 +4874,7 @@ pub struct CreateCollation { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CreateCollationDefinition { /// Create from an existing collation. /// @@ -4844,6 +4924,7 @@ impl Spanned for CreateCollation { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterCollation { /// Name of the collation being altered. pub name: ObjectName, @@ -4855,6 +4936,7 @@ pub struct AlterCollation { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterCollationOperation { /// Rename the collation. /// @@ -4918,6 +5000,7 @@ impl Spanned for AlterCollation { /// See [PostgreSQL](https://www.postgresql.org/docs/current/sql-altermaterializedview.html) #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] pub struct AlterView { /// Whether `MATERIALIZED` was specified. A materialized view's operation is never @@ -4937,6 +5020,7 @@ pub struct AlterView { /// See [PostgreSQL](https://www.postgresql.org/docs/current/sql-alterview.html) #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] pub enum AlterViewOperation { /// Replace the view definition. @@ -5063,6 +5147,7 @@ impl fmt::Display for AlterView { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterTableType { /// Iceberg table type /// @@ -5082,6 +5167,7 @@ pub enum AlterTableType { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterTable { /// Table name #[cfg_attr(feature = "visitor", visit(with = "visit_relation"))] @@ -5136,6 +5222,7 @@ impl fmt::Display for AlterTable { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct DropFunction { /// Whether to include the `IF EXISTS` clause. pub if_exists: bool, @@ -5171,6 +5258,7 @@ impl Spanned for DropFunction { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateOperator { /// Operator name (can be schema-qualified) pub name: ObjectName, @@ -5191,6 +5279,7 @@ pub struct CreateOperator { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateOperatorFamily { /// Operator family name (can be schema-qualified) pub name: ObjectName, @@ -5203,6 +5292,7 @@ pub struct CreateOperatorFamily { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateOperatorClass { /// Operator class name (can be schema-qualified) pub name: ObjectName, @@ -5273,6 +5363,7 @@ impl fmt::Display for CreateOperatorClass { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct OperatorArgTypes { /// Left-hand operand data type for the operator. pub left: DataType, @@ -5290,6 +5381,7 @@ impl fmt::Display for OperatorArgTypes { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum OperatorClassItem { /// `OPERATOR` clause describing a specific operator implementation. Operator { @@ -5324,6 +5416,7 @@ pub enum OperatorClassItem { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum OperatorPurpose { /// Purpose: used for index/search operations. ForSearch, @@ -5387,6 +5480,7 @@ impl fmt::Display for OperatorPurpose { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct DropOperator { /// `IF EXISTS` clause pub if_exists: bool, @@ -5400,6 +5494,7 @@ pub struct DropOperator { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct DropOperatorSignature { /// Operator name pub name: ObjectName, @@ -5446,6 +5541,7 @@ impl Spanned for DropOperator { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct DropOperatorFamily { /// `IF EXISTS` clause pub if_exists: bool, @@ -5483,6 +5579,7 @@ impl Spanned for DropOperatorFamily { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct DropOperatorClass { /// `IF EXISTS` clause pub if_exists: bool, @@ -5519,6 +5616,7 @@ impl Spanned for DropOperatorClass { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum OperatorFamilyItem { /// `OPERATOR` clause in an operator family modification. Operator { @@ -5548,6 +5646,7 @@ pub enum OperatorFamilyItem { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum OperatorFamilyDropItem { /// `OPERATOR` clause for DROP within an operator family. Operator { @@ -5650,6 +5749,7 @@ impl fmt::Display for OperatorFamilyDropItem { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterOperatorFamily { /// Operator family name (can be schema-qualified) pub name: ObjectName, @@ -5663,6 +5763,7 @@ pub struct AlterOperatorFamily { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterOperatorFamilyOperation { /// `ADD { OPERATOR ... | FUNCTION ... } [, ...]` Add { @@ -5732,6 +5833,7 @@ impl Spanned for AlterOperatorFamily { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterOperatorClass { /// Operator class name (can be schema-qualified) pub name: ObjectName, @@ -5745,6 +5847,7 @@ pub struct AlterOperatorClass { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterOperatorClassOperation { /// `RENAME TO new_name` /// Rename the operator class to a new name. @@ -5795,6 +5898,7 @@ impl Spanned for AlterOperatorClass { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterFunction { /// Object type being altered. pub kind: AlterFunctionKind, @@ -5816,6 +5920,7 @@ pub struct AlterFunction { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterFunctionKind { /// `FUNCTION` Function, @@ -5836,6 +5941,7 @@ impl fmt::Display for AlterFunctionKind { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterFunctionOperation { /// `RENAME TO new_name` RenameTo { @@ -5869,6 +5975,7 @@ pub enum AlterFunctionOperation { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterFunctionAction { /// `CALLED ON NULL INPUT` / `RETURNS NULL ON NULL INPUT` / `STRICT` CalledOnNull(FunctionCalledOnNull), @@ -6005,6 +6112,7 @@ impl Spanned for AlterFunction { #[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum TextSearchObjectType { /// `DICTIONARY` Dictionary, @@ -6033,6 +6141,7 @@ impl fmt::Display for TextSearchObjectType { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateTextSearch { /// The specific text search object type. pub object_type: TextSearchObjectType, @@ -6066,6 +6175,7 @@ impl Spanned for CreateTextSearch { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterTextSearchOption { /// Option name. pub key: Ident, @@ -6088,6 +6198,7 @@ impl fmt::Display for AlterTextSearchOption { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AlterTextSearchOperation { /// `RENAME TO new_name` RenameTo { @@ -6129,6 +6240,7 @@ impl fmt::Display for AlterTextSearchOperation { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterTextSearch { /// The specific text search object type. pub object_type: TextSearchObjectType, @@ -6160,6 +6272,7 @@ impl Spanned for AlterTextSearch { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreatePolicy { /// Name of the policy. pub name: Ident, @@ -6213,6 +6326,7 @@ impl fmt::Display for CreatePolicy { #[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CreatePolicyType { /// Policy allows operations unless explicitly denied. Permissive, @@ -6237,6 +6351,7 @@ impl fmt::Display for CreatePolicyType { #[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CreatePolicyCommand { /// Applies to all commands. All, @@ -6268,6 +6383,7 @@ impl fmt::Display for CreatePolicyCommand { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct DropPolicy { /// `true` when `IF EXISTS` was present. pub if_exists: bool, @@ -6317,6 +6433,7 @@ impl From for crate::ast::Statement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterPolicy { /// Policy name to alter. pub name: Ident, @@ -6356,6 +6473,7 @@ impl From for crate::ast::Statement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterTrigger { /// Trigger name to alter. pub name: Ident, @@ -6396,6 +6514,7 @@ impl From for crate::ast::Statement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateRule { /// `true` when `OR REPLACE` was present. pub or_replace: bool, @@ -6443,6 +6562,7 @@ impl fmt::Display for CreateRule { #[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CreateRuleEvent { /// Fires on SELECT. Select, @@ -6473,6 +6593,7 @@ impl fmt::Display for CreateRuleEvent { #[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CreateRuleDoKind { /// The action runs in addition to the original statement. Also, @@ -6497,6 +6618,7 @@ impl fmt::Display for CreateRuleDoKind { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CreateRuleAction { /// `NOTHING` Nothing, @@ -6535,6 +6657,7 @@ impl From for crate::ast::Statement { /// See [PostgreSQL](https://www.postgresql.org/docs/current/sql-droprule.html) #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] pub struct DropRule { /// `true` when `IF EXISTS` was present. @@ -6570,6 +6693,7 @@ impl fmt::Display for DropRule { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateForeignTable { /// The foreign table name. #[cfg_attr(feature = "visitor", visit(with = "visit_relation"))] @@ -6636,6 +6760,7 @@ impl fmt::Display for CreateForeignTable { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ForeignDataWrapperRoutineClause { /// `HANDLER handler_function` Handler(ObjectName), @@ -6664,6 +6789,7 @@ impl fmt::Display for ForeignDataWrapperRoutineClause { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateForeignDataWrapper { /// The name of the foreign-data wrapper. Per PostgreSQL this is a bare /// identifier and cannot be schema-qualified. @@ -6725,6 +6851,7 @@ impl Spanned for CreateForeignTable { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateAggregate { /// True if `OR REPLACE` was specified. pub or_replace: bool, @@ -6764,6 +6891,7 @@ impl fmt::Display for CreateAggregate { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CreateAggregateArgs { /// No argument-list parentheses: the historical form that packs everything, /// usually including a `BASETYPE` option, into a single list. @@ -6795,6 +6923,7 @@ impl From for crate::ast::Statement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CreateAggregateOption { /// `SFUNC = state_transition_function` StateTransitionFunction(ObjectName), @@ -6880,6 +7009,7 @@ impl fmt::Display for CreateAggregateOption { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AggregateModifyKind { /// The final function does not modify the transition state. ReadOnly, @@ -6927,6 +7057,7 @@ impl Spanned for CreateForeignDataWrapper { /// The user of a `CREATE USER MAPPING` statement. #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] pub enum UserMappingUser { /// A role name. @@ -6961,6 +7092,7 @@ impl fmt::Display for UserMappingUser { /// See [PostgreSQL](https://www.postgresql.org/docs/current/sql-createusermapping.html) #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] pub struct CreateUserMapping { /// Whether `IF NOT EXISTS` was specified. diff --git a/src/ast/dml.rs b/src/ast/dml.rs index f394db2686..6b304bc223 100644 --- a/src/ast/dml.rs +++ b/src/ast/dml.rs @@ -44,6 +44,7 @@ use super::{ #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum InsertOverriding { /// `OVERRIDING SYSTEM VALUE` System, @@ -64,6 +65,7 @@ impl Display for InsertOverriding { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Insert { /// Token for the `INSERT` keyword (or its substitutes) pub insert_token: AttachedToken, @@ -330,6 +332,7 @@ impl Display for Insert { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Delete { /// Token for the `DELETE` keyword pub delete_token: AttachedToken, @@ -427,6 +430,7 @@ impl Display for Delete { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Update { /// Token for the `UPDATE` keyword pub update_token: AttachedToken, @@ -529,6 +533,7 @@ impl Display for Update { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Merge { /// The `MERGE` token that starts the statement. pub merge_token: AttachedToken, @@ -585,6 +590,7 @@ impl Display for Merge { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct MergeClause { /// The `WHEN` token that starts the sub-expression. pub when_token: AttachedToken, @@ -624,6 +630,7 @@ impl Display for MergeClause { #[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum MergeClauseKind { /// `WHEN MATCHED` Matched, @@ -663,6 +670,7 @@ impl Display for MergeClauseKind { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum MergeAction { /// An `INSERT` clause /// @@ -718,6 +726,7 @@ impl Display for MergeAction { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum MergeInsertKind { /// The insert expression is defined from an explicit `VALUES` clause /// @@ -774,6 +783,7 @@ impl Display for MergeInsertKind { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct MergeInsertExpr { /// The `INSERT` token that starts the sub-expression. pub insert_token: AttachedToken, @@ -810,6 +820,7 @@ impl Display for MergeInsertExpr { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum MergeUpdateKind { /// Standard update with explicit assignments. /// @@ -856,6 +867,7 @@ impl Display for MergeUpdateKind { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct MergeUpdateExpr { /// The `UPDATE` token that starts the sub-expression. pub update_token: AttachedToken, @@ -888,6 +900,7 @@ impl Display for MergeUpdateExpr { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum OutputClause { /// `OUTPUT` clause Output { @@ -945,6 +958,7 @@ impl fmt::Display for OutputClause { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct MultiTableInsertWhenClause { /// The condition for this WHEN clause pub condition: Expr, @@ -972,6 +986,7 @@ impl Display for MultiTableInsertWhenClause { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct MultiTableInsertIntoClause { /// The target table pub table_name: ObjectName, @@ -998,6 +1013,7 @@ impl Display for MultiTableInsertIntoClause { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct MultiTableInsertValues { /// The values to insert (can be column references, DEFAULT, or NULL) pub values: Vec, @@ -1007,6 +1023,7 @@ pub struct MultiTableInsertValues { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum MultiTableInsertValue { /// A column reference or expression from the source Expr(Expr), @@ -1029,6 +1046,7 @@ impl Display for MultiTableInsertValue { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum MultiTableInsertType { /// `INSERT ALL` - all matching WHEN clauses are executed All, diff --git a/src/ast/helpers/attached_token.rs b/src/ast/helpers/attached_token.rs index 6b930b5132..9bde5879d9 100644 --- a/src/ast/helpers/attached_token.rs +++ b/src/ast/helpers/attached_token.rs @@ -80,6 +80,7 @@ use sqlparser_derive::{Visit, VisitMut}; #[derive(Clone)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AttachedToken(pub TokenWithSpan); impl AttachedToken { diff --git a/src/ast/helpers/key_value_options.rs b/src/ast/helpers/key_value_options.rs index 2aa59d9d7c..3c8dde1339 100644 --- a/src/ast/helpers/key_value_options.rs +++ b/src/ast/helpers/key_value_options.rs @@ -35,6 +35,7 @@ use crate::ast::{display_comma_separated, display_separated, ValueWithSpan}; #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// A collection of key-value options. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct KeyValueOptions { /// The list of key-value options. pub options: Vec, @@ -46,6 +47,7 @@ pub struct KeyValueOptions { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// The delimiter used between key-value options. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum KeyValueOptionsDelimiter { /// Options are separated by spaces. Space, @@ -57,6 +59,7 @@ pub enum KeyValueOptionsDelimiter { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// A single key-value option. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct KeyValueOption { /// The name of the option. pub option_name: String, @@ -73,6 +76,7 @@ pub struct KeyValueOption { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// The kind of value for a key-value option. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum KeyValueOptionKind { /// A single value. Single(ValueWithSpan), diff --git a/src/ast/helpers/stmt_create_database.rs b/src/ast/helpers/stmt_create_database.rs index e524228dee..2583bbe9c4 100644 --- a/src/ast/helpers/stmt_create_database.rs +++ b/src/ast/helpers/stmt_create_database.rs @@ -54,6 +54,7 @@ use crate::parser::ParserError; #[derive(Debug, Clone, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateDatabaseBuilder { /// The database name to create. pub db_name: ObjectName, diff --git a/src/ast/helpers/stmt_create_table.rs b/src/ast/helpers/stmt_create_table.rs index 4ab9ac2c13..f607ab53c8 100644 --- a/src/ast/helpers/stmt_create_table.rs +++ b/src/ast/helpers/stmt_create_table.rs @@ -64,6 +64,7 @@ use crate::parser::ParserError; #[derive(Debug, Clone, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateTableBuilder { /// Whether the statement uses `OR REPLACE`. pub or_replace: bool, diff --git a/src/ast/helpers/stmt_data_loading.rs b/src/ast/helpers/stmt_data_loading.rs index 5e997bac70..45f57bd41e 100644 --- a/src/ast/helpers/stmt_data_loading.rs +++ b/src/ast/helpers/stmt_data_loading.rs @@ -35,6 +35,7 @@ use sqlparser_derive::{Visit, VisitMut}; #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Parameters for a named stage object used in data loading/unloading. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct StageParamsObject { /// Optional URL for the stage. pub url: Option, @@ -53,6 +54,7 @@ pub struct StageParamsObject { #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum StageLoadSelectItemKind { /// A standard SQL select item expression. SelectItem(SelectItem), @@ -73,6 +75,7 @@ impl fmt::Display for StageLoadSelectItemKind { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// A single item in the `SELECT` list for data loading from staged files. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct StageLoadSelectItem { /// Optional alias for the input source. pub alias: Option, @@ -126,6 +129,7 @@ impl fmt::Display for StageLoadSelectItem { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// A command to stage files to a named stage. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct FileStagingCommand { /// The stage to which files are being staged. #[cfg_attr(feature = "visitor", visit(with = "visit_relation"))] diff --git a/src/ast/mod.rs b/src/ast/mod.rs index ecfee10939..d0915c119f 100644 --- a/src/ast/mod.rs +++ b/src/ast/mod.rs @@ -226,6 +226,7 @@ fn format_begin_atomic(f: &mut fmt::Formatter, statements: &[Statement]) -> fmt: #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Parens { /// the opening parenthesis token, i.e. `(` pub opening_token: AttachedToken, @@ -264,6 +265,7 @@ impl DerefMut for Parens { /// An identifier, decomposed into its value or character data and the quote style. #[derive(Debug, Clone)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Ident { /// The value of the identifier without quotes. pub value: String, @@ -436,6 +438,7 @@ impl VisitMut for Ident { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ObjectName(pub Vec); impl From> for ObjectName { @@ -460,6 +463,7 @@ impl fmt::Display for ObjectName { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ObjectNamePart { /// A single identifier part, e.g. `schema` or `table`. Identifier(Ident), @@ -493,6 +497,7 @@ impl fmt::Display for ObjectNamePart { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ObjectNamePartFunction { /// The function name that produces the object name part. pub name: Ident, @@ -512,6 +517,7 @@ impl fmt::Display for ObjectNamePartFunction { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Array { /// The list of expressions between brackets pub elem: Vec, @@ -542,6 +548,7 @@ impl fmt::Display for Array { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Interval { /// The interval value expression (commonly a string literal). pub value: Box, @@ -604,6 +611,7 @@ impl fmt::Display for Interval { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct StructField { /// Optional name of the struct field. pub field_name: Option, @@ -635,6 +643,7 @@ impl fmt::Display for StructField { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct UnionField { /// Name of the union field. pub field_name: Ident, @@ -654,6 +663,7 @@ impl fmt::Display for UnionField { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct DictionaryField { /// Dictionary key identifier. pub key: Ident, @@ -671,6 +681,7 @@ impl fmt::Display for DictionaryField { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Map { /// Entries of the map as key/value pairs. pub entries: Vec, @@ -688,6 +699,7 @@ impl Display for Map { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct MapEntry { /// Key expression of the map entry. pub key: Box, @@ -706,6 +718,7 @@ impl fmt::Display for MapEntry { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CastFormat { /// A simple cast format specified by a `Value`. Value(ValueWithSpan), @@ -717,6 +730,7 @@ pub enum CastFormat { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum JsonPathElem { /// Accesses an object field using dot notation, e.g. `obj:foo.bar.baz`. /// @@ -752,6 +766,7 @@ pub enum JsonPathElem { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct JsonPath { /// Sequence of path elements that form the JSON path. pub path: Vec, @@ -790,6 +805,7 @@ impl fmt::Display for JsonPath { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CastKind { /// The standard SQL cast syntax, e.g. `CAST( as )` Cast, @@ -812,6 +828,7 @@ pub enum CastKind { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ConstraintReferenceMatchKind { /// `MATCH FULL` Full, @@ -840,6 +857,7 @@ impl fmt::Display for ConstraintReferenceMatchKind { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ExtractSyntax { /// `EXTRACT( FROM )` From, @@ -858,6 +876,7 @@ pub enum ExtractSyntax { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CeilFloorKind { /// `CEIL( TO )` DateTimeField(DateTimeField), @@ -870,6 +889,7 @@ pub enum CeilFloorKind { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CaseWhen { /// The `WHEN` condition expression. pub condition: Expr, @@ -892,6 +912,7 @@ impl fmt::Display for CaseWhen { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum InTarget { /// `(val1, val2, ...)` List(Vec), @@ -952,6 +973,7 @@ impl fmt::Display for InTarget { derive(Visit, VisitMut), visit(with = "visit_expr") )] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum Expr { /// Identifier e.g. table name or column name Identifier(Ident), @@ -1456,6 +1478,7 @@ impl Expr { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum Subscript { /// Accesses the element of the array at the given index. Index { @@ -1525,6 +1548,7 @@ impl fmt::Display for Subscript { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AccessExpr { /// Accesses a field using dot notation, e.g. `foo.bar.baz`. Dot(Expr), @@ -1550,6 +1574,7 @@ impl fmt::Display for AccessExpr { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct LambdaFunction { /// The parameters to the lambda function. pub params: OneOrManyWithParens, @@ -1581,6 +1606,7 @@ impl fmt::Display for LambdaFunction { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct LambdaFunctionParameter { /// The name of the parameter pub name: Ident, @@ -1602,6 +1628,7 @@ impl fmt::Display for LambdaFunctionParameter { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash, Copy)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum LambdaSyntax { /// Arrow syntax: `param -> expr` or `(param1, param2) -> expr` /// @@ -1642,6 +1669,7 @@ pub enum LambdaSyntax { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum OneOrManyWithParens { /// A single `T`, unparenthesized. One(T), @@ -2329,6 +2357,7 @@ impl fmt::Display for Expr { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum WindowType { /// An inline window specification. WindowSpec(WindowSpec), @@ -2355,6 +2384,7 @@ impl Display for WindowType { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct WindowSpec { /// Optional window name. /// @@ -2426,6 +2456,7 @@ impl fmt::Display for WindowSpec { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct WindowFrame { /// Units for the frame (e.g. `ROWS`, `RANGE`, `GROUPS`). pub units: WindowFrameUnits, @@ -2455,6 +2486,7 @@ impl Default for WindowFrame { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Units used to describe the window frame scope. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum WindowFrameUnits { /// `ROWS` unit. Rows, @@ -2481,6 +2513,7 @@ impl fmt::Display for WindowFrameUnits { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// How NULL values are treated in certain window functions. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum NullTreatment { /// Ignore NULL values (e.g. `IGNORE NULLS`). IgnoreNulls, @@ -2501,6 +2534,7 @@ impl fmt::Display for NullTreatment { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum WindowFrameBound { /// `CURRENT ROW` CurrentRow, @@ -2526,6 +2560,7 @@ impl fmt::Display for WindowFrameBound { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Indicates partition operation type for partition management statements. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AddDropSync { /// Add partitions. ADD, @@ -2549,6 +2584,7 @@ impl fmt::Display for AddDropSync { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Object kinds supported by `SHOW CREATE` statements. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ShowCreateObject { /// An event object for `SHOW CREATE EVENT`. Event, @@ -2581,6 +2617,7 @@ impl fmt::Display for ShowCreateObject { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Objects that can be targeted by a `COMMENT` statement. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CommentObject { /// A collation. Collation, @@ -2646,6 +2683,7 @@ impl fmt::Display for CommentObject { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Password specification variants used in user-related statements. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum Password { /// A concrete password expression. Password(Expr), @@ -2672,6 +2710,7 @@ pub enum Password { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CaseStatement { /// The `CASE` token that starts the statement. pub case_token: AttachedToken, @@ -2745,6 +2784,7 @@ impl fmt::Display for CaseStatement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct IfStatement { /// The initial `IF` block containing the condition and statements. pub if_block: ConditionalStatementBlock, @@ -2797,6 +2837,7 @@ impl fmt::Display for IfStatement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct WhileStatement { /// Block executed while the condition holds. pub while_block: ConditionalStatementBlock, @@ -2837,6 +2878,7 @@ impl fmt::Display for WhileStatement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ConditionalStatementBlock { /// Token representing the start of the block (e.g., WHEN/IF/WHILE). pub start_token: AttachedToken, @@ -2887,6 +2929,7 @@ impl fmt::Display for ConditionalStatementBlock { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Statements used inside conditional blocks (`IF`, `WHEN`, `WHILE`). +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ConditionalStatements { /// Simple sequence of statements (no `BEGIN`/`END`). Sequence { @@ -2932,6 +2975,7 @@ impl fmt::Display for ConditionalStatements { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct BeginEndStatements { /// Token representing the `BEGIN` keyword (may include span info). pub begin_token: AttachedToken, @@ -2976,6 +3020,7 @@ impl fmt::Display for BeginEndStatements { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct RaiseStatement { /// Optional value provided to the RAISE statement. pub value: Option, @@ -2998,6 +3043,7 @@ impl fmt::Display for RaiseStatement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum RaiseStatementValue { /// `RAISE USING MESSAGE = 'error'` UsingMessage(Expr), @@ -3024,6 +3070,7 @@ impl fmt::Display for RaiseStatementValue { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ThrowStatement { /// Error number expression. pub error_number: Option>, @@ -3059,6 +3106,7 @@ impl fmt::Display for ThrowStatement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum DeclareAssignment { /// Plain expression specified. Expr(Box), @@ -3117,6 +3165,7 @@ impl fmt::Display for DeclareAssignment { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum DeclareType { /// Cursor variable type. e.g. [Snowflake] [PostgreSQL] [MsSql] /// @@ -3164,6 +3213,7 @@ impl fmt::Display for DeclareType { #[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum DeclareSeparator { /// Each declaration ends with `;`, as in a Snowflake Scripting `DECLARE` section. /// @@ -3191,6 +3241,7 @@ pub enum DeclareSeparator { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Declare { /// The name(s) being declared. /// Example: `DECLARE a, b, c DEFAULT 42; @@ -3287,6 +3338,7 @@ impl fmt::Display for Declare { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Options allowed within a `CREATE TABLE` statement. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CreateTableOptions { /// No options specified. #[default] @@ -3330,6 +3382,7 @@ impl fmt::Display for CreateTableOptions { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum FromTable { /// An explicit `FROM` keyword was specified. WithFromKeyword(Vec), @@ -3354,6 +3407,7 @@ impl Display for FromTable { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Variants for the `SET` family of statements. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum Set { /// SQL Standard-style /// SET a = 1; @@ -3551,6 +3605,7 @@ impl Display for Set { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ExceptionWhen { /// Identifiers that trigger this branch (error conditions). pub idents: Vec, @@ -3584,6 +3639,7 @@ impl Display for ExceptionWhen { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Analyze { #[cfg_attr(feature = "visitor", visit(with = "visit_relation"))] /// Name of the table to analyze. `None` for bare `ANALYZE`. @@ -3648,6 +3704,7 @@ impl fmt::Display for Analyze { derive(Visit, VisitMut), visit(with = "visit_statement") )] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum Statement { /// ```sql /// ANALYZE @@ -5174,6 +5231,7 @@ impl From for Statement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CurrentGrantsKind { /// `COPY CURRENT GRANTS` (copy current grants to target). CopyCurrentGrants, @@ -5195,6 +5253,7 @@ impl fmt::Display for CurrentGrantsKind { #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// `RAISERROR` options /// See +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum RaisErrorOption { /// Log the error. Log, @@ -6642,6 +6701,7 @@ impl fmt::Display for Statement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum SequenceOptions { /// `AS ` option. DataType(DataType), @@ -6715,6 +6775,7 @@ impl fmt::Display for SequenceOptions { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct SetAssignment { /// Optional context scope (e.g., SESSION or LOCAL). pub scope: Option, @@ -6742,6 +6803,7 @@ impl fmt::Display for SetAssignment { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct TruncateTableTarget { /// name of the table being truncated #[cfg_attr(feature = "visitor", visit(with = "visit_relation"))] @@ -6779,6 +6841,7 @@ impl fmt::Display for TruncateTableTarget { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Lock { /// List of tables to lock. pub tables: Vec, @@ -6807,6 +6870,7 @@ impl fmt::Display for Lock { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct LockTableTarget { /// Name of the table being locked. #[cfg_attr(feature = "visitor", visit(with = "visit_relation"))] @@ -6836,6 +6900,7 @@ impl fmt::Display for LockTableTarget { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum LockTableMode { /// `ACCESS SHARE` AccessShare, @@ -6876,6 +6941,7 @@ impl fmt::Display for LockTableMode { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum TruncateIdentityOption { /// Restart identity values (RESTART IDENTITY). Restart, @@ -6888,6 +6954,7 @@ pub enum TruncateIdentityOption { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CascadeOption { /// Apply cascading action (e.g., CASCADE). Cascade, @@ -6908,6 +6975,7 @@ impl Display for CascadeOption { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum BeginTransactionKind { /// Standard `TRANSACTION` keyword. Transaction, @@ -6933,6 +7001,7 @@ impl Display for BeginTransactionKind { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum MinMaxValue { /// Clause is not specified. Empty, @@ -6947,6 +7016,7 @@ pub enum MinMaxValue { #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] #[non_exhaustive] /// Behavior to apply for `INSERT` when a conflict occurs. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum OnInsert { /// ON DUPLICATE KEY UPDATE (MySQL when the key already exists, then execute an update instead) DuplicateKeyUpdate(Vec), @@ -6958,6 +7028,7 @@ pub enum OnInsert { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Optional aliases for `INSERT` targets: row alias and optional column aliases. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct InsertAliases { /// Row alias (table-style alias) for the inserted values. pub row_alias: ObjectName, @@ -6969,6 +7040,7 @@ pub struct InsertAliases { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Optional alias for an `INSERT` table; i.e. the table to be inserted into +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct TableAliasWithoutColumns { /// `true` if the aliases was explicitly introduced with the "AS" keyword pub explicit: bool, @@ -6980,6 +7052,7 @@ pub struct TableAliasWithoutColumns { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// `ON CONFLICT` clause representation. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct OnConflict { /// Optional conflict target specifying columns or constraint. pub conflict_target: Option, @@ -6990,6 +7063,7 @@ pub struct OnConflict { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Target specification for an `ON CONFLICT` clause. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ConflictTarget { /// Target specified as a list of columns, optionally followed by /// `WHERE index_predicate`, which lets a partial unique index be inferred as the arbiter: @@ -7010,6 +7084,7 @@ pub enum ConflictTarget { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Action to perform when an `ON CONFLICT` target is matched. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum OnConflictAction { /// Do nothing on conflict. DoNothing, @@ -7021,6 +7096,7 @@ pub enum OnConflictAction { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Details for `DO UPDATE` action of an `ON CONFLICT` clause. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct DoUpdate { /// Column assignments to perform on update. pub assignments: Vec, @@ -7089,6 +7165,7 @@ impl fmt::Display for OnConflictAction { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum Privileges { /// All privileges applicable to the object type All { @@ -7126,6 +7203,7 @@ impl fmt::Display for Privileges { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum FetchDirection { /// Fetch a specific count of rows. Count { @@ -7219,6 +7297,7 @@ impl fmt::Display for FetchDirection { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum FetchPosition { /// Use `FROM ` position specifier. From, @@ -7241,6 +7320,7 @@ impl fmt::Display for FetchPosition { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum Action { /// Add a search optimization. AddSearchOptimization, @@ -7453,6 +7533,7 @@ impl fmt::Display for Action { #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// See /// under `globalPrivileges` in the `CREATE` privilege. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ActionCreateObjectType { /// An account-level object. Account, @@ -7519,6 +7600,7 @@ impl fmt::Display for ActionCreateObjectType { #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// See /// under `globalPrivileges` in the `APPLY` privilege. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ActionApplyType { /// Apply an aggregation policy. AggregationPolicy, @@ -7564,6 +7646,7 @@ impl fmt::Display for ActionApplyType { #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// See /// under `globalPrivileges` in the `EXECUTE` privilege. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ActionExecuteObjectType { /// Alert object. Alert, @@ -7594,6 +7677,7 @@ impl fmt::Display for ActionExecuteObjectType { #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// See /// under `globalPrivileges` in the `MANAGE` privilege. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ActionManageType { /// Account support cases management. AccountSupportCases, @@ -7630,6 +7714,7 @@ impl fmt::Display for ActionManageType { #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// See /// under `globalPrivileges` in the `MODIFY` privilege. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ActionModifyType { /// Modify log level. LogLevel, @@ -7657,6 +7742,7 @@ impl fmt::Display for ActionModifyType { #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// See /// under `globalPrivileges` in the `MONITOR` privilege. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ActionMonitorType { /// Monitor execution. Execution, @@ -7680,6 +7766,7 @@ impl fmt::Display for ActionMonitorType { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Grantee { /// The category/type of grantee (role, user, share, etc.). pub grantee_type: GranteesType, @@ -7715,6 +7802,7 @@ impl fmt::Display for Grantee { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// The kind of principal receiving privileges. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum GranteesType { /// A role principal. Role, @@ -7740,6 +7828,7 @@ pub enum GranteesType { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum GranteeName { /// A bare identifier ObjectName(ObjectName), @@ -7767,6 +7856,7 @@ impl fmt::Display for GranteeName { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum GrantObjects { /// Grant privileges on `ALL SEQUENCES IN SCHEMA [, ...]` AllSequencesInSchema { @@ -8047,6 +8137,7 @@ impl fmt::Display for GrantObjects { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct DenyStatement { /// The privileges to deny. pub privileges: Privileges, @@ -8081,6 +8172,7 @@ impl fmt::Display for DenyStatement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Assignment { /// The left-hand side of the assignment. pub target: AssignmentTarget, @@ -8100,6 +8192,7 @@ impl fmt::Display for Assignment { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AssignmentTarget { /// A single column ColumnName(ObjectName), @@ -8120,6 +8213,7 @@ impl fmt::Display for AssignmentTarget { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Expression forms allowed as a function argument. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum FunctionArgExpr { /// A normal expression argument. Expr(Expr), @@ -8158,6 +8252,7 @@ impl fmt::Display for FunctionArgExpr { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Operator used to separate function arguments +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum FunctionArgOperator { /// function(arg1 = value1) Equals, @@ -8193,6 +8288,7 @@ impl fmt::Display for FunctionArgOperator { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Forms of function arguments (named, expression-named, or positional). +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum FunctionArg { /// `name` is identifier /// @@ -8263,6 +8359,7 @@ fn fmt_named_function_arg( #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Which cursor(s) to close. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CloseCursor { /// Close all cursors. All, @@ -8286,6 +8383,7 @@ impl fmt::Display for CloseCursor { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct DropDomain { /// Whether to drop the domain if it exists pub if_exists: bool, @@ -8301,6 +8399,7 @@ pub struct DropDomain { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct TypedString { /// The data type of the typed string (e.g. DATE, TIME, TIMESTAMP). pub data_type: DataType, @@ -8346,6 +8445,7 @@ impl fmt::Display for TypedString { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Function { /// The function name (may be qualified). pub name: ObjectName, @@ -8435,6 +8535,7 @@ impl fmt::Display for Function { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum FunctionArguments { /// Used for special functions like `CURRENT_TIMESTAMP` that are invoked /// without parentheses. @@ -8461,6 +8562,7 @@ impl fmt::Display for FunctionArguments { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct FunctionArgumentList { /// `[ ALL | DISTINCT ]` pub duplicate_treatment: Option, @@ -8490,6 +8592,7 @@ impl fmt::Display for FunctionArgumentList { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Clauses that can appear inside a function argument list. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum FunctionArgumentClause { /// Indicates how `NULL`s should be handled in the calculation, e.g. in `FIRST_VALUE` on [BigQuery]. /// @@ -8568,6 +8671,7 @@ impl fmt::Display for FunctionArgumentClause { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Method { /// The expression on which the method is invoked. pub expr: Box, @@ -8591,6 +8695,7 @@ impl fmt::Display for Method { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// How duplicate values are treated inside function argument lists. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum DuplicateTreatment { /// Consider only unique values. Distinct, @@ -8611,6 +8716,7 @@ impl fmt::Display for DuplicateTreatment { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// How the `ANALYZE`/`EXPLAIN ANALYZE` format is specified. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AnalyzeFormatKind { /// Format provided as a keyword, e.g. `FORMAT JSON`. Keyword(AnalyzeFormat), @@ -8631,6 +8737,7 @@ impl fmt::Display for AnalyzeFormatKind { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Output formats supported for `ANALYZE`/`EXPLAIN ANALYZE`. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AnalyzeFormat { /// Plain text format. TEXT, @@ -8648,6 +8755,7 @@ pub enum AnalyzeFormat { #[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum JsonPredicateType { /// `VALUE` form. Value, @@ -8674,6 +8782,7 @@ impl fmt::Display for JsonPredicateType { #[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum JsonKeyUniqueness { /// `WITH UNIQUE KEYS` form. WithUniqueKeys, @@ -8706,6 +8815,7 @@ impl fmt::Display for AnalyzeFormat { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum FileFormat { /// Text file format. TEXTFILE, @@ -8742,6 +8852,7 @@ impl fmt::Display for FileFormat { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ListAggOnOverflow { /// `ON OVERFLOW ERROR` Error, @@ -8780,6 +8891,7 @@ impl fmt::Display for ListAggOnOverflow { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct HavingBound(pub HavingBoundKind, pub Expr); impl fmt::Display for HavingBound { @@ -8792,6 +8904,7 @@ impl fmt::Display for HavingBound { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Which bound is used in a HAVING clause for ANY_VALUE on BigQuery. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum HavingBoundKind { /// The minimum bound. Min, @@ -8812,6 +8925,7 @@ impl fmt::Display for HavingBoundKind { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Types of database objects referenced by DDL statements. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ObjectType { /// A collation. Collation, @@ -8874,6 +8988,7 @@ impl fmt::Display for ObjectType { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Types supported by `KILL` statements. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum KillType { /// Kill a connection. Connection, @@ -8899,6 +9014,7 @@ impl fmt::Display for KillType { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Distribution style options for Hive tables. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum HiveDistributionStyle { /// Partitioned distribution with the given columns. PARTITIONED { @@ -8922,6 +9038,7 @@ pub enum HiveDistributionStyle { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Row format specification for Hive tables (SERDE or DELIMITED). +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum HiveRowFormat { /// SerDe class specification with the implementing class name. SERDE { @@ -8939,6 +9056,7 @@ pub enum HiveRowFormat { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Format specification for `LOAD DATA` Hive operations. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct HiveLoadDataFormat { /// SerDe expression used for the table. pub serde: Expr, @@ -8950,6 +9068,7 @@ pub struct HiveLoadDataFormat { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// A single row delimiter specification for Hive `ROW FORMAT`. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct HiveRowDelimiter { /// The delimiter kind (fields/lines/etc.). pub delimiter: HiveDelimiter, @@ -8968,6 +9087,7 @@ impl fmt::Display for HiveRowDelimiter { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Kind of delimiter used in Hive `ROW FORMAT` definitions. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum HiveDelimiter { /// Fields terminated by a delimiter. FieldsTerminatedBy, @@ -9001,6 +9121,7 @@ impl fmt::Display for HiveDelimiter { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Describe output format options for Hive `DESCRIBE`/`EXPLAIN`. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum HiveDescribeFormat { /// Extended describe output. Extended, @@ -9022,6 +9143,7 @@ impl fmt::Display for HiveDescribeFormat { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Aliases accepted for describe-style commands. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum DescribeAlias { /// `DESCRIBE` alias. Describe, @@ -9046,6 +9168,7 @@ impl fmt::Display for DescribeAlias { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Hive input/output format specification used in `CREATE TABLE`. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum HiveIOFormat { /// Generic IO format with separate input and output expressions. IOF { @@ -9074,6 +9197,7 @@ pub enum HiveIOFormat { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Hive table format and storage-related options. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct HiveFormat { /// Optional row format specification. pub row_format: Option, @@ -9089,6 +9213,7 @@ pub struct HiveFormat { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// A clustered index column specification. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ClusteredIndex { /// Column identifier for the clustered index entry. pub name: Ident, @@ -9111,6 +9236,7 @@ impl fmt::Display for ClusteredIndex { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Clustered options used for `CREATE TABLE` clustered/indexed storage. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum TableOptionsClustered { /// Use a columnstore index. ColumnstoreIndex, @@ -9144,6 +9270,7 @@ impl fmt::Display for TableOptionsClustered { #[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum PartitionRangeDirection { /// LEFT range direction. Left, @@ -9155,6 +9282,7 @@ pub enum PartitionRangeDirection { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// SQL option syntax used in table and server definitions. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum SqlOption { /// Clustered represents the clustered version of table storage for MSSQL. /// @@ -9266,6 +9394,7 @@ impl fmt::Display for SqlOption { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Storage type options for a tablespace. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum StorageType { /// Store on disk. Disk, @@ -9278,6 +9407,7 @@ pub enum StorageType { #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// MySql TableSpace option /// +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct TablespaceOption { /// Name of the tablespace. pub name: String, @@ -9289,6 +9419,7 @@ pub struct TablespaceOption { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// A key/value identifier pair used for secret or key-based options. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct SecretOption { /// The option key identifier. pub key: Ident, @@ -9308,6 +9439,7 @@ impl fmt::Display for SecretOption { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateServerStatement { /// The server name. pub name: ObjectName, @@ -9362,6 +9494,7 @@ impl fmt::Display for CreateServerStatement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateServerOption { /// Option key identifier. pub key: Ident, @@ -9379,6 +9512,7 @@ impl fmt::Display for CreateServerOption { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Options supported by DuckDB for `ATTACH DATABASE`. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum AttachDuckDBDatabaseOption { /// READ_ONLY option, optional boolean value. ReadOnly(Option), @@ -9401,6 +9535,7 @@ impl fmt::Display for AttachDuckDBDatabaseOption { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Mode for transactions: access mode or isolation level. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum TransactionMode { /// Access mode for a transaction (e.g. `READ ONLY` / `READ WRITE`). AccessMode(TransactionAccessMode), @@ -9422,6 +9557,7 @@ impl fmt::Display for TransactionMode { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Transaction access mode (READ ONLY / READ WRITE). +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum TransactionAccessMode { /// READ ONLY access mode. ReadOnly, @@ -9443,6 +9579,7 @@ impl fmt::Display for TransactionAccessMode { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Transaction isolation levels. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum TransactionIsolationLevel { /// READ UNCOMMITTED isolation level. ReadUncommitted, @@ -9476,6 +9613,7 @@ impl fmt::Display for TransactionIsolationLevel { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum TransactionModifier { /// DEFERRED transaction modifier. Deferred, @@ -9506,6 +9644,7 @@ impl fmt::Display for TransactionModifier { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Filter forms usable in SHOW statements. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ShowStatementFilter { /// Filter using LIKE pattern. Like(String), @@ -9533,6 +9672,7 @@ impl fmt::Display for ShowStatementFilter { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Clause types used with SHOW ... IN/FROM. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ShowStatementInClause { /// Use the `IN` clause. IN, @@ -9557,6 +9697,7 @@ impl fmt::Display for ShowStatementInClause { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum SqliteOnConflict { /// Use ROLLBACK on conflict. Rollback, @@ -9591,6 +9732,7 @@ impl fmt::Display for SqliteOnConflict { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum MysqlInsertPriority { /// LOW_PRIORITY modifier for INSERT/REPLACE. LowPriority, @@ -9615,6 +9757,7 @@ impl fmt::Display for crate::ast::MysqlInsertPriority { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Source for the `COPY` command: a table or a query. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CopySource { /// Copy from a table with optional column list. Table { @@ -9632,6 +9775,7 @@ pub enum CopySource { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Target for the `COPY` command: STDIN, STDOUT, a file, or a program. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CopyTarget { /// Use standard input as the source. Stdin, @@ -9670,6 +9814,7 @@ impl fmt::Display for CopyTarget { #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// The inline payload of a `COPY ... FROM STDIN` statement, captured /// verbatim from the source text. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CopyPayload { /// The payload as written, starting on the line after the command and /// running up to the `\.` terminator line. Field separators, escapes and @@ -9683,6 +9828,7 @@ pub struct CopyPayload { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Action to take `ON COMMIT` for temporary tables. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum OnCommit { /// Delete rows on commit. DeleteRows, @@ -9698,6 +9844,7 @@ pub enum OnCommit { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CopyOption { /// FORMAT format_name Format(Ident), @@ -9753,6 +9900,7 @@ impl fmt::Display for CopyOption { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CopyLegacyOption { /// ACCEPTANYDATE AcceptAnyDate, @@ -9959,6 +10107,7 @@ impl fmt::Display for CopyLegacyOption { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct FileSize { /// Numeric size value. pub size: ValueWithSpan, @@ -9980,6 +10129,7 @@ impl fmt::Display for FileSize { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum FileSizeUnit { /// Megabytes. MB, @@ -10004,6 +10154,7 @@ impl fmt::Display for FileSizeUnit { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct UnloadPartitionBy { /// Columns used to partition the unload output. pub columns: Vec, @@ -10028,6 +10179,7 @@ impl fmt::Display for UnloadPartitionBy { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum IamRoleKind { /// Default role Default, @@ -10050,6 +10202,7 @@ impl fmt::Display for IamRoleKind { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CopyLegacyCsvOption { /// HEADER Header, @@ -10082,6 +10235,7 @@ impl fmt::Display for CopyLegacyCsvOption { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum DiscardObject { /// Discard all session state. ALL, @@ -10108,6 +10262,7 @@ impl fmt::Display for DiscardObject { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum FlushType { /// Flush binary logs. BinaryLogs, @@ -10161,6 +10316,7 @@ impl fmt::Display for FlushType { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum FlushLocation { /// Do not write changes to the binary log. NoWriteToBinlog, @@ -10181,6 +10337,7 @@ impl fmt::Display for FlushLocation { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ContextModifier { /// `LOCAL` identifier, usually related to transactional states. Local, @@ -10209,6 +10366,7 @@ impl fmt::Display for ContextModifier { /// Function describe in DROP FUNCTION. #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum DropFunctionOption { /// `RESTRICT` option for DROP FUNCTION. Restrict, @@ -10229,6 +10387,7 @@ impl fmt::Display for DropFunctionOption { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct FunctionDesc { /// The function name. pub name: ObjectName, @@ -10250,6 +10409,7 @@ impl fmt::Display for FunctionDesc { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct OperateFunctionArg { /// Optional argument mode (`IN`, `OUT`, `INOUT`). pub mode: Option, @@ -10303,6 +10463,7 @@ impl fmt::Display for OperateFunctionArg { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ArgMode { /// `IN` mode. In, @@ -10329,6 +10490,7 @@ impl fmt::Display for ArgMode { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum FunctionBehavior { /// Function is immutable. Immutable, @@ -10354,6 +10516,7 @@ impl fmt::Display for FunctionBehavior { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum FunctionSecurity { /// Execute the function with the privileges of the user who defined it. Definer, @@ -10376,6 +10539,7 @@ impl fmt::Display for FunctionSecurity { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum FunctionSetValue { /// SET param = DEFAULT / SET param TO DEFAULT Default, @@ -10391,6 +10555,7 @@ pub enum FunctionSetValue { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct FunctionDefinitionSetParam { /// The name of the configuration parameter. pub name: ObjectName, @@ -10415,6 +10580,7 @@ impl fmt::Display for FunctionDefinitionSetParam { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum FunctionCalledOnNull { /// Function is called even when inputs are null. CalledOnNullInput, @@ -10438,6 +10604,7 @@ impl fmt::Display for FunctionCalledOnNull { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum FunctionParallel { /// The function is not safe to run in parallel. Unsafe, @@ -10470,6 +10637,7 @@ impl fmt::Display for FunctionParallel { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum FunctionDeterminismSpecifier { /// Function is deterministic. Deterministic, @@ -10499,6 +10667,7 @@ impl fmt::Display for FunctionDeterminismSpecifier { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CreateFunctionBody { /// A function body expression using the 'AS' keyword and shows up /// before any `OPTIONS` clause. @@ -10597,6 +10766,7 @@ pub enum CreateFunctionBody { /// Body of a `CREATE PROCEDURE` statement. #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] pub enum CreateProcedureBody { /// Statements after `AS`. @@ -10611,6 +10781,7 @@ pub enum CreateProcedureBody { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// `USING` clause options for `CREATE FUNCTION` (e.g., JAR, FILE, ARCHIVE). +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CreateFunctionUsing { /// Use a JAR file located at the given URI. Jar(String), @@ -10638,6 +10809,7 @@ impl fmt::Display for CreateFunctionUsing { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct MacroArg { /// The argument name. pub name: Ident, @@ -10669,6 +10841,7 @@ impl fmt::Display for MacroArg { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Definition for a DuckDB macro: either an expression or a table-producing query. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum MacroDefinition { /// The macro is defined as an expression. Expr(Expr), @@ -10692,6 +10865,7 @@ impl fmt::Display for MacroDefinition { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum SchemaName { /// Only schema name specified: ``. Simple(ObjectName), @@ -10723,6 +10897,7 @@ impl fmt::Display for SchemaName { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum SearchModifier { /// `IN NATURAL LANGUAGE MODE`. InNaturalLanguageMode, @@ -10759,6 +10934,7 @@ impl fmt::Display for SearchModifier { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct LockTable { /// The table identifier to lock. pub table: Ident, @@ -10789,6 +10965,7 @@ impl fmt::Display for LockTable { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// The type of lock used in `LOCK TABLE` statements. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum LockTableType { /// Shared/read lock. If `local` is true, it's a local read lock. Read { @@ -10827,6 +11004,7 @@ impl fmt::Display for LockTableType { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Hive-specific `SET LOCATION` helper used in some `LOAD DATA` statements. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct HiveSetLocation { /// Whether the `SET` keyword was present. pub has_set: bool, @@ -10848,6 +11026,7 @@ impl fmt::Display for HiveSetLocation { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// MySQL `ALTER TABLE` column position specifier: `FIRST` or `AFTER `. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum MySQLColumnPosition { /// Place the column first in the table. First, @@ -10869,6 +11048,7 @@ impl Display for MySQLColumnPosition { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// MySQL `CREATE VIEW` algorithm options. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CreateViewAlgorithm { /// `UNDEFINED` algorithm. Undefined, @@ -10892,6 +11072,7 @@ impl Display for CreateViewAlgorithm { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// MySQL `CREATE VIEW` SQL SECURITY options. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CreateViewSecurity { /// The view runs with the privileges of the definer. Definer, @@ -10914,6 +11095,7 @@ impl Display for CreateViewSecurity { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateViewParams { /// Optional view algorithm (e.g., MERGE, TEMPTABLE). pub algorithm: Option, @@ -10953,6 +11135,7 @@ impl Display for CreateViewParams { /// ENGINE = ReplicatedMergeTree('/table_name','{replica}', ver) /// ENGINE = SummingMergeTree([columns]) /// ``` +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct NamedParenthesizedList { /// The option key (identifier) for this named list. pub key: Ident, @@ -10969,6 +11152,7 @@ pub struct NamedParenthesizedList { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct RowAccessPolicy { /// The fully-qualified policy object name. pub policy: ObjectName, @@ -11000,6 +11184,7 @@ impl Display for RowAccessPolicy { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct StorageLifecyclePolicy { /// The fully-qualified policy object name. pub policy: ObjectName, @@ -11024,6 +11209,7 @@ impl Display for StorageLifecyclePolicy { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Tag { /// The tag key (can be qualified). pub key: ObjectName, @@ -11050,6 +11236,7 @@ impl Display for Tag { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ContactEntry { /// The purpose label for the contact entry. pub purpose: String, @@ -11067,6 +11254,7 @@ impl Display for ContactEntry { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CommentDef { /// Includes `=` when printing the comment, as `COMMENT = 'comment'` /// Does not include `=` when printing the comment, as `COMMENT 'comment'` @@ -11100,6 +11288,7 @@ impl Display for CommentDef { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum WrappedCollection { /// Print the collection without wrapping symbols, as `item, item, item` NoWrapping(T), @@ -11149,6 +11338,7 @@ where #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct UtilityOption { /// The option name (identifier). pub name: Ident, @@ -11172,6 +11362,7 @@ impl Display for UtilityOption { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ShowStatementOptions { /// Optional scope to show in (for example: TABLE, SCHEMA). pub show_in: Option, @@ -11224,6 +11415,7 @@ impl Display for ShowStatementOptions { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Where a `SHOW` filter appears relative to the main clause. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ShowStatementFilterPosition { /// Put the filter in an infix position (e.g. `SHOW COLUMNS LIKE '%name%' IN TABLE tbl`). Infix(ShowStatementFilter), // For example: SHOW COLUMNS LIKE '%name%' IN TABLE tbl @@ -11235,6 +11427,7 @@ pub enum ShowStatementFilterPosition { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Parent object types usable with `SHOW ... IN ` clauses. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ShowStatementInParentType { /// ACCOUNT parent type for SHOW statements. Account, @@ -11264,6 +11457,7 @@ impl fmt::Display for ShowStatementInParentType { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Represents a `SHOW ... IN` clause with optional parent qualifier and name. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ShowStatementIn { /// The clause that specifies what to show (e.g. COLUMNS, TABLES). pub clause: ShowStatementInClause, @@ -11291,6 +11485,7 @@ impl fmt::Display for ShowStatementIn { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ShowCharset { /// The statement can be written as `SHOW CHARSET` or `SHOW CHARACTER SET` /// true means CHARSET was used and false means CHARACTER SET was used @@ -11318,6 +11513,7 @@ impl fmt::Display for ShowCharset { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Options for a `SHOW OBJECTS` statement. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ShowObjects { /// Whether to show terse output. pub terse: bool, @@ -11337,6 +11533,7 @@ pub struct ShowObjects { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum JsonNullClause { /// `NULL ON NULL` behavior for JSON functions. NullOnNull, @@ -11362,6 +11559,7 @@ impl Display for JsonNullClause { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct JsonReturningClause { /// The data type to return from the JSON function (e.g. JSON/JSONB). pub data_type: DataType, @@ -11377,6 +11575,7 @@ impl Display for JsonReturningClause { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct RenameTable { /// The current name of the object to rename. pub old_name: ObjectName, @@ -11395,6 +11594,7 @@ impl fmt::Display for RenameTable { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum TableObject { /// Table specified by name. /// Example: @@ -11436,6 +11636,7 @@ impl fmt::Display for TableObject { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct SetSessionAuthorizationParam { /// The scope for the `SET SESSION AUTHORIZATION` (e.g., GLOBAL/SESSION). pub scope: ContextModifier, @@ -11453,6 +11654,7 @@ impl fmt::Display for SetSessionAuthorizationParam { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum SetSessionAuthorizationParamKind { /// Default authorization Default, @@ -11474,6 +11676,7 @@ impl fmt::Display for SetSessionAuthorizationParamKind { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Kind of session parameter being set by `SET SESSION`. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum SetSessionParamKind { /// Generic session parameter (name/value pair). Generic(SetSessionParamGeneric), @@ -11500,6 +11703,7 @@ impl fmt::Display for SetSessionParamKind { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Generic `SET SESSION` parameter represented as name(s) and value. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct SetSessionParamGeneric { /// Names of the session parameters being set. pub names: Vec, @@ -11517,6 +11721,7 @@ impl fmt::Display for SetSessionParamGeneric { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// `IDENTITY_INSERT` session parameter for a specific object. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct SetSessionParamIdentityInsert { /// Object name targeted by `IDENTITY_INSERT`. pub obj: ObjectName, @@ -11534,6 +11739,7 @@ impl fmt::Display for SetSessionParamIdentityInsert { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Offsets-related session parameter with keywords and a value. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct SetSessionParamOffsets { /// Keywords specifying which offsets to modify. pub keywords: Vec, @@ -11556,6 +11762,7 @@ impl fmt::Display for SetSessionParamOffsets { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Statistics-related session parameter specifying topic and value. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct SetSessionParamStatistics { /// Statistics topic to set (IO/PROFILE/TIME/XML). pub topic: SessionParamStatsTopic, @@ -11573,6 +11780,7 @@ impl fmt::Display for SetSessionParamStatistics { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Topics available for session statistics configuration. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum SessionParamStatsTopic { /// Input/output statistics. IO, @@ -11599,6 +11807,7 @@ impl fmt::Display for SessionParamStatsTopic { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Value for a session boolean-like parameter (ON/OFF). +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum SessionParamValue { /// Session parameter enabled. On, @@ -11624,6 +11833,7 @@ impl fmt::Display for SessionParamValue { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum StorageSerializationPolicy { /// Use compatible serialization mode. Compatible, @@ -11649,6 +11859,7 @@ impl Display for StorageSerializationPolicy { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CatalogSyncNamespaceMode { /// Nest namespaces when syncing catalog. Nest, @@ -11669,6 +11880,7 @@ impl Display for CatalogSyncNamespaceMode { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CopyIntoSnowflakeKind { /// Loads data from files to a table /// See: @@ -11682,6 +11894,7 @@ pub enum CopyIntoSnowflakeKind { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// `PRINT` statement for producing debug/output messages. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct PrintStatement { /// The expression producing the message to print. pub message: Box, @@ -11699,6 +11912,7 @@ impl fmt::Display for PrintStatement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum WaitForType { /// `WAITFOR DELAY 'time_to_pass'` Delay, @@ -11721,6 +11935,7 @@ impl fmt::Display for WaitForType { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct WaitForStatement { /// `DELAY` or `TIME`. pub wait_type: WaitForType, @@ -11741,6 +11956,7 @@ impl fmt::Display for WaitForStatement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ReturnStatement { /// Optional return value expression. pub value: Option, @@ -11759,6 +11975,7 @@ impl fmt::Display for ReturnStatement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum ReturnStatementValue { /// Return an expression from a function or trigger. Expr(Expr), @@ -11768,6 +11985,7 @@ pub enum ReturnStatementValue { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct OpenStatement { /// Cursor name pub cursor_name: Ident, @@ -11785,6 +12003,7 @@ impl fmt::Display for OpenStatement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum NullInclusion { /// Include NULL values in the UNPIVOT output. IncludeNulls, @@ -11811,6 +12030,7 @@ impl fmt::Display for NullInclusion { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct MemberOf { /// The value to check for membership. pub value: Box, @@ -11828,6 +12048,7 @@ impl fmt::Display for MemberOf { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Represents an `EXPORT DATA` statement. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ExportData { /// Options for the export operation. pub options: Vec, @@ -11867,6 +12088,7 @@ impl fmt::Display for ExportData { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateUser { /// Replace existing user if present. pub or_replace: bool, @@ -11916,6 +12138,7 @@ impl fmt::Display for CreateUser { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateWarehouse { /// `OR REPLACE` flag. pub or_replace: bool, @@ -11959,6 +12182,7 @@ impl fmt::Display for CreateWarehouse { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterUser { /// Whether to only alter the user if it exists. pub if_exists: bool, @@ -12007,6 +12231,7 @@ pub struct AlterUser { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterUserAddRoleDelegation { /// Role name to delegate. pub role: Ident, @@ -12020,6 +12245,7 @@ pub struct AlterUserAddRoleDelegation { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterUserRemoveRoleDelegation { /// Optional role name to remove delegation for. pub role: Option, @@ -12033,6 +12259,7 @@ pub struct AlterUserRemoveRoleDelegation { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterUserAddMfaMethodOtp { /// Optional OTP count parameter. pub count: Option, @@ -12044,6 +12271,7 @@ pub struct AlterUserAddMfaMethodOtp { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterUserModifyMfaMethod { /// The MFA method being modified. pub method: MfaMethodKind, @@ -12055,6 +12283,7 @@ pub struct AlterUserModifyMfaMethod { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum MfaMethodKind { /// PassKey (hardware or platform passkey) MFA method. PassKey, @@ -12080,6 +12309,7 @@ impl fmt::Display for MfaMethodKind { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterUserSetPolicy { /// The kind of user policy being set (authentication/password/session). pub policy_kind: UserPolicyKind, @@ -12091,6 +12321,7 @@ pub struct AlterUserSetPolicy { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum UserPolicyKind { /// Authentication policy. Authentication, @@ -12203,6 +12434,7 @@ impl fmt::Display for AlterUser { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct AlterUserPassword { /// Whether the password is encrypted. pub encrypted: bool, @@ -12231,6 +12463,7 @@ impl Display for AlterUserPassword { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CreateTableLikeKind { /// '''sql /// CREATE TABLE new (LIKE old ...) @@ -12249,6 +12482,7 @@ pub enum CreateTableLikeKind { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Controls whether defaults are included when creating a table FROM/LILE another. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum CreateTableLikeDefaults { /// Include default values from the source table. Including, @@ -12269,6 +12503,7 @@ impl fmt::Display for CreateTableLikeDefaults { #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] /// Represents the `LIKE` clause of a `CREATE TABLE` statement. +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct CreateTableLike { /// The source table name to copy the schema from. pub name: ObjectName, @@ -12292,6 +12527,7 @@ impl fmt::Display for CreateTableLike { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum RefreshModeKind { /// Automatic refresh mode (`AUTO`). Auto, @@ -12317,6 +12553,7 @@ impl fmt::Display for RefreshModeKind { #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum InitializeKind { /// Initialize on creation (`ON CREATE`). OnCreate, @@ -12342,6 +12579,7 @@ impl fmt::Display for InitializeKind { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct VacuumStatement { /// Whether `FULL` was specified. pub full: bool, @@ -12389,6 +12627,7 @@ impl fmt::Display for VacuumStatement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum Reset { /// Resets all session parameters to their default values. ALL, @@ -12407,6 +12646,7 @@ pub enum Reset { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ResetStatement { /// The reset action to perform (either `ALL` or a specific configuration parameter). pub reset: Reset, @@ -12417,6 +12657,7 @@ pub struct ResetStatement { /// [PostgreSQL](https://www.postgresql.org/docs/current/sql-refreshmaterializedview.html) #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] pub struct RefreshMaterializedView { /// Whether `CONCURRENTLY` was specified. @@ -12451,6 +12692,7 @@ impl fmt::Display for RefreshMaterializedView { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct OptimizerHint { /// An optional prefix between the comment marker and `+`. /// @@ -12472,6 +12714,7 @@ pub struct OptimizerHint { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum OptimizerHintStyle { /// A hint corresponding to a single line comment, /// e.g. `--+ LEADING(v.e v.d t)` diff --git a/src/ast/operator.rs b/src/ast/operator.rs index f2c8454f34..c62500218c 100644 --- a/src/ast/operator.rs +++ b/src/ast/operator.rs @@ -32,6 +32,7 @@ use super::display_separated; #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum UnaryOperator { /// `@-@` Length or circumference (PostgreSQL/Redshift geometric operator) /// see @@ -96,6 +97,7 @@ impl fmt::Display for UnaryOperator { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum BinaryOperator { /// Plus, e.g. `a + b` Plus, diff --git a/src/ast/query.rs b/src/ast/query.rs index e2364dbe9a..56005c8b1d 100644 --- a/src/ast/query.rs +++ b/src/ast/query.rs @@ -37,6 +37,7 @@ use crate::{ #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] #[cfg_attr(feature = "visitor", visit(with = "visit_query"))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct Query { /// WITH (common table expressions, or CTEs) pub with: Option, @@ -119,6 +120,7 @@ impl fmt::Display for Query { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub struct ProjectionSelect { /// The list of projected select items. pub projection: Vec, @@ -146,6 +148,7 @@ impl fmt::Display for ProjectionSelect { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] +#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))] pub enum SetExpr { /// Restricted SELECT .. FROM .. HAVING (no ORDER BY or set operations) Select(Box