<?xml version="1.0" encoding="UTF-8"?>
<EAPatch>
	<EAPatch.content>
		<PatchDescription>This patch will update indexes and columns on a SQL Server repository.</PatchDescription>	
		<PatchSQL>				
			IF EXISTS (SELECT 1 FROM dbo.sysindexes WHERE OBJECT_NAME(id) = 't_attribute' AND name = '{D748CF3F-CD8D-4A32-BE6B-2AA1C5F121E2}')
                DROP INDEX [t_attribute].[{D748CF3F-CD8D-4A32-BE6B-2AA1C5F121E2}]
		</PatchSQL>
		<PatchSQL>				
		    IF EXISTS (SELECT 1 FROM dbo.sysindexes WHERE OBJECT_NAME(id) = 't_connector' AND name = '{2B3CBB66-A1DE-44CB-91EF-FA7293F5D8AC}')
                DROP INDEX [t_connector].[{2B3CBB66-A1DE-44CB-91EF-FA7293F5D8AC}]            
		</PatchSQL>
		<PatchSQL>		
		    IF EXISTS (SELECT 1 FROM dbo.sysindexes WHERE OBJECT_NAME(id) = 't_connector' AND name = '{50EF5A01-F828-42A0-BB68-A639A0ADAD38}')
                DROP INDEX [t_connector].[{50EF5A01-F828-42A0-BB68-A639A0ADAD38}]
		</PatchSQL>
		<PatchSQL>		        
            IF EXISTS (SELECT 1 FROM dbo.sysindexes WHERE OBJECT_NAME(id) = 't_connector' AND name = '{8E928001-6F1B-488D-8ED6-096A83BEFC22}')
                DROP INDEX [t_connector].[{8E928001-6F1B-488D-8ED6-096A83BEFC22}]
		</PatchSQL>
		<PatchSQL>		
            IF EXISTS (SELECT 1 FROM dbo.sysindexes WHERE OBJECT_NAME(id) = 't_connector' AND name = 'Connector_ID')
                DROP INDEX [t_connector].[Connector_ID]
		</PatchSQL>
		<PatchSQL>		
            IF EXISTS (SELECT 1 FROM dbo.sysindexes WHERE OBJECT_NAME(id) = 't_diagram' AND name = 'Diagram_ID')
                DROP INDEX [t_diagram].[Diagram_ID]
		</PatchSQL>
		<PatchSQL>		
            IF EXISTS (SELECT 1 FROM dbo.sysindexes WHERE OBJECT_NAME(id) = 't_diagram' AND name = 't_diagramtypest_diagram')
                DROP INDEX [t_diagram].[t_diagramtypest_diagram]
		</PatchSQL>
		<PatchSQL>		
            IF EXISTS (SELECT 1 FROM dbo.sysindexes WHERE OBJECT_NAME(id) = 't_diagram' AND name = 'PackageDiagram')
                DROP INDEX [t_diagram].[PackageDiagram]
		</PatchSQL>
		<PatchSQL>		
            IF EXISTS (SELECT 1 FROM dbo.sysindexes WHERE OBJECT_NAME(id) = 't_diagramobjects' AND name = '{849FA16C-F704-42C4-81D5-714093282A5D}')
                DROP INDEX [t_diagramobjects].[{849FA16C-F704-42C4-81D5-714093282A5D}]
		</PatchSQL>
		<PatchSQL>		
            IF EXISTS (SELECT 1 FROM dbo.sysindexes WHERE OBJECT_NAME(id) = 't_diagramtypes' AND name = 'PackageDiagramTypes')
                DROP INDEX [t_diagramtypes].[PackageDiagramTypes]
		</PatchSQL>
		<PatchSQL>		
            IF EXISTS (SELECT 1 FROM dbo.sysindexes WHERE OBJECT_NAME(id) = 't_method' AND name = '{1E62D3A8-F3CF-4E2A-B0A0-A7266C98C7DB}')
                DROP INDEX [t_method].[{1E62D3A8-F3CF-4E2A-B0A0-A7266C98C7DB}]
		</PatchSQL>
		<PatchSQL>		
            IF EXISTS (SELECT 1 FROM dbo.sysindexes WHERE OBJECT_NAME(id) = 't_object' AND name = 'PackageObject')
                DROP INDEX [t_object].[PackageObject]
		</PatchSQL>
		<PatchSQL>		
            IF EXISTS (SELECT 1 FROM dbo.sysindexes WHERE OBJECT_NAME(id) = 't_objectrequires' AND name = 'ReqID')
                DROP INDEX [t_objectrequires].[ReqID]
		</PatchSQL>
		<PatchSQL>		
            IF EXISTS (SELECT 1 FROM dbo.sysindexes WHERE OBJECT_NAME(id) = 't_operation' AND name = 'OperationID')
                DROP INDEX [t_operation].[OperationID]
		</PatchSQL>
		<PatchSQL>		
            IF EXISTS (SELECT 1 FROM dbo.sysindexes WHERE OBJECT_NAME(id) = 't_package' AND name = 'Package_ID')
                DROP INDEX [t_package].[Package_ID]
		</PatchSQL>
		<PatchSQL>		
            IF EXISTS (SELECT 1 FROM dbo.sysindexes WHERE OBJECT_NAME(id) = 't_rtfreport' AND name = 'RTFReportID')
                DROP INDEX [t_rtfreport].[RTFReportID]
		</PatchSQL>   
		<PatchSQL>				
		    ALTER TABLE [t_connector] ALTER COLUMN [ActionFlags] NVARCHAR(255) COLLATE Latin1_General_CI_AS
		</PatchSQL>
		<PatchSQL>						
		    ALTER TABLE [t_connector] ALTER COLUMN [DestRole] NVARCHAR(255) COLLATE Latin1_General_CI_AS
        </PatchSQL>		    
        <PatchSQL>
            ALTER TABLE [t_connector] ALTER COLUMN [DispatchAction] NVARCHAR(255) COLLATE Latin1_General_CI_AS
        </PatchSQL>
        <PatchSQL>
            ALTER TABLE [t_connector] ALTER COLUMN [EventFlags] NVARCHAR(255) COLLATE Latin1_General_CI_AS
        </PatchSQL>
        <PatchSQL>
            ALTER TABLE [t_connector] ALTER COLUMN [PDATA1] NVARCHAR(255) COLLATE Latin1_General_CI_AS            
        </PatchSQL>
        <PatchSQL>
            ALTER TABLE [t_connector] ALTER COLUMN [PDATA3] NVARCHAR(255) COLLATE Latin1_General_CI_AS             
        </PatchSQL>
        <PatchSQL>
            ALTER TABLE [t_connector] ALTER COLUMN [StateFlags] NVARCHAR(255) COLLATE Latin1_General_CI_AS             
        </PatchSQL>     
        <PatchSQL>
            ALTER TABLE [t_issues] ALTER COLUMN [Priority] NVARCHAR(50) COLLATE Latin1_General_CI_AS
        </PatchSQL>
        <PatchSQL>
            ALTER TABLE [t_object] ALTER COLUMN [ActionFlags] NVARCHAR(255) COLLATE Latin1_General_CI_AS
        </PatchSQL>
        <PatchSQL>
            ALTER TABLE [t_object] ALTER COLUMN [PackageFlags] NVARCHAR(255) COLLATE Latin1_General_CI_AS            
        </PatchSQL>
        <PatchSQL>
            IF EXISTS (SELECT * FROM dbo.sysindexes WHERE OBJECT_NAME(id) = 't_object' AND name = 'PD1')
            	DROP INDEX [t_object].[PD1]
        </PatchSQL>
        <PatchSQL>
            ALTER TABLE [t_object] ALTER COLUMN [PDATA1] NVARCHAR(255) COLLATE Latin1_General_CI_AS            
        </PatchSQL>                
        <PatchSQL>
            CREATE INDEX [PD1] ON [t_object] ([PDATA1])
        </PatchSQL> 
        <PatchSQL>            
            ALTER TABLE [t_object] ALTER COLUMN [PDATA5] NVARCHAR(255) COLLATE Latin1_General_CI_AS            
        </PatchSQL>
        <PatchSQL>
            ALTER TABLE [t_object] ALTER COLUMN [StateFlags] NVARCHAR(255) COLLATE Latin1_General_CI_AS            
        </PatchSQL>
        <PatchSQL>
            ALTER TABLE [t_objectproblems] ALTER COLUMN [Priority] NVARCHAR(50) COLLATE Latin1_General_CI_AS            
        </PatchSQL>
        <PatchSQL>        
            ALTER TABLE [t_snapshot] ALTER COLUMN [ElementID] NVARCHAR(40) COLLATE Latin1_General_CI_AS            
        </PatchSQL>        
        <PatchSQL>        
            ALTER TABLE [t_snapshot] ALTER COLUMN [SeriesID] NVARCHAR(40) COLLATE Latin1_General_CI_AS            
        </PatchSQL>            
        <PatchSQL>                
			ALTER TABLE [t_snapshot] DROP [PK_t_snapshot]
        </PatchSQL>            
        <PatchSQL>                 
            ALTER TABLE [t_snapshot] ALTER COLUMN [SnapshotID] NVARCHAR(40)  COLLATE Latin1_General_CI_AS NOT NULL            
        </PatchSQL>            
        <PatchSQL>                 
			ALTER TABLE [t_snapshot] ADD CONSTRAINT [PK_t_snapshot] PRIMARY KEY ([SnapshotID])
        </PatchSQL>            
        <PatchSQL>                 
            ALTER TABLE [t_snapshot] ALTER COLUMN [Style] NVARCHAR(255) COLLATE Latin1_General_CI_AS 
        </PatchSQL>       
        <PatchSQL>
            ALTER TABLE [t_taggedvalue] ALTER COLUMN [ElementID] NVARCHAR(40) COLLATE Latin1_General_CI_AS            
        </PatchSQL> 
        <PatchSQL>
            ALTER TABLE [t_taggedvalue] DROP [PK_t_taggedvalue]
        </PatchSQL>
        <PatchSQL>
            ALTER TABLE [t_taggedvalue] ALTER COLUMN [PropertyID] NVARCHAR(40) COLLATE Latin1_General_CI_AS NOT NULL            
        </PatchSQL>
        <PatchSQL>
            ALTER TABLE [t_taggedvalue] ADD CONSTRAINT [PK_t_taggedvalue] PRIMARY KEY ([PropertyID])
        </PatchSQL>
        <PatchSQL>
            ALTER TABLE [t_tasks] ALTER COLUMN [AssignedTo] NVARCHAR(100) COLLATE Latin1_General_CI_AS            
        </PatchSQL>     
		<PatchSQL>		
            CREATE INDEX [ix_attribute_classifier] ON [t_attribute]([Classifier])
		</PatchSQL>
		<PatchSQL>		
            CREATE UNIQUE INDEX [ux_attribute_guid] ON [t_attribute]([ea_guid])
		</PatchSQL>
		<PatchSQL>		
            CREATE INDEX [ix_attribute_type] ON [t_attribute]([Type])
		</PatchSQL>
		<PatchSQL>		
            CREATE INDEX [ix_attributetag_value] ON [t_attributetag]([VALUE])
		</PatchSQL>
		<PatchSQL>		
            CREATE INDEX [ix_connector_seqno] ON [t_connector]([SeqNo])
		</PatchSQL>
		<PatchSQL>		
            CREATE INDEX [ix_connector_eid_connid] ON [t_connector]([End_Object_ID],[Connector_ID])
		</PatchSQL>
		<PatchSQL>		
            CREATE INDEX [ix_connector_sid_connid] ON [t_connector]([Start_Object_ID],[Connector_ID])
		</PatchSQL>
		<PatchSQL>		
            CREATE INDEX [ix_connectortag_property] ON [t_connectortag]([Property])
		</PatchSQL>
		<PatchSQL>		
            CREATE INDEX [ix_connectortag_value] ON [t_connectortag]([VALUE])
		</PatchSQL>
		<PatchSQL>
			CREATE INDEX [ix_datatypes_productname] ON [t_datatypes]([ProductName])
		</PatchSQL>
		<PatchSQL>
			CREATE INDEX [ix_datatypes_datatype] ON [t_datatypes]([DataType])
		</PatchSQL>
		<PatchSQL>
		    ALTER TABLE [t_image] ADD CONSTRAINT [pk_image] PRIMARY KEY ([ImageID])
		</PatchSQL>
		<PatchSQL>		
            CREATE INDEX [ix_object_name] ON [t_object]([Name])
		</PatchSQL>
		<PatchSQL>		
            CREATE INDEX [ix_object_objecttype] ON [t_object]([Object_Type])
		</PatchSQL>
		<PatchSQL>		
            CREATE INDEX [ix_object_pkgidpd1class] ON [t_object]([Package_ID],[PDATA1],[Classifier])
		</PatchSQL>
		<PatchSQL>		
            CREATE INDEX [ix_objectscen_oidevalscen] ON [t_objectscenarios]([Object_ID],[EValue],[Scenario])
		</PatchSQL>
		<PatchSQL>		
            CREATE INDEX [ix_operation_classifier] ON [t_operation]([Classifier])
		</PatchSQL>
		<PatchSQL>		
            CREATE UNIQUE INDEX [ux_operation_guid] ON [t_operation]([ea_guid])
		</PatchSQL>		
		<PatchSQL>
		    CREATE UNIQUE INDEX [ix_opparams_guid] ON [t_operationparams]([ea_guid])
		</PatchSQL>		
		<PatchSQL>		    		
            CREATE INDEX [ix_operationtag_value] ON [t_operationtag]([VALUE])
		</PatchSQL>
		<PatchSQL>		
            CREATE INDEX [ix_t_taggedvalue_value] ON [t_taggedvalue]([ElementID])
		</PatchSQL>
		<PatchSQL>		
            ALTER TABLE [t_xrefsystem] ADD CONSTRAINT [pk_xrefsystem] PRIMARY KEY([XRefID])
		</PatchSQL>
		<PatchSQL>		
            CREATE INDEX [ix_xrefsystem_client] ON [t_xrefsystem]([Client])
		</PatchSQL>
		<PatchSQL>		
            CREATE INDEX [ix_xrefsystem_supplier] ON [t_xrefsystem]([Supplier])
		</PatchSQL>
		<PatchSQL>		
            CREATE INDEX [ix_xrefsystem_type] ON [t_xrefsystem]([Type])
		</PatchSQL>
		<PatchSQL>		
            ALTER TABLE [t_xrefuser] ADD CONSTRAINT [pk_xrefuser] PRIMARY KEY([XRefID])
		</PatchSQL>
		<PatchSQL>		
            CREATE INDEX [ix_xrefuser_client] ON [t_xrefuser]([Client])
		</PatchSQL>
		<PatchSQL>		
            CREATE INDEX [ix_xrefuser_supplier] ON [t_xrefuser]([Supplier])
		</PatchSQL>
		<PatchSQL>		
            CREATE INDEX [ix_xrefuser_type] ON [t_xrefuser]([Type])
		</PatchSQL>        
	</EAPatch.content>
</EAPatch>

