mod change_tracking;
mod constraints;
mod database_principals;
mod dm_db;
mod dm_os;
mod fulltext_indexes;
mod hadr;
mod host_info;
mod indexes;
mod objects;
mod parameters;
mod partition;
mod policy_configuration;
mod routines;
mod sessions;
mod spt;
mod tables;
use super::VirtualTable;
pub(crate) fn lookup(schema: &str, name: &str) -> Option<Box<dyn VirtualTable>> {
if schema.eq_ignore_ascii_case("dbo") && name.eq_ignore_ascii_case("syspolicy_configuration") {
Some(Box::new(policy_configuration::SysPolicyConfiguration))
} else if schema.eq_ignore_ascii_case("dbo") && name.eq_ignore_ascii_case("syspolicy_system_health_state") {
Some(Box::new(policy_configuration::SysPolicySystemHealthState))
} else if schema.eq_ignore_ascii_case("dbo") && name.eq_ignore_ascii_case("spt_values") {
Some(Box::new(spt::SysSptValues))
} else if schema.eq_ignore_ascii_case("dbo") && name.eq_ignore_ascii_case("sysobjects") {
Some(Box::new(objects::SysCompatSysObjects))
} else if !schema.eq_ignore_ascii_case("sys") {
None
} else if name.eq_ignore_ascii_case("schemas") {
Some(Box::new(tables::SysSchemas))
} else if name.eq_ignore_ascii_case("databases") {
Some(Box::new(tables::SysDatabases))
} else if name.eq_ignore_ascii_case("sysdatabases") {
Some(Box::new(tables::SysSysDatabases))
} else if name.eq_ignore_ascii_case("configurations") {
Some(Box::new(tables::SysConfigurations))
} else if name.eq_ignore_ascii_case("tables") {
Some(Box::new(tables::SysTables))
} else if name.eq_ignore_ascii_case("filetables") {
Some(Box::new(tables::SysFileTables))
} else if name.eq_ignore_ascii_case("columns") {
Some(Box::new(tables::SysColumns))
} else if name.eq_ignore_ascii_case("all_columns") {
Some(Box::new(tables::SysAllColumns))
} else if name.eq_ignore_ascii_case("view_columns") {
Some(Box::new(tables::SysViewColumns))
} else if name.eq_ignore_ascii_case("computed_columns") {
Some(Box::new(tables::SysComputedColumns))
} else if name.eq_ignore_ascii_case("identity_columns") {
Some(Box::new(tables::SysIdentityColumns))
} else if name.eq_ignore_ascii_case("data_spaces") {
Some(Box::new(tables::SysDataSpaces))
} else if name.eq_ignore_ascii_case("extended_properties") {
Some(Box::new(tables::SysExtendedProperties))
} else if name.eq_ignore_ascii_case("index_columns") {
Some(Box::new(tables::SysIndexColumns))
} else if name.eq_ignore_ascii_case("foreign_key_columns") {
Some(Box::new(tables::SysForeignKeyColumns))
} else if name.eq_ignore_ascii_case("xml_schema_collections") {
Some(Box::new(tables::SysXmlSchemaCollections))
} else if name.eq_ignore_ascii_case("periods") {
Some(Box::new(tables::SysPeriods))
} else if name.eq_ignore_ascii_case("xml_indexes") {
Some(Box::new(tables::SysXmlIndexes))
} else if name.eq_ignore_ascii_case("column_encryption_keys") {
Some(Box::new(tables::SysColumnEncryptionKeys))
} else if name.eq_ignore_ascii_case("column_master_keys") {
Some(Box::new(tables::SysColumnMasterKeys))
} else if name.eq_ignore_ascii_case("column_encryption_key_values") {
Some(Box::new(tables::SysColumnEncryptionKeyValues))
} else if name.eq_ignore_ascii_case("internal_tables") {
Some(Box::new(tables::SysInternalTables))
} else if name.eq_ignore_ascii_case("synonyms") {
Some(Box::new(tables::SysSynonyms))
} else if name.eq_ignore_ascii_case("sequences") {
Some(Box::new(tables::SysSequences))
} else if name.eq_ignore_ascii_case("table_types") {
Some(Box::new(tables::SysTableTypes))
} else if name.eq_ignore_ascii_case("partition_functions") {
Some(Box::new(partition::SysPartitionFunctions))
} else if name.eq_ignore_ascii_case("partition_parameters") {
Some(Box::new(partition::SysPartitionParameters))
} else if name.eq_ignore_ascii_case("partition_schemes") {
Some(Box::new(partition::SysPartitionSchemes))
} else if name.eq_ignore_ascii_case("partitions") {
Some(Box::new(partition::SysPartitions))
} else if name.eq_ignore_ascii_case("allocation_units") {
Some(Box::new(partition::SysAllocationUnits))
} else if name.eq_ignore_ascii_case("destination_data_spaces") {
Some(Box::new(partition::SysDestinationDataSpaces))
} else if name.eq_ignore_ascii_case("filegroups") {
Some(Box::new(partition::SysFilegroups))
} else if name.eq_ignore_ascii_case("edge_constraints") {
Some(Box::new(tables::SysEdgeConstraints))
} else if name.eq_ignore_ascii_case("assembly_modules") {
Some(Box::new(tables::SysAssemblyModules))
} else if name.eq_ignore_ascii_case("assembly_types") {
Some(Box::new(tables::SysAssemblyTypes))
} else if name.eq_ignore_ascii_case("triggers") {
Some(Box::new(tables::SysTriggers))
} else if name.eq_ignore_ascii_case("trigger_events") {
Some(Box::new(tables::SysTriggerEvents))
} else if name.eq_ignore_ascii_case("sql_modules") {
Some(Box::new(tables::SysSqlModules))
} else if name.eq_ignore_ascii_case("all_sql_modules") {
Some(Box::new(tables::SysAllSqlModules))
} else if name.eq_ignore_ascii_case("system_sql_modules") {
Some(Box::new(tables::SysSystemSqlModules))
} else if name.eq_ignore_ascii_case("sql_expression_dependencies") {
Some(Box::new(tables::SysSqlExpressionDependencies))
} else if name.eq_ignore_ascii_case("stats") {
Some(Box::new(tables::SysStats))
} else if name.eq_ignore_ascii_case("stats_columns") {
Some(Box::new(tables::SysStatsColumns))
} else if name.eq_ignore_ascii_case("types") {
Some(Box::new(tables::SysTypes))
} else if name.eq_ignore_ascii_case("parameters") {
Some(Box::new(parameters::SysParameters))
} else if name.eq_ignore_ascii_case("all_parameters") {
Some(Box::new(parameters::SysAllParameters))
} else if name.eq_ignore_ascii_case("procedures") {
Some(Box::new(routines::SysProcedures))
} else if name.eq_ignore_ascii_case("functions") {
Some(Box::new(routines::SysFunctions))
} else if name.eq_ignore_ascii_case("indexes") {
Some(Box::new(indexes::SysIndexes))
} else if name.eq_ignore_ascii_case("objects") {
Some(Box::new(objects::SysObjects))
} else if name.eq_ignore_ascii_case("all_objects") {
Some(Box::new(objects::SysAllObjects))
} else if name.eq_ignore_ascii_case("sysobjects") {
Some(Box::new(objects::SysCompatSysObjects))
} else if name.eq_ignore_ascii_case("system_views") {
Some(Box::new(objects::SysSystemViews))
} else if name.eq_ignore_ascii_case("views") {
Some(Box::new(objects::SysViews))
} else if name.eq_ignore_ascii_case("all_views") {
Some(Box::new(objects::SysAllViews))
} else if name.eq_ignore_ascii_case("dm_os_host_info") {
Some(Box::new(host_info::SysHostInfo))
} else if name.eq_ignore_ascii_case("dm_os_sys_info") {
Some(Box::new(dm_os::SysDmOsSysInfo))
} else if name.eq_ignore_ascii_case("dm_db_index_usage_stats") {
Some(Box::new(dm_db::SysDmDbIndexUsageStats))
} else if name.eq_ignore_ascii_case("dm_db_partition_stats") {
Some(Box::new(dm_db::SysDmDbPartitionStats))
} else if name.eq_ignore_ascii_case("dm_db_index_physical_stats") {
Some(Box::new(dm_db::SysDmDbIndexPhysicalStats))
} else if name.eq_ignore_ascii_case("dm_exec_sessions") {
Some(Box::new(sessions::SysDmExecSessions))
} else if name.eq_ignore_ascii_case("dm_exec_requests") {
Some(Box::new(sessions::SysDmExecRequests))
} else if name.eq_ignore_ascii_case("dm_exec_connections") {
Some(Box::new(sessions::SysDmExecConnections))
} else if name.eq_ignore_ascii_case("check_constraints") {
Some(Box::new(constraints::SysCheckConstraints))
} else if name.eq_ignore_ascii_case("routines") {
Some(Box::new(routines::SysRoutines))
} else if name.eq_ignore_ascii_case("foreign_keys") {
Some(Box::new(constraints::SysForeignKeys))
} else if name.eq_ignore_ascii_case("key_constraints") {
Some(Box::new(constraints::SysKeyConstraints))
} else if name.eq_ignore_ascii_case("default_constraints") {
Some(Box::new(constraints::SysDefaultConstraints))
} else if name.eq_ignore_ascii_case("server_principals") {
Some(Box::new(tables::SysServerPrincipals))
} else if name.eq_ignore_ascii_case("server_role_members") {
Some(Box::new(tables::SysServerRoleMembers))
} else if name.eq_ignore_ascii_case("availability_replicas") {
Some(Box::new(hadr::SysAvailabilityReplicas))
} else if name.eq_ignore_ascii_case("availability_groups") {
Some(Box::new(hadr::SysAvailabilityGroups))
} else if name.eq_ignore_ascii_case("dm_hadr_database_replica_states") {
Some(Box::new(hadr::SysDmHadrDatabaseReplicaStates))
} else if name.eq_ignore_ascii_case("database_mirroring") {
Some(Box::new(hadr::SysDatabaseMirroring))
} else if name.eq_ignore_ascii_case("master_files") {
Some(Box::new(hadr::SysMasterFiles))
} else if name.eq_ignore_ascii_case("database_files") {
Some(Box::new(hadr::SysDatabaseFiles))
} else if name.eq_ignore_ascii_case("database_principals") {
Some(Box::new(database_principals::SysDatabasePrincipals))
} else if name.eq_ignore_ascii_case("database_permissions") {
Some(Box::new(database_principals::SysDatabasePermissions))
} else if name.eq_ignore_ascii_case("database_role_members") {
Some(Box::new(database_principals::SysDatabaseRoleMembers))
} else if name.eq_ignore_ascii_case("change_tracking_tables") {
Some(Box::new(change_tracking::SysChangeTrackingTables))
} else if name.eq_ignore_ascii_case("fulltext_indexes") {
Some(Box::new(fulltext_indexes::SysFullTextIndexes))
} else if name.eq_ignore_ascii_case("fulltext_index_columns") {
Some(Box::new(fulltext_indexes::SysFullTextIndexColumns))
} else if name.eq_ignore_ascii_case("fulltext_catalogs") {
Some(Box::new(fulltext_indexes::SysFullTextCatalogs))
} else {
None
}
}