// Base `_sql` dispatch (generated from the Python Generator's method names).
///|
/// The base Generator's `_sql` method for `kind`, if any (Python `_build_dispatch`
/// minus `TRANSFORMS`).
pub fn Generator::base_dispatch(
self : Generator,
kind : Kind,
e : Expr,
) -> String? raise SqlglotError {
let s = match kind {
Kind::Add => self.add_sql(e)
Kind::AddConstraint => self.addconstraint_sql(e)
Kind::AddPartition => self.addpartition_sql(e)
Kind::AIForecast => self.aiforecast_sql(e)
Kind::Alias => self.alias_sql(e)
Kind::Aliases => self.aliases_sql(e)
Kind::All => self.all_sql(e)
Kind::Alter => self.alter_sql(e)
Kind::AlterColumn => self.altercolumn_sql(e)
Kind::AlterDistStyle => self.alterdiststyle_sql(e)
Kind::AlterIndex => self.alterindex_sql(e)
Kind::AlterModifySqlSecurity => self.altermodifysqlsecurity_sql(e)
Kind::AlterRename => self.alterrename_sql_v(e)
Kind::AlterSession => self.altersession_sql(e)
Kind::AlterSet => self.alterset_sql(e)
Kind::AlterSortKey => self.altersortkey_sql(e)
Kind::Analyze => self.analyze_sql(e)
Kind::AnalyzeDelete => self.analyzedelete_sql(e)
Kind::AnalyzeHistogram => self.analyzehistogram_sql(e)
Kind::AnalyzeListChainedRows => self.analyzelistchainedrows_sql(e)
Kind::AnalyzeSample => self.analyzesample_sql(e)
Kind::AnalyzeStatistics => self.analyzestatistics_sql(e)
Kind::AnalyzeValidate => self.analyzevalidate_sql(e)
Kind::And => self.and_sql(e)
Kind::Anonymous => self.anonymous_sql(e)
Kind::AnonymousAggFunc => self.anonymousaggfunc_sql(e)
Kind::Any => self.any_sql(e)
Kind::AnyValue => self.anyvalue_sql(e)
Kind::Apply => self.apply_sql(e)
Kind::ArrayAgg => self.arrayagg_sql(e)
Kind::ArrayAny => self.arrayany_sql(e)
Kind::ArrayInsert => self.arrayinsert_sql_v(e)
Kind::ArraySize => self.arraysize_sql(e)
Kind::AtIndex => self.atindex_sql(e)
Kind::Attach => self.attach_sql(e)
Kind::AttachOption => self.attachoption_sql(e)
Kind::AtTimeZone => self.attimezone_sql(e)
Kind::AutoIncrementColumnConstraint =>
self.autoincrementcolumnconstraint_sql(e)
Kind::Between => self.between_sql(e)
Kind::BitString => self.bitstring_sql(e)
Kind::BitwiseAnd => self.bitwiseand_sql(e)
Kind::BitwiseLeftShift => self.bitwiseleftshift_sql(e)
Kind::BitwiseNot => self.bitwisenot_sql(e)
Kind::BitwiseOr => self.bitwiseor_sql(e)
Kind::BitwiseRightShift => self.bitwiserightshift_sql(e)
Kind::BitwiseXor => self.bitwisexor_sql(e)
Kind::Block => self.block_sql(e)
Kind::BlockCompressionProperty => self.blockcompressionproperty_sql(e)
Kind::Booland => self.booland_sql(e)
Kind::Boolean => self.boolean_sql(e)
Kind::Boolor => self.boolor_sql(e)
Kind::Bracket => self.bracket_sql(e)
Kind::BuildProperty => self.buildproperty_sql(e)
Kind::ByteString => self.bytestring_sql(e)
Kind::Cache => self.cache_sql(e)
Kind::Case => self.case_sql(e)
Kind::CaseStatement => self.casestatement_sql(e)
Kind::Cast => self.cast_sql_v(e)
Kind::Changes => self.changes_sql(e)
Kind::CharacterSet => self.characterset_sql(e)
Kind::Check => self.check_sql(e)
Kind::CheckColumnConstraint => self.checkcolumnconstraint_sql(e)
Kind::ChecksumProperty => self.checksumproperty_sql(e)
Kind::Chr => self.chr_sql_v(e)
Kind::Clone => self.clone_sql(e)
Kind::Cluster => self.cluster_sql(e)
Kind::ClusteredByProperty => self.clusteredbyproperty_sql(e)
Kind::ClusterProperty => self.clusterproperty_sql(e)
Kind::Collate => self.collate_sql(e)
Kind::Column => self.column_sql(e)
Kind::ColumnConstraint => self.columnconstraint_sql(e)
Kind::ColumnDef => self.columndef_sql_v(e)
Kind::ColumnPosition => self.columnposition_sql(e)
Kind::ColumnPrefix => self.columnprefix_sql(e)
Kind::Columns => self.columns_sql(e)
Kind::CombinedAggFunc => self.combinedaggfunc_sql(e)
Kind::CombinedParameterizedAgg => self.combinedparameterizedagg_sql(e)
Kind::Command => self.command_sql(e)
Kind::Comment => self.comment_sql(e)
Kind::Commit => self.commit_sql(e)
Kind::Comprehension => self.comprehension_sql(e)
Kind::CompressColumnConstraint => self.compresscolumnconstraint_sql(e)
Kind::ComputedColumnConstraint => self.computedcolumnconstraint_sql(e)
Kind::Concat => self.concat_sql(e)
Kind::ConcatWs => self.concatws_sql(e)
Kind::ConditionalInsert => self.conditionalinsert_sql(e)
Kind::Connect => self.connect_sql(e)
Kind::Connector => self.connector_sql(e, "")
Kind::Constraint => self.constraint_sql(e)
Kind::Convert => self.convert_sql(e)
Kind::ConvertTimezone => self.converttimezone_sql(e)
Kind::Copy => self.copy_sql(e)
Kind::CopyParameter => self.copyparameter_sql(e)
Kind::Create => self.create_sql(e)
Kind::Credentials => self.credentials_sql(e)
Kind::CTE => self.cte_sql(e)
Kind::Cube => self.cube_sql(e)
Kind::CurrentDate => self.currentdate_sql(e)
Kind::DataBlocksizeProperty => self.datablocksizeproperty_sql(e)
Kind::DataDeletionProperty => self.datadeletionproperty_sql(e)
Kind::DataType => self.datatype_sql(e)
Kind::DataTypeParam => self.datatypeparam_sql(e)
Kind::DateAdd => self.dateadd_sql(e)
Kind::DateFromUnixDate => self.datefromunixdate_sql(e)
Kind::Declare => self.declare_sql(e)
Kind::DeclareItem => self.declareitem_sql(e)
Kind::DecodeCase => self.decodecase_sql(e)
Kind::Delete => self.delete_sql(e)
Kind::Describe => self.describe_sql(e)
Kind::Detach => self.detach_sql(e)
Kind::DictProperty => self.dictproperty_sql(e)
Kind::DictRange => self.dictrange_sql(e)
Kind::DictSubProperty => self.dictsubproperty_sql(e)
Kind::Directory => self.directory_sql(e)
Kind::DirectoryStage => self.directorystage_sql(e)
Kind::Distance => self.distance_sql(e)
Kind::DistanceNd => self.distancend_sql(e)
Kind::Distinct => self.distinct_sql(e)
Kind::Distribute => self.distribute_sql(e)
Kind::DistributedByProperty => self.distributedbyproperty_sql(e)
Kind::Div => self.div_sql(e)
Kind::Dot => self.dot_sql(e)
Kind::DPipe => self.dpipe_sql(e)
Kind::Drop => self.drop_sql(e)
Kind::DropPartition => self.droppartition_sql(e)
Kind::DropPrimaryKey => self.dropprimarykey_sql(e)
Kind::DuplicateKeyProperty => self.duplicatekeyproperty_sql(e)
Kind::DynamicIdentifier => self.dynamicidentifier_sql(e)
Kind::EncodeProperty => self.encodeproperty_sql(e)
Kind::EQ => self.eq_sql(e)
Kind::Escape => self.escape_sql(e)
Kind::Execute => self.execute_sql(e)
Kind::ExecuteSql => self.executesql_sql(e)
Kind::Exists => self.exists_sql(e)
Kind::ExplodingGenerateSeries => self.explodinggenerateseries_sql(e)
Kind::Export => self.export_sql(e)
Kind::Extract => self.extract_sql(e)
Kind::FallbackProperty => self.fallbackproperty_sql(e)
Kind::FeaturesAtTime => self.featuresattime_sql(e)
Kind::Fetch => self.fetch_sql(e)
Kind::Filter => self.filter_sql(e)
Kind::ForClause => self.forclause_sql(e)
Kind::ForeignKey => self.foreignkey_sql(e)
Kind::ForIn => self.forin_sql(e)
Kind::FormatJson => self.formatjson_sql(e)
Kind::FormatPhrase => self.formatphrase_sql(e)
Kind::FreespaceProperty => self.freespaceproperty_sql(e)
Kind::From => self.from_sql(e)
Kind::FromISO8601Date => self.fromiso8601date_sql(e)
Kind::FromISO8601Timestamp => self.fromiso8601timestamp_sql(e)
Kind::FromISO8601TimestampNanos => self.fromiso8601timestampnanos_sql(e)
Kind::FromTimeZone => self.fromtimezone_sql(e)
Kind::FunctionSpecification => self.functionspecification_sql(e)
Kind::GapFill => self.gapfill_sql(e)
Kind::GenerateBool => self.generatebool_sql(e)
Kind::GeneratedAsIdentityColumnConstraint =>
self.generatedasidentitycolumnconstraint_sql(e)
Kind::GeneratedAsRowColumnConstraint =>
self.generatedasrowcolumnconstraint_sql(e)
Kind::GenerateDouble => self.generatedouble_sql(e)
Kind::GenerateEmbedding => self.generateembedding_sql(e)
Kind::GenerateInt => self.generateint_sql(e)
Kind::GenerateTable => self.generatetable_sql(e)
Kind::GenerateText => self.generatetext_sql(e)
Kind::GetExtract => self.getextract_sql(e)
Kind::Glob => self.glob_sql(e)
Kind::Grant => self.grant_sql(e)
Kind::GrantPrincipal => self.grantprincipal_sql(e)
Kind::GrantPrivilege => self.grantprivilege_sql(e)
Kind::Group => self.group_sql(e)
Kind::GroupingSets => self.groupingsets_sql(e)
Kind::GT => self.gt_sql(e)
Kind::GTE => self.gte_sql(e)
Kind::Having => self.having_sql(e)
Kind::HavingMax => self.havingmax_sql(e)
Kind::Heredoc => self.heredoc_sql(e)
Kind::Hex => self.hex_sql(e)
Kind::HexString => self.hexstring_sql_v(e)
Kind::Hint => self.hint_sql(e)
Kind::HistoricalData => self.historicaldata_sql(e)
Kind::Identifier => self.identifier_sql(e)
Kind::If => self.if_sql(e)
Kind::IfBlock => self.ifblock_sql(e)
Kind::IgnoreNulls => self.ignorenulls_sql(e)
Kind::ILike => self.ilike_sql(e)
Kind::In => self.in_sql(e)
Kind::IncludeProperty => self.includeproperty_sql(e)
Kind::Index => self.index_sql(e)
Kind::IndexColumnConstraint => self.indexcolumnconstraint_sql(e)
Kind::IndexConstraintOption => self.indexconstraintoption_sql(e)
Kind::IndexParameters => self.indexparameters_sql(e)
Kind::IndexTableHint => self.indextablehint_sql(e)
Kind::Initcap => self.initcap_sql(e)
Kind::InOutColumnConstraint => self.inoutcolumnconstraint_sql(e)
Kind::InputOutputFormat => self.inputoutputformat_sql(e)
Kind::Insert => self.insert_sql(e)
Kind::Install => self.install_sql(e)
Kind::IntDiv => self.intdiv_sql(e)
Kind::Interval => self.interval_sql(e)
Kind::Into => self.into_sql(e)
Kind::Introducer => self.introducer_sql(e)
Kind::Is => self.is_sql(e)
Kind::IsolatedLoadingProperty => self.isolatedloadingproperty_sql(e)
Kind::Iterate => self.iterate_sql(e)
Kind::Join => self.join_sql(e)
Kind::JoinHint => self.joinhint_sql(e)
Kind::JournalProperty => self.journalproperty_sql(e)
Kind::JSON => self.json_sql(e)
Kind::JSONArray => self.jsonarray_sql(e)
Kind::JSONArrayAgg => self.jsonarrayagg_sql(e)
Kind::JSONCast => self.jsoncast_sql(e)
Kind::JSONColumnDef => self.jsoncolumndef_sql(e)
Kind::JSONExists => self.jsonexists_sql(e)
Kind::JSONExtractQuote => self.jsonextractquote_sql(e)
Kind::JSONKeyValue => self.jsonkeyvalue_sql(e)
Kind::JSONPath => self.jsonpath_sql(e)
Kind::JSONSchema => self.jsonschema_sql(e)
Kind::JSONTable => self.jsontable_sql(e)
Kind::JSONValue => self.jsonvalue_sql(e)
Kind::Kill => self.kill_sql(e)
Kind::Kwarg => self.kwarg_sql(e)
Kind::Lambda => self.lambda_sql_v(e)
Kind::LastDay => self.lastday_sql(e)
Kind::Lateral => self.lateral_sql(e)
Kind::Leave => self.leave_sql(e)
Kind::Like => self.like_sql(e)
Kind::LikeProperty => self.likeproperty_sql(e)
Kind::Limit => self.limit_sql(e)
Kind::LimitOptions => self.limitoptions_sql(e)
Kind::Literal => self.literal_sql(e)
Kind::LoadData => self.loaddata_sql(e)
Kind::Localtime => self.localtime_sql(e)
Kind::Localtimestamp => self.localtimestamp_sql(e)
Kind::Lock => self.lock_sql(e)
Kind::LockingProperty => self.lockingproperty_sql(e)
Kind::Log => self.log_sql(e)
Kind::LoopBlock => self.loopblock_sql(e)
Kind::LowerHex => self.lowerhex_sql(e)
Kind::LT => self.lt_sql(e)
Kind::LTE => self.lte_sql(e)
Kind::MacroOverload => self.macrooverload_sql(e)
Kind::MacroOverloads => self.macrooverloads_sql(e)
Kind::MaskingPolicyColumnConstraint =>
self.maskingpolicycolumnconstraint_sql(e)
Kind::Match => self.match_sql(e)
Kind::MatchAgainst => self.matchagainst_sql(e)
Kind::MatchRecognize => self.matchrecognize_sql(e)
Kind::MatchRecognizeMeasure => self.matchrecognizemeasure_sql(e)
Kind::Median => self.median_sql(e)
Kind::Merge => self.merge_sql(e)
Kind::MergeBlockRatioProperty => self.mergeblockratioproperty_sql(e)
Kind::MergeTreeTTL => self.mergetreettl_sql(e)
Kind::MergeTreeTTLAction => self.mergetreettlaction_sql(e)
Kind::MLForecast => self.mlforecast_sql(e)
Kind::MLTranslate => self.mltranslate_sql(e)
Kind::Mod => self.mod_sql(e)
Kind::ModelAttribute => self.modelattribute_sql(e)
Kind::ModifyColumn => self.modifycolumn_sql(e)
Kind::ModuleProperty => self.moduleproperty_sql(e)
Kind::Mul => self.mul_sql(e)
Kind::MultitableInserts => self.multitableinserts_sql(e)
Kind::National => self.national_sql(e)
Kind::Neg => self.neg_sql(e)
Kind::NEQ => self.neq_sql(e)
Kind::NextValueFor => self.nextvaluefor_sql(e)
Kind::Not => self.not_sql(e)
Kind::NotNullColumnConstraint => self.notnullcolumnconstraint_sql(e)
Kind::NthValue => self.nthvalue_sql(e)
Kind::Null => self.null_sql(e)
Kind::NullSafeEQ => self.nullsafeeq_sql(e)
Kind::NullSafeNEQ => self.nullsafeneq_sql(e)
Kind::Nvl2 => self.nvl2_sql(e)
Kind::ObjectIdentifier => self.objectidentifier_sql(e)
Kind::Offset => self.offset_sql(e)
Kind::OnCluster => self.oncluster_sql(e)
Kind::OnCondition => self.oncondition_sql(e)
Kind::OnConflict => self.onconflict_sql(e)
Kind::Opclass => self.opclass_sql(e)
Kind::OpenJSON => self.openjson_sql(e)
Kind::OpenJSONColumnDef => self.openjsoncolumndef_sql(e)
Kind::Or => self.or_sql(e)
Kind::Order => self.order_sql(e)
Kind::Ordered => self.ordered_sql(e)
Kind::OverflowTruncateBehavior => self.overflowtruncatebehavior_sql(e)
Kind::Overlaps => self.overlaps_sql(e)
Kind::Overlay => self.overlay_sql(e)
Kind::Pad => self.pad_sql(e)
Kind::Parameter => self.parameter_sql(e)
Kind::ParameterizedAgg => self.parameterizedagg_sql(e)
Kind::Paren => self.paren_sql(e)
Kind::ParseDatetime => self.parsedatetime_sql(e)
Kind::ParseJSON => self.parsejson_sql(e)
Kind::Partition => self.partition_sql(e)
Kind::PartitionBoundSpec => self.partitionboundspec_sql(e)
Kind::PartitionByRangeProperty => self.partitionbyrangeproperty_sql(e)
Kind::PartitionByRangePropertyDynamic =>
self.partitionbyrangepropertydynamic_sql(e)
Kind::PartitionedOfProperty => self.partitionedofproperty_sql(e)
Kind::PartitionRange => self.partitionrange_sql(e)
Kind::PeriodForSystemTimeConstraint =>
self.periodforsystemtimeconstraint_sql(e)
Kind::Pivot => self.pivot_sql(e)
Kind::PivotAlias => self.pivotalias_sql(e)
Kind::Placeholder => self.placeholder_sql(e)
Kind::Pragma => self.pragma_sql(e)
Kind::Predict => self.predict_sql(e)
Kind::PreWhere => self.prewhere_sql(e)
Kind::PrimaryKey => self.primarykey_sql(e)
Kind::PrimaryKeyColumnConstraint => self.primarykeycolumnconstraint_sql(e)
Kind::Prior => self.prior_sql(e)
Kind::Properties => self.properties_sql(e)
Kind::Property => self.property_sql(e)
Kind::PropertyEQ => self.propertyeq_sql(e)
Kind::Pseudocolumn => self.pseudocolumn_sql(e)
Kind::PseudoType => self.pseudotype_sql(e)
Kind::Qualify => self.qualify_sql(e)
Kind::QueryBand => self.queryband_sql(e)
Kind::QueryOption => self.queryoption_sql(e)
Kind::QueryTransform => self.querytransform_sql(e)
Kind::Rand => self.rand_sql(e)
Kind::RawString => self.rawstring_sql(e)
Kind::RecursiveWithSearch => self.recursivewithsearch_sql(e)
Kind::Reference => self.reference_sql(e)
Kind::Refresh => self.refresh_sql(e)
Kind::RefreshTriggerProperty => self.refreshtriggerproperty_sql(e)
Kind::RenameColumn => self.renamecolumn_sql(e)
Kind::RenameIndex => self.renameindex_sql(e)
Kind::RepeatBlock => self.repeatblock_sql(e)
Kind::RespectNulls => self.respectnulls_sql(e)
Kind::Return => self.return_sql(e)
Kind::Returning => self.returning_sql(e)
Kind::Revoke => self.revoke_sql(e)
Kind::Rollback => self.rollback_sql(e)
Kind::Rollup => self.rollup_sql(e)
Kind::RollupIndex => self.rollupindex_sql(e)
Kind::RollupProperty => self.rollupproperty_sql(e)
Kind::RowFormatDelimitedProperty => self.rowformatdelimitedproperty_sql(e)
Kind::SafeDivide => self.safedivide_sql(e)
Kind::Schema => self.schema_sql(e)
Kind::ScopeResolution => self.scoperesolution_sql(e)
Kind::Select => self.select_sql(e)
Kind::SemanticView => self.semanticview_sql(e)
Kind::Semicolon => self.semicolon_sql(e)
Kind::SequenceProperties => self.sequenceproperties_sql(e)
Kind::SessionParameter => self.sessionparameter_sql(e)
Kind::Set => self.set_sql(e)
Kind::SetItem => self.setitem_sql(e)
Kind::Show => self.show_sql(e)
Kind::SimilarTo => self.similarto_sql(e)
Kind::SkipJSONColumn => self.skipjsoncolumn_sql(e)
Kind::Slice => self.slice_sql(e)
Kind::Sort => self.sort_sql(e)
Kind::Space => self.space_sql(e)
Kind::Star => self.star_sql(e)
Kind::StoredProcedure => self.storedprocedure_sql(e)
Kind::String => self.string_sql(e)
Kind::StrToDate => self.strtodate_sql(e)
Kind::StrToTime => self.strtotime_sql(e)
Kind::Struct => self.struct_sql(e)
Kind::Sub => self.sub_sql(e)
Kind::Subquery => self.subquery_sql(e)
Kind::Summarize => self.summarize_sql(e)
Kind::Table => self.table_sql_v(e)
Kind::TableAlias => self.tablealias_sql(e)
Kind::TableFromRows => self.tablefromrows_sql(e)
Kind::TableSample => self.tablesample_sql_v(e)
Kind::Tag => self.tag_sql(e)
Kind::TimeseriesKey => self.timeserieskey_sql(e)
Kind::ToArray => self.toarray_sql(e)
Kind::ToChar => self.tochar_sql(e)
Kind::ToDouble => self.todouble_sql(e)
Kind::ToNumber => self.tonumber_sql(e)
Kind::Transaction => self.transaction_sql(e)
Kind::TranslateCharacters => self.translatecharacters_sql(e)
Kind::TriggerEvent => self.triggerevent_sql(e)
Kind::TriggerProperties => self.triggerproperties_sql(e)
Kind::TriggerReferencing => self.triggerreferencing_sql(e)
Kind::Trim => self.trim_sql(e)
Kind::TruncateTable => self.truncatetable_sql(e)
Kind::Try => self.try_sql(e)
Kind::TryCast => self.trycast_sql(e)
Kind::TsOrDsToDate => self.tsordstodate_sql(e)
Kind::TsOrDsToDatetime => self.tsordstodatetime_sql(e)
Kind::TsOrDsToTime => self.tsordstotime_sql(e)
Kind::TsOrDsToTimestamp => self.tsordstotimestamp_sql(e)
Kind::Tuple => self.tuple_sql(e)
Kind::Uncache => self.uncache_sql(e)
Kind::UnicodeString => self.unicodestring_sql(e)
Kind::UniqueColumnConstraint => self.uniquecolumnconstraint_sql(e)
Kind::UniqueKeyProperty => self.uniquekeyproperty_sql_v(e)
Kind::UnixDate => self.unixdate_sql(e)
Kind::UnixSeconds => self.unixseconds_sql(e)
Kind::Unnest => self.unnest_sql(e)
Kind::UnpivotColumns => self.unpivotcolumns_sql(e)
Kind::Update => self.update_sql(e)
Kind::Use => self.use_sql(e)
Kind::UserDefinedFunction => self.userdefinedfunction_sql(e)
Kind::UsingProperty => self.usingproperty_sql(e)
Kind::Uuid => self.uuid_sql(e)
Kind::UuidProperty => self.uuidproperty_sql(e)
Kind::Values => self.values_sql_v(e)
Kind::Var => self.var_sql(e)
Kind::VectorSearch => self.vectorsearch_sql(e)
Kind::Version => self.version_sql(e)
Kind::WatermarkColumnConstraint => self.watermarkcolumnconstraint_sql(e)
Kind::WeekStart => self.weekstart_sql(e)
Kind::When => self.when_sql(e)
Kind::Whens => self.whens_sql(e)
Kind::Where => self.where_sql(e)
Kind::WhileBlock => self.whileblock_sql(e)
Kind::Window => self.window_sql(e)
Kind::WindowSpec => self.windowspec_sql(e)
Kind::With => self.with_sql(e)
Kind::WithDataProperty => self.withdataproperty_sql(e)
Kind::WithFill => self.withfill_sql(e)
Kind::WithinGroup => self.withingroup_sql(e)
Kind::WithSystemVersioningProperty =>
self.withsystemversioningproperty_sql(e)
Kind::WithTableHint => self.withtablehint_sql(e)
Kind::XMLElement => self.xmlelement_sql(e)
Kind::XMLKeyValueOption => self.xmlkeyvalueoption_sql(e)
Kind::XMLNamespace => self.xmlnamespace_sql(e)
Kind::XMLTable => self.xmltable_sql(e)
Kind::Xor => self.xor_sql(e)
_ => return None
}
Some(s)
}