diff --git a/Cargo.lock b/Cargo.lock index 7549b272c6..fa794682b8 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 a46bcbd32d..10940d9679 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -50,6 +50,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 } @@ -62,6 +63,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 a0c25ad162..62ad220ffd 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 { @@ -152,6 +153,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, @@ -169,6 +171,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 7b38f8c4db..8f65ef6cbb 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 DataType { /// Table type in [PostgreSQL], e.g. CREATE FUNCTION RETURNS TABLE(...). /// @@ -923,6 +925,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, @@ -934,6 +937,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, @@ -950,6 +954,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, @@ -997,6 +1002,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, @@ -1053,6 +1059,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, @@ -1084,6 +1091,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 { @@ -1119,6 +1127,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, @@ -1145,6 +1154,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 { @@ -1176,6 +1186,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, @@ -1198,6 +1209,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 96b340714c..56ad6e0fce 100644 --- a/src/ast/dcl.rs +++ b/src/ast/dcl.rs @@ -41,6 +41,7 @@ use crate::tokenizer::Span; #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, 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), @@ -116,6 +117,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, @@ -131,6 +133,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, @@ -142,6 +145,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 { @@ -242,6 +246,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), @@ -284,6 +289,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, @@ -308,6 +314,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 { /// Role names to create. pub names: Vec, @@ -435,6 +442,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, @@ -491,6 +499,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. diff --git a/src/ast/ddl.rs b/src/ast/ddl.rs index 111439cf93..6a7e4d1224 100644 --- a/src/ast/ddl.rs +++ b/src/ast/ddl.rs @@ -60,6 +60,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, @@ -98,6 +99,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, @@ -124,6 +126,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 { @@ -558,6 +561,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 { @@ -608,6 +612,7 @@ impl fmt::Display for AlterPolicyOperation { #[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, @@ -637,6 +642,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, @@ -663,6 +669,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), @@ -689,6 +696,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), @@ -709,6 +717,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 { @@ -1087,6 +1096,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, @@ -1098,6 +1108,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), @@ -1111,6 +1122,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, @@ -1120,6 +1132,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, @@ -1133,6 +1146,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), @@ -1144,6 +1158,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, @@ -1190,6 +1205,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, @@ -1205,6 +1221,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), @@ -1225,6 +1242,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), @@ -1290,6 +1308,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, @@ -1385,6 +1404,7 @@ impl fmt::Display for AlterColumnOperation { #[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, @@ -1434,6 +1454,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, @@ -1477,6 +1498,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. /// @@ -1501,6 +1523,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, @@ -1524,6 +1547,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, @@ -1555,6 +1579,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, @@ -1597,6 +1622,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, @@ -1610,6 +1636,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), @@ -1666,6 +1693,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, @@ -1689,6 +1717,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: @@ -1734,6 +1763,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, @@ -1758,6 +1788,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: @@ -1796,6 +1827,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, @@ -1812,6 +1844,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, @@ -1838,6 +1871,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), @@ -1866,6 +1900,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 @@ -1889,6 +1924,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: @@ -1916,6 +1952,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, @@ -2183,6 +2220,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, @@ -2197,6 +2235,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, @@ -2254,6 +2293,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, @@ -2267,6 +2307,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, @@ -2334,6 +2375,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, @@ -2365,6 +2407,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, @@ -2385,6 +2428,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 { @@ -2440,6 +2484,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, @@ -2484,6 +2529,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), @@ -2521,6 +2567,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, @@ -2565,6 +2612,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, @@ -2607,6 +2655,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), @@ -2662,6 +2711,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), @@ -2747,6 +2797,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), @@ -2777,6 +2828,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, @@ -2800,6 +2852,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, @@ -2827,6 +2880,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, @@ -2923,6 +2977,7 @@ impl fmt::Display for CreateIndex { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, 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, @@ -3450,6 +3505,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, @@ -3484,6 +3540,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), @@ -3537,6 +3594,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), @@ -3562,6 +3620,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, @@ -3599,6 +3658,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, @@ -3637,6 +3697,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), @@ -3659,6 +3720,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 /// @@ -3829,6 +3891,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, @@ -3888,6 +3951,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 { @@ -3953,6 +4017,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), @@ -3973,6 +4038,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, @@ -4010,6 +4076,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), @@ -4042,6 +4109,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 /// @@ -4232,6 +4300,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, @@ -4274,6 +4343,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, @@ -4349,6 +4419,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"))] @@ -4384,6 +4455,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 /// @@ -4510,6 +4582,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, @@ -4569,6 +4642,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, @@ -4603,6 +4677,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, @@ -4616,6 +4691,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. /// @@ -4665,6 +4741,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, @@ -4676,6 +4753,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. /// @@ -4739,6 +4817,7 @@ impl Spanned for 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 AlterTableType { /// Iceberg table type /// @@ -4755,6 +4834,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"))] @@ -4808,6 +4888,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, @@ -4843,6 +4924,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, @@ -4863,6 +4945,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, @@ -4875,6 +4958,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, @@ -4945,6 +5029,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, @@ -4962,6 +5047,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 { @@ -4996,6 +5082,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, @@ -5063,6 +5150,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, @@ -5076,6 +5164,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, @@ -5122,6 +5211,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, @@ -5159,6 +5249,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, @@ -5195,6 +5286,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 { @@ -5224,6 +5316,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 { @@ -5312,6 +5405,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, @@ -5325,6 +5419,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 { @@ -5394,6 +5489,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, @@ -5407,6 +5503,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. @@ -5457,6 +5554,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, @@ -5478,6 +5576,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, @@ -5498,6 +5597,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 { @@ -5531,6 +5631,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), @@ -5667,6 +5768,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, @@ -5695,6 +5797,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, @@ -5728,6 +5831,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, @@ -5750,6 +5854,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 { @@ -5791,6 +5896,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, @@ -5822,6 +5928,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, @@ -5875,6 +5982,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, @@ -5899,6 +6007,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, @@ -5930,6 +6039,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, @@ -5979,6 +6089,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, @@ -6013,6 +6124,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 CreateForeignTable { /// The foreign table name. #[cfg_attr(feature = "visitor", visit(with = "visit_relation"))] diff --git a/src/ast/dml.rs b/src/ast/dml.rs index 291fc9fad9..fedb1d5e74 100644 --- a/src/ast/dml.rs +++ b/src/ast/dml.rs @@ -41,6 +41,7 @@ use super::{ #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, 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, @@ -298,6 +299,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, @@ -383,6 +385,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, @@ -473,6 +476,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, @@ -529,6 +533,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, @@ -568,6 +573,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, @@ -607,6 +613,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 /// @@ -662,6 +669,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 /// @@ -718,6 +726,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, @@ -754,6 +763,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. /// @@ -800,6 +810,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, @@ -832,6 +843,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 { @@ -889,6 +901,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, @@ -916,6 +929,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, @@ -942,6 +956,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, @@ -951,6 +966,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), @@ -973,6 +989,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 84a93dd20c..6ebc4fc3c9 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 de925be2b4..1eae0ae6f4 100644 --- a/src/ast/mod.rs +++ b/src/ast/mod.rs @@ -209,6 +209,7 @@ fn format_statement_list(f: &mut fmt::Formatter, statements: &[Statement]) -> fm #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, 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, @@ -247,6 +248,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, @@ -419,6 +421,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 { @@ -443,6 +446,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), @@ -476,6 +480,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, @@ -495,6 +500,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, @@ -525,6 +531,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, @@ -587,6 +594,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, @@ -618,6 +626,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, @@ -637,6 +646,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, @@ -654,6 +664,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, @@ -671,6 +682,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, @@ -689,6 +701,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), @@ -700,6 +713,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`. /// @@ -735,6 +749,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, @@ -773,6 +788,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, @@ -795,6 +811,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, @@ -823,6 +840,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, @@ -841,6 +859,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), @@ -853,6 +872,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, @@ -895,6 +915,7 @@ impl fmt::Display for CaseWhen { 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), @@ -1415,6 +1436,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 { @@ -1484,6 +1506,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), @@ -1509,6 +1532,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, @@ -1540,6 +1564,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, @@ -1561,6 +1586,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` /// @@ -1601,6 +1627,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), @@ -2306,6 +2333,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), @@ -2332,6 +2360,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. /// @@ -2403,6 +2432,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, @@ -2432,6 +2462,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, @@ -2458,6 +2489,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, @@ -2478,6 +2510,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, @@ -2503,6 +2536,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, @@ -2526,6 +2560,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, @@ -2558,6 +2593,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, @@ -2620,6 +2656,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), @@ -2646,6 +2683,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, @@ -2719,6 +2757,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, @@ -2771,6 +2810,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, @@ -2811,6 +2851,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, @@ -2861,6 +2902,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 { @@ -2906,6 +2948,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, @@ -2950,6 +2993,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, @@ -2972,6 +3016,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), @@ -2998,6 +3043,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>, @@ -3033,6 +3079,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), @@ -3091,6 +3138,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] /// @@ -3149,6 +3197,7 @@ impl fmt::Display for DeclareType { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, 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; @@ -3245,6 +3294,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] @@ -3288,6 +3338,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), @@ -3312,6 +3363,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; @@ -3509,6 +3561,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, @@ -3542,6 +3595,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`. @@ -3607,6 +3661,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 @@ -5094,6 +5149,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, @@ -5115,6 +5171,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, @@ -6569,6 +6626,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 { /// `INCREMENT [BY] ` option; second value indicates presence of `BY` keyword. IncrementBy(Expr, bool), @@ -6629,6 +6687,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, @@ -6656,6 +6715,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"))] @@ -6693,6 +6753,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, @@ -6721,6 +6782,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"))] @@ -6750,6 +6812,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, @@ -6790,6 +6853,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, @@ -6802,6 +6866,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, @@ -6822,6 +6887,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, @@ -6847,6 +6913,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, @@ -6861,6 +6928,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), @@ -6872,6 +6940,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, @@ -6883,6 +6952,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, @@ -6894,6 +6964,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, @@ -6904,6 +6975,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. Columns(Vec), @@ -6914,6 +6986,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, @@ -6925,6 +6998,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, @@ -6987,6 +7061,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 { @@ -7024,6 +7099,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 { @@ -7117,6 +7193,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, @@ -7139,6 +7216,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, @@ -7351,6 +7429,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, @@ -7417,6 +7496,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, @@ -7462,6 +7542,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, @@ -7492,6 +7573,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, @@ -7528,6 +7610,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, @@ -7555,6 +7638,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, @@ -7578,6 +7662,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, @@ -7613,6 +7698,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, @@ -7638,6 +7724,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), @@ -7665,6 +7752,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 { @@ -7932,6 +8020,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, @@ -7966,6 +8055,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, @@ -7985,6 +8075,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), @@ -8005,6 +8096,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), @@ -8043,6 +8135,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, @@ -8078,6 +8171,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 /// @@ -8154,6 +8248,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, @@ -8177,6 +8272,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, @@ -8192,6 +8288,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, @@ -8237,6 +8334,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, @@ -8326,6 +8424,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. @@ -8352,6 +8451,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, @@ -8381,6 +8481,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]. /// @@ -8459,6 +8560,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, @@ -8482,6 +8584,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, @@ -8502,6 +8605,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), @@ -8522,6 +8626,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, @@ -8539,6 +8644,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, @@ -8565,6 +8671,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, @@ -8597,6 +8704,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, @@ -8633,6 +8741,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, @@ -8671,6 +8780,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 { @@ -8683,6 +8793,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, @@ -8703,6 +8814,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, @@ -8759,6 +8871,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, @@ -8784,6 +8897,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 { @@ -8807,6 +8921,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 { @@ -8824,6 +8939,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, @@ -8835,6 +8951,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, @@ -8853,6 +8970,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, @@ -8886,6 +9004,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, @@ -8907,6 +9026,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, @@ -8932,6 +9052,7 @@ impl fmt::Display for DescribeAlias { #[cfg_attr(feature = "visitor", derive(Visit, VisitMut))] #[allow(clippy::large_enum_variant)] /// 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 { @@ -8960,6 +9081,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, @@ -8975,6 +9097,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, @@ -8997,6 +9120,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, @@ -9030,6 +9154,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, @@ -9041,6 +9166,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. /// @@ -9150,6 +9276,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, @@ -9162,6 +9289,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, @@ -9173,6 +9301,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, @@ -9192,6 +9321,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, @@ -9246,6 +9376,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, @@ -9263,6 +9394,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), @@ -9285,6 +9417,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), @@ -9306,6 +9439,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, @@ -9327,6 +9461,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, @@ -9360,6 +9495,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, @@ -9390,6 +9526,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), @@ -9417,6 +9554,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, @@ -9441,6 +9579,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, @@ -9475,6 +9614,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, @@ -9499,6 +9639,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 { @@ -9516,6 +9657,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, @@ -9553,6 +9695,7 @@ impl fmt::Display for CopyTarget { #[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, @@ -9568,6 +9711,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), @@ -9623,6 +9767,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, @@ -9829,6 +9974,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, @@ -9850,6 +9996,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, @@ -9874,6 +10021,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, @@ -9898,6 +10046,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, @@ -9920,6 +10069,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, @@ -9952,6 +10102,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, @@ -9978,6 +10129,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, @@ -10031,6 +10183,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, @@ -10051,6 +10204,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, @@ -10079,6 +10233,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, @@ -10099,6 +10254,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, @@ -10120,6 +10276,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, @@ -10173,6 +10330,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, @@ -10199,6 +10357,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, @@ -10224,6 +10383,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, @@ -10246,6 +10406,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, @@ -10261,6 +10422,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, @@ -10285,6 +10447,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, @@ -10308,6 +10471,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, @@ -10333,6 +10497,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, @@ -10362,6 +10527,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. @@ -10457,6 +10623,7 @@ pub enum CreateFunctionBody { #[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), @@ -10484,6 +10651,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, @@ -10515,6 +10683,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), @@ -10538,6 +10707,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), @@ -10569,6 +10739,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, @@ -10605,6 +10776,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, @@ -10635,6 +10807,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 { @@ -10673,6 +10846,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, @@ -10695,6 +10869,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, @@ -10716,6 +10891,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, @@ -10739,6 +10915,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, @@ -10761,6 +10938,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, @@ -10800,6 +10978,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, @@ -10816,6 +10995,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, @@ -10847,6 +11027,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, @@ -10871,6 +11052,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, @@ -10897,6 +11079,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, @@ -10914,6 +11097,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'` @@ -10947,6 +11131,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), @@ -10996,6 +11181,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, @@ -11019,6 +11205,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, @@ -11071,6 +11258,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 @@ -11082,6 +11270,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, @@ -11111,6 +11300,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, @@ -11138,6 +11328,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 @@ -11165,6 +11356,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, @@ -11184,6 +11376,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, @@ -11209,6 +11402,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, @@ -11224,6 +11418,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, @@ -11242,6 +11437,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: @@ -11283,6 +11479,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, @@ -11300,6 +11497,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, @@ -11321,6 +11519,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), @@ -11347,6 +11546,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, @@ -11364,6 +11564,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, @@ -11381,6 +11582,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, @@ -11403,6 +11605,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, @@ -11420,6 +11623,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, @@ -11446,6 +11650,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, @@ -11471,6 +11676,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, @@ -11496,6 +11702,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, @@ -11516,6 +11723,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: @@ -11529,6 +11737,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, @@ -11546,6 +11755,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, @@ -11568,6 +11778,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, @@ -11588,6 +11799,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, @@ -11606,6 +11818,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), @@ -11615,6 +11828,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, @@ -11632,6 +11846,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, @@ -11658,6 +11873,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, @@ -11675,6 +11891,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, @@ -11714,6 +11931,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, @@ -11763,6 +11981,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, @@ -11806,6 +12025,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, @@ -11854,6 +12074,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, @@ -11867,6 +12088,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, @@ -11880,6 +12102,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, @@ -11891,6 +12114,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, @@ -11902,6 +12126,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, @@ -11927,6 +12152,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, @@ -11938,6 +12164,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, @@ -12050,6 +12277,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, @@ -12078,6 +12306,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 ...) @@ -12096,6 +12325,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, @@ -12116,6 +12346,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, @@ -12139,6 +12370,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, @@ -12164,6 +12396,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, @@ -12189,6 +12422,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, @@ -12236,6 +12470,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, @@ -12254,6 +12489,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, @@ -12267,6 +12503,7 @@ pub struct ResetStatement { #[derive(Debug, Clone, PartialEq, PartialOrd, Eq, 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 `+`. /// @@ -12288,6 +12525,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 669470cdaa..c7a96a80a2 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 95f9801812..cc6b51874e 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, @@ -147,6 +149,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