1 contributor
use strict;
use warnings;
use FindBin;
$ENV{DBIX_CUSTOM_TEST_RUN} = 1
if -f "$FindBin::Bin/run/common-postgresql.run";
$ENV{DBIX_CUSTOM_SKIP_MESSAGE} = 'postgresql private test';
use DBIx::Custom;
{
package DBIx::Custom;
no warnings 'redefine';
my $date_typename = 'date';
my $datetime_typename = 'datetime';
sub date_typename { lc $date_typename }
sub datetime_typename { lc $datetime_typename }
my $date_datatype = -9;
my $datetime_datatype = 93;
sub date_datatype { lc $date_datatype }
sub datetime_datatype { lc $datetime_datatype }
has datetime_suffix => '.000';
has exclude_table => sub {
return qr/^(
CHECK_CONSTRAINTS
|COLUMN_DOMAIN_USAGE
|COLUMN_PRIVILEGES
|COLUMNS
|CONSTRAINT_COLUMN_USAGE
|CONSTRAINT_TABLE_USAGE
|DOMAIN_CONSTRAINTS
|DOMAINS
|KEY_COLUMN_USAGE
|PARAMETERS
|REFERENTIAL_CONSTRAINTS
|ROUTINE_COLUMNS
|ROUTINES
|SCHEMATA
|TABLE_CONSTRAINTS
|TABLE_PRIVILEGES
|TABLES
|VIEW_COLUMN_USAGE
|VIEW_TABLE_USAGE
|VIEWS
|all_columns
|all_objects
|all_parameters
|all_sql_modules
|all_views
|allocation_units
|assemblies
|assembly_files
|assembly_modules
|assembly_references
|assembly_types
|asymmetric_keys
|backup_devices
|certificates
|change_tracking_databases
|change_tracking_tables
|check_constraints
|column_type_usages
|column_xml_schema_collection_usages
|columns
|computed_columns
|configurations
|conversation_endpoints
|conversation_groups
|conversation_priorities
|credentials
|crypt_properties
|cryptographic_providers
|data_spaces
|database_audit_specification_details
|database_audit_specifications
|database_files
|database_mirroring
|database_mirroring_endpoints
|database_permissions
|database_principal_aliases
|database_principals
|database_recovery_status
|database_role_members
|databases
|default_constraints
|destination_data_spaces
|dm_audit_actions
|dm_audit_class_type_map
|dm_broker_activated_tasks
|dm_broker_connections
|dm_broker_forwarded_messages
|dm_broker_queue_monitors
|dm_cdc_errors
|dm_cdc_log_scan_sessions
|dm_clr_appdomains
|dm_clr_loaded_assemblies
|dm_clr_properties
|dm_clr_tasks
|dm_cryptographic_provider_properties
|dm_database_encryption_keys
|dm_db_file_space_usage
|dm_db_index_usage_stats
|dm_db_mirroring_auto_page_repair
|dm_db_mirroring_connections
|dm_db_mirroring_past_actions
|dm_db_missing_index_details
|dm_db_missing_index_group_stats
|dm_db_missing_index_groups
|dm_db_partition_stats
|dm_db_persisted_sku_features
|dm_db_script_level
|dm_db_session_space_usage
|dm_db_task_space_usage
|dm_exec_background_job_queue
|dm_exec_background_job_queue_stats
|dm_exec_cached_plans
|dm_exec_connections
|dm_exec_procedure_stats
|dm_exec_query_memory_grants
|dm_exec_query_optimizer_info
|dm_exec_query_resource_semaphores
|dm_exec_query_stats
|dm_exec_query_transformation_stats
|dm_exec_requests
|dm_exec_sessions
|dm_exec_trigger_stats
|dm_filestream_file_io_handles
|dm_filestream_file_io_requests
|dm_fts_active_catalogs
|dm_fts_fdhosts
|dm_fts_index_population
|dm_fts_memory_buffers
|dm_fts_memory_pools
|dm_fts_outstanding_batches
|dm_fts_population_ranges
|dm_io_backup_tapes
|dm_io_cluster_shared_drives
|dm_io_pending_io_requests
|dm_os_buffer_descriptors
|dm_os_child_instances
|dm_os_cluster_nodes
|dm_os_dispatcher_pools
|dm_os_dispatchers
|dm_os_hosts
|dm_os_latch_stats
|dm_os_loaded_modules
|dm_os_memory_allocations
|dm_os_memory_brokers
|dm_os_memory_cache_clock_hands
|dm_os_memory_cache_counters
|dm_os_memory_cache_entries
|dm_os_memory_cache_hash_tables
|dm_os_memory_clerks
|dm_os_memory_node_access_stats
|dm_os_memory_nodes
|dm_os_memory_objects
|dm_os_memory_pools
|dm_os_nodes
|dm_os_performance_counters
|dm_os_process_memory
|dm_os_ring_buffers
|dm_os_schedulers
|dm_os_spinlock_stats
|dm_os_stacks
|dm_os_sublatches
|dm_os_sys_info
|dm_os_sys_memory
|dm_os_tasks
|dm_os_threads
|dm_os_virtual_address_dump
|dm_os_wait_stats
|dm_os_waiting_tasks
|dm_os_worker_local_storage
|dm_os_workers
|dm_qn_subscriptions
|dm_repl_articles
|dm_repl_schemas
|dm_repl_tranhash
|dm_repl_traninfo
|dm_resource_governor_configuration
|dm_resource_governor_resource_pools
|dm_resource_governor_workload_groups
|dm_server_audit_status
|dm_tran_active_snapshot_database_transactions
|dm_tran_active_transactions
|dm_tran_commit_table
|dm_tran_current_snapshot
|dm_tran_current_transaction
|dm_tran_database_transactions
|dm_tran_locks
|dm_tran_session_transactions
|dm_tran_top_version_generators
|dm_tran_transactions_snapshot
|dm_tran_version_store
|dm_xe_map_values
|dm_xe_object_columns
|dm_xe_objects
|dm_xe_packages
|dm_xe_session_event_actions
|dm_xe_session_events
|dm_xe_session_object_columns
|dm_xe_session_targets
|dm_xe_sessions
|endpoint_webmethods
|endpoints
|event_notification_event_types
|event_notifications
|events
|extended_procedures
|extended_properties
|filegroups
|foreign_key_columns
|foreign_keys
|fulltext_catalogs
|fulltext_document_types
|fulltext_index_catalog_usages
|fulltext_index_columns
|fulltext_index_fragments
|fulltext_indexes
|fulltext_languages
|fulltext_stoplists
|fulltext_stopwords
|fulltext_system_stopwords
|function_order_columns
|http_endpoints
|identity_columns
|index_columns
|indexes
|internal_tables
|key_constraints
|key_encryptions
|linked_logins
|login_token
|master_files
|master_key_passwords
|message_type_xml_schema_collection_usages
|messages
|module_assembly_usages
|numbered_procedure_parameters
|numbered_procedures
|objects
|openkeys
|parameter_type_usages
|parameter_xml_schema_collection_usages
|parameters
|partition_functions
|partition_parameters
|partition_range_values
|partition_schemes
|partitions
|plan_guides
|procedures
|remote_logins
|remote_service_bindings
|resource_governor_configuration
|resource_governor_resource_pools
|resource_governor_workload_groups
|routes
|schemas
|securable_classes
|server_assembly_modules
|server_audit_specification_details
|server_audit_specifications
|server_audits
|server_event_notifications
|server_event_session_actions
|server_event_session_events
|server_event_session_fields
|server_event_session_targets
|server_event_sessions
|server_events
|server_file_audits
|server_permissions
|server_principal_credentials
|server_principals
|server_role_members
|server_sql_modules
|server_trigger_events
|server_triggers
|servers
|service_broker_endpoints
|service_contract_message_usages
|service_contract_usages
|service_contracts
|service_message_types
|service_queue_usages
|service_queues
|services
|soap_endpoints
|spatial_index_tessellations
|spatial_indexes
|spatial_reference_systems
|sql_dependencies
|sql_logins
|sql_modules
|stats
|stats_columns
|symmetric_keys
|synonyms
|syscacheobjects
|syscharsets
|syscolumns
|syscomments
|sysconfigures
|sysconstraints
|syscurconfigs
|syscursorcolumns
|syscursorrefs
|syscursors
|syscursortables
|sysdatabases
|sysdepends
|sysdevices
|sysfilegroups
|sysfiles
|sysforeignkeys
|sysfulltextcatalogs
|sysindexes
|sysindexkeys
|syslanguages
|syslockinfo
|syslogins
|sysmembers
|sysmessages
|sysobjects
|sysoledbusers
|sysopentapes
|sysperfinfo
|syspermissions
|sysprocesses
|sysprotects
|sysreferences
|sysremotelogins
|sysservers
|system_columns
|system_components_surface_area_configuration
|system_objects
|system_parameters
|system_sql_modules
|system_views
|systypes
|sysusers
|table_types
|tables
|tcp_endpoints
|trace_categories
|trace_columns
|trace_event_bindings
|trace_events
|trace_subclass_values
|traces
|transmission_queue
|trigger_event_types
|trigger_events
|triggers
|type_assembly_usages
|types
|user_token
|via_endpoints
|views
|xml_indexes
|xml_schema_attributes
|xml_schema_collections
|xml_schema_component_placements
|xml_schema_components
|xml_schema_elements
|xml_schema_facets
|xml_schema_model_groups
|xml_schema_namespaces
|xml_schema_types
|xml_schema_wildcard_namespaces
|xml_schema_wildcards
)/x
};
my $dsn = "dbi:ODBC:driver={SQL Server};Server={localhost\\SQLEXPRESS};"
. "Trusted_Connection=No;AutoTranslate=No;Database=dbix_custom;";
has dsn => $dsn;
has user => 'dbix_custom';
has password => 'dbix_custom';
sub create_table1 { 'create table table1 (key1 varchar(255), key2 varchar(255));' }
sub create_table1_2 {'create table table1 (key1 varchar(255), key2 varchar(255), '
. 'key3 varchar(255), key4 varchar(255), key5 varchar(255));' }
sub create_table1_type { "create table table1 (key1 $date_typename, key2 $datetime_typename);" }
sub create_table1_highperformance { "create table table1 (ab varchar(255), bc varchar(255), "
. "ik varchar(255), hi varchar(255), ui varchar(255), pq varchar(255), dc varchar(255));" }
sub create_table2 { 'create table table2 (key1 varchar(255), key3 varchar(255));' }
sub create_table2_2 { "create table table2 (key1 varchar(255), key2 varchar(255), key3 varchar(255))" }
sub create_table3 { "create table table3 (key1 varchar(255), key2 varchar(255), key3 varchar(255))" }
sub create_table_reserved { 'create table "table" ("select" varchar(255), "update" varchar(255))' }
}
require "$FindBin::Bin/common.t";