diff --git a/current/[FNDD_GET_WINDREAM_INDEX_VALUES]/[FNDD_GET_WINDREAM_INDEX_VALUES].sql b/current/[FNDD_GET_WINDREAM_INDEX_VALUES]/[FNDD_GET_WINDREAM_INDEX_VALUES].sql index 944ca7f..deb278e 100644 --- a/current/[FNDD_GET_WINDREAM_INDEX_VALUES]/[FNDD_GET_WINDREAM_INDEX_VALUES].sql +++ b/current/[FNDD_GET_WINDREAM_INDEX_VALUES]/[FNDD_GET_WINDREAM_INDEX_VALUES].sql @@ -8,45 +8,239 @@ GO -- Reads the windream database attributes to gives the index value -- of a regular index or a vector index -- --- Returns: Table (7 columns) +-- Returns: Table -- ================================================================= --- Copyright (c) 2024 by Digital Data GmbH +-- Copyright (c) 2025 by Digital Data GmbH -- -- Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim -- Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works -- ================================================================= -- Creation Date / Author: 13.12.2024 / MK --- Version Date / Editor: 13.12.2024 / MK --- Version Number: 1.0.0.0 +-- Version Date / Editor: 04.04.2025 / MK +-- Version Number: 2.2.0.0 -- ================================================================= -- History: -- 13.12.2024 / MK - First Version - +-- 02.04.2025 / MK - Added DocID, concat results in new [VALUES] row +-- 03.04.2025 / MK - Added parameter to show the whole BaseAttributes table +-- 04.04.2025 / MK - Added parameter for debugging vector handling CREATE OR ALTER FUNCTION [dbo].[FNDD_GET_WINDREAM_INDEX_VALUES] ( - @pdwDocID BIGINT, -- Give windream DocID, eg. 4711 - @pszAttrName NVARCHAR(255) -- Give name of the windream Index, eg 'String 37' + @pdwDocID BIGINT, -- Give windream DocID, eg. 4711 + @pszAttrName NVARCHAR(255), -- Give name of the windream Index, eg 'String 37' or 'Vektor String 100' + @pSeperator NVARCHAR(5), -- Give the data seperator for the [VALUES] return, eg '; ' + @pShowWDBA BIT, -- Set to 1 to get the whole BaseAttributes table (USE ONLY IF NECCESSARY, BECAUSE OF HIGHER MEMORY USAGE), DEFAULT SET 0. + @pDEBUG BIT -- Set to 1 to get vector retrieving infos in result table, DEFAULT SET 0! ) -RETURNS @Table TABLE ([COUNTER] BIGINT IDENTITY(1, 1), [COUNT] BIGINT, [VALUE] NVARCHAR(max), [SOURCE_TYPE] NVARCHAR(50), [SOURCE_TABLE] NVARCHAR(50), [SOURCE_COLUMN] NVARCHAR(50), [SOURCE_COLUMN_SIZE] INT) +RETURNS @RESULT TABLE ( [COUNTER] BIGINT IDENTITY(1,1) NOT NULL, + [COUNT] BIGINT NOT NULL, + [DOCID] BIGINT NULL, + [VALUE] NVARCHAR(4000) NULL, + [VALUES] NVARCHAR(max) NULL, + [SOURCE_TYPE] NVARCHAR(50) NULL, + [SOURCE_TABLE] NVARCHAR(50) NULL, + [SOURCE_COLUMN] NVARCHAR(50) NULL, + [SOURCE_COLUMN_SIZE] INT NULL, + [WDBA_dwDocID] BIGINT NULL, + [WDBA_dwDocDBID] INT NULL, + [WDBA_dwObjectTypeID] BIGINT NULL, + [WDBA_dwObjectTypeDBID] INT NULL, + [WDBA_dwCatalogID] INT NULL, + [WDBA_dwParentID] BIGINT NULL, + [WDBA_dwParentDBID] INT NULL, + [WDBA_dwCreatorID] BIGINT NULL, + [WDBA_szCreatorName] NVARCHAR(255) NULL, + [WDBA_dwVersionNumber] INT NULL, + [WDBA_dwVersionID] BIGINT NULL, + [WDBA_szLongName] NVARCHAR(255) NULL, + [WDBA_szUpperLongName] NVARCHAR(255) NULL, + [WDBA_szShortName] NVARCHAR(12) NULL, + [WDBA_szUpperShortName] NVARCHAR(12) NULL, + [WDBA_dwSize] BIGINT NULL, + [WDBA_decCreationTime] DECIMAL(14, 0) NULL, + [WDBA_decAccessTime] DECIMAL(14, 0) NULL, + [WDBA_decChangedTime] DECIMAL(14, 0) NULL, + [WDBA_dwChangeCount] INT NULL, + [WDBA_dwFSFlags] INT NULL, + [WDBA_dwFlags] INT NULL, + [WDBA_dwOwnerID] BIGINT NULL, + [WDBA_dwOwnerDBID] INT NULL, + [WDBA_dwWorkLockUserID] BIGINT NULL, + [WDBA_dwWorkLockUserDBID] INT NULL, + [WDBA_dwFlags2] INT NULL, + [WDBA_dwUserFlags] INT NULL, + [WDBA_dwEditDate] INT NULL, + [WDBA_dwArchiveDate] INT NULL, + [WDBA_szReference] NVARCHAR(255) NULL, + [WDBA_dwEditPeriod] INT NULL, + [WDBA_dwArchivePeriod] INT NULL, + [WDBA_dwTypeAssignDate] INT NULL, + [WDBA_dwChangeDate] INT NULL, + [WDBA_dwCreationDate] INT NULL, + [WDBA_dwCreation_Time] INT NULL, + [WDBA_dwChange_Time] INT NULL, + [WDBA_dwTypeAssign_Time] INT NULL, + [WDBA_dwAccessListID] BIGINT NULL, + [WDBA_dwAccessListDBID] INT NULL, + [WDBA_szDisplay_Name] NVARCHAR(512) NULL, + [WDBA_dwILMRetention] INT NULL, + [WDBA_szFile_Ext] NVARCHAR(255) NULL, + [WDBA_szWM_Store] NVARCHAR(255) NULL, + [WDBA_szText00] NVARCHAR(4000) NULL, + [WDBA_szText01] NVARCHAR(4000) NULL, + [WDBA_szText02] NVARCHAR(4000) NULL, + [WDBA_szText03] NVARCHAR(4000) NULL, + [WDBA_szText04] NVARCHAR(4000) NULL, + [WDBA_szText05] NVARCHAR(4000) NULL, + [WDBA_szText06] NVARCHAR(4000) NULL, + [WDBA_szText07] NVARCHAR(4000) NULL, + [WDBA_szText08] NVARCHAR(4000) NULL, + [WDBA_szText09] NVARCHAR(4000) NULL, + [WDBA_szText10] NVARCHAR(4000) NULL, + [WDBA_szText11] NVARCHAR(4000) NULL, + [WDBA_szText12] NVARCHAR(4000) NULL, + [WDBA_szText13] NVARCHAR(4000) NULL, + [WDBA_szText14] NVARCHAR(4000) NULL, + [WDBA_szText15] NVARCHAR(4000) NULL, + [WDBA_szText16] NVARCHAR(4000) NULL, + [WDBA_szText17] NVARCHAR(4000) NULL, + [WDBA_szText18] NVARCHAR(4000) NULL, + [WDBA_szText19] NVARCHAR(4000) NULL, + [WDBA_szText20] NVARCHAR(4000) NULL, + [WDBA_szText21] NVARCHAR(4000) NULL, + [WDBA_szText22] NVARCHAR(4000) NULL, + [WDBA_szText23] NVARCHAR(4000) NULL, + [WDBA_szText24] NVARCHAR(4000) NULL, + [WDBA_szText25] NVARCHAR(4000) NULL, + [WDBA_szText26] NVARCHAR(4000) NULL, + [WDBA_szText27] NVARCHAR(4000) NULL, + [WDBA_szText28] NVARCHAR(4000) NULL, + [WDBA_szText29] NVARCHAR(4000) NULL, + [WDBA_szText30] NVARCHAR(4000) NULL, + [WDBA_szText31] NVARCHAR(4000) NULL, + [WDBA_szText32] NVARCHAR(4000) NULL, + [WDBA_szText33] NVARCHAR(4000) NULL, + [WDBA_szText34] NVARCHAR(4000) NULL, + [WDBA_szText35] NVARCHAR(4000) NULL, + [WDBA_szText36] NVARCHAR(4000) NULL, + [WDBA_szText37] NVARCHAR(4000) NULL, + [WDBA_szText38] NVARCHAR(4000) NULL, + [WDBA_szText39] NVARCHAR(4000) NULL, + [WDBA_dwInteger00] NVARCHAR(4000) NULL, + [WDBA_dwInteger01] NVARCHAR(4000) NULL, + [WDBA_dwInteger02] NVARCHAR(4000) NULL, + [WDBA_dwInteger03] NVARCHAR(4000) NULL, + [WDBA_dwInteger04] NVARCHAR(4000) NULL, + [WDBA_dwInteger05] NVARCHAR(4000) NULL, + [WDBA_dwInteger06] NVARCHAR(4000) NULL, + [WDBA_dwInteger07] NVARCHAR(4000) NULL, + [WDBA_dwInteger08] NVARCHAR(4000) NULL, + [WDBA_dwInteger09] NVARCHAR(4000) NULL, + [WDBA_dwInteger10] NVARCHAR(4000) NULL, + [WDBA_dwInteger11] NVARCHAR(4000) NULL, + [WDBA_dwInteger12] NVARCHAR(4000) NULL, + [WDBA_dwInteger13] NVARCHAR(4000) NULL, + [WDBA_dwInteger14] NVARCHAR(4000) NULL, + [WDBA_dwInteger15] NVARCHAR(4000) NULL, + [WDBA_dwInteger16] NVARCHAR(4000) NULL, + [WDBA_dwInteger17] NVARCHAR(4000) NULL, + [WDBA_dwInteger18] NVARCHAR(4000) NULL, + [WDBA_dwInteger19] NVARCHAR(4000) NULL, + [WDBA_dwInteger20] NVARCHAR(4000) NULL, + [WDBA_dwInteger21] NVARCHAR(4000) NULL, + [WDBA_dwInteger22] NVARCHAR(4000) NULL, + [WDBA_dwInteger23] NVARCHAR(4000) NULL, + [WDBA_dwInteger24] NVARCHAR(4000) NULL, + [WDBA_lfFloat00] NVARCHAR(4000) NULL, + [WDBA_lfFloat01] NVARCHAR(4000) NULL, + [WDBA_lfFloat02] NVARCHAR(4000) NULL, + [WDBA_lfFloat03] NVARCHAR(4000) NULL, + [WDBA_lfFloat04] NVARCHAR(4000) NULL, + [WDBA_lfFloat05] NVARCHAR(4000) NULL, + [WDBA_lfFloat06] NVARCHAR(4000) NULL, + [WDBA_lfFloat07] NVARCHAR(4000) NULL, + [WDBA_lfFloat08] NVARCHAR(4000) NULL, + [WDBA_lfFloat09] NVARCHAR(4000) NULL, + [WDBA_lfFloat10] NVARCHAR(4000) NULL, + [WDBA_lfFloat11] NVARCHAR(4000) NULL, + [WDBA_lfFloat12] NVARCHAR(4000) NULL, + [WDBA_lfFloat13] NVARCHAR(4000) NULL, + [WDBA_lfFloat14] NVARCHAR(4000) NULL, + [WDBA_blBool00] NVARCHAR(4000) NULL, + [WDBA_blBool01] NVARCHAR(4000) NULL, + [WDBA_blBool02] NVARCHAR(4000) NULL, + [WDBA_blBool03] NVARCHAR(4000) NULL, + [WDBA_blBool04] NVARCHAR(4000) NULL, + [WDBA_dwDate00] NVARCHAR(4000) NULL, + [WDBA_dwDate01] NVARCHAR(4000) NULL, + [WDBA_dwDate02] NVARCHAR(4000) NULL, + [WDBA_dwDate03] NVARCHAR(4000) NULL, + [WDBA_dwDate04] NVARCHAR(4000) NULL, + [WDBA_dwDate05] NVARCHAR(4000) NULL, + [WDBA_dwDate06] NVARCHAR(4000) NULL, + [WDBA_dwDate07] NVARCHAR(4000) NULL, + [WDBA_dwDate08] NVARCHAR(4000) NULL, + [WDBA_dwDate09] NVARCHAR(4000) NULL, + [WDBA_decTimeStamp00] NVARCHAR(4000) NULL, + [WDBA_decTimeStamp01] NVARCHAR(4000) NULL, + [WDBA_decCurrency00] NVARCHAR(4000) NULL, + [WDBA_wmVar00] NVARCHAR(4000) NULL, + [WDBA_wmVar01] NVARCHAR(4000) NULL, + [WDBA_wmVar02] NVARCHAR(4000) NULL, + [WDBA_wmVar03] NVARCHAR(4000) NULL, + [WDBA_wmVar04] NVARCHAR(4000) NULL, + [WDBA_wmVar05] NVARCHAR(4000) NULL, + [WDBA_wmVar06] NVARCHAR(4000) NULL, + [WDBA_wmVar07] NVARCHAR(4000) NULL, + [WDBA_wmVar08] NVARCHAR(4000) NULL, + [WDBA_wmVar09] NVARCHAR(4000) NULL, + [WDBA_wmVar10] NVARCHAR(4000) NULL, + [WDBA_wmVar11] NVARCHAR(4000) NULL, + [WDBA_wmVar12] NVARCHAR(4000) NULL, + [WDBA_wmVar13] NVARCHAR(4000) NULL, + [WDBA_wmVar14] NVARCHAR(4000) NULL, + [WDBA_wmVar15] NVARCHAR(4000) NULL, + [WDBA_wmVar16] NVARCHAR(4000) NULL, + [WDBA_wmVar17] NVARCHAR(4000) NULL, + [WDBA_wmVar18] NVARCHAR(4000) NULL, + [WDBA_wmVar19] NVARCHAR(4000) NULL, + [WDBA_wmVar20] NVARCHAR(4000) NULL, + [WDBA_wmVar21] NVARCHAR(4000) NULL, + [WDBA_wmVar22] NVARCHAR(4000) NULL, + [WDBA_wmVar23] NVARCHAR(4000) NULL, + [WDBA_wmVar24] NVARCHAR(4000) NULL, + [WDBA_wmVar25] NVARCHAR(4000) NULL, + [WDBA_wmVar26] NVARCHAR(4000) NULL, + [WDBA_wmVar27] NVARCHAR(4000) NULL, + [WDBA_wmVar28] NVARCHAR(4000) NULL, + [WDBA_wmVar29] NVARCHAR(4000) NULL) AS BEGIN - DECLARE @dwDocID BIGINT = @pdwDocID, - @szAttrName NVARCHAR(255) = @pszAttrName; + DECLARE @dwDocID BIGINT = @pdwDocID, + @szAttrName NVARCHAR(255) = @pszAttrName, + @Seperator NVARCHAR(5) = @pSeperator, + @ShowWDBA BIT = @pShowWDBA, + @DEBUG BIT = @pDEBUG; - DECLARE @VectorCount INT = 0, - @dwAttrSize INT = 0, - @dwAttrID BIGINT = 0, - @dwAttrType BIGINT = 0, - @szTableName NVARCHAR(255) = NULL, - @szColumnName NVARCHAR(255) = NULL; + DECLARE @VectorCount INT = 0, + @dwAttrSize INT = 0, + @dwAttrID BIGINT = 0, + @dwAttrType BIGINT = 0, + @szTableName NVARCHAR(255) = NULL, + @szColumnName NVARCHAR(255) = NULL; + + DECLARE @COUNTER BIGINT = 0, + @COUNT BIGINT = 0, + @VALUE NVARCHAR(4000) = NULL, + @VALUES NVARCHAR(MAX) = NULL; DECLARE @Attribute TABLE ([dwAttrID] BIGINT, [dwAttrType] BIGINT, [szTableName] NVARCHAR(255), [szColumnName] NVARCHAR(255), [dwAttrSize] INT); ------------------------------------------------------------------------------------------------------------ INSERT INTO @Attribute ([dwAttrID], [dwAttrType], [szTableName], [szColumnName], [dwAttrSize]) SELECT TOP 1 [dwAttrID], [dwAttrType], [szTableName], [szColumnName], [dwAttrSize] - FROM [windreamDB].[dbo].[Attribute] (NOLOCK) WHERE [szAttrName] = @szAttrName; + FROM [windreamDB].[dbo].[Attribute] (NOLOCK) WHERE [szAttrName] = @szAttrName; ------------------------------------------------------------------------------------------------------------ IF ((SELECT COUNT(*) FROM @Attribute) > 0) BEGIN @@ -61,11 +255,12 @@ BEGIN IF ((@dwAttrID > 0) and (@dwAttrType > 0) and (LEN(@szTableName) > 0) and (LEN(@szColumnName) > 0)) BEGIN - IF (@szTableName = 'BaseAttributes') BEGIN + IF (@szTableName = 'BaseAttributes') BEGIN -- Handle single fields - INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) + INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) SELECT COUNT(*), + @dwDocID, CASE WHEN @szColumnName = 'dwDocID' THEN (SELECT CONVERT(NVARCHAR,[dwDocID]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID) WHEN @szColumnName = 'dwDocDBID' THEN (SELECT CONVERT(NVARCHAR,[dwDocDBID]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID) @@ -241,7 +436,8 @@ BEGIN WHEN @szColumnName = 'wmVar29' THEN (SELECT CONVERT(NVARCHAR,[wmVar29]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID) WHEN @szColumnName = 'dwILMRetention' THEN (SELECT CONVERT(NVARCHAR,[dwILMRetention]) FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) WHERE [dwDocID] = @dwDocID) ELSE NULL - END AS ColumnValue, + END AS 'VALUE', + NULL AS 'VALUES', @dwAttrType, @szTableName, @szColumnName, @@ -250,7 +446,7 @@ BEGIN WHERE [dwDocID] = @dwDocID; ------------------------------------------------------------------------------------------------------------ - END; ELSE IF (@szTableName = 'Vector') BEGIN + END; ELSE IF (@szTableName = 'Vector') BEGIN -- Handle vector fields SELECT @VectorCount = COUNT(*) FROM [windreamDB].[dbo].[Vector] (NOLOCK) @@ -258,74 +454,301 @@ BEGIN AND [dwAttrID] = @dwAttrID; IF (@dwAttrType in (4097)) BEGIN -- String - INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) - SELECT @VectorCount, [szValue], @dwAttrType, @szTableName, 'szValue', @dwAttrSize - FROM [windreamDB].[dbo].[Vector] (NOLOCK) - WHERE [dwDocID] = @dwDocID - AND [dwAttrID] = @dwAttrID - GROUP BY [szValue]; + INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) + SELECT @VectorCount, @dwDocID, [szValue], NULL, @dwAttrType, @szTableName, 'szValue', @dwAttrSize + FROM [windreamDB].[dbo].[Vector] (NOLOCK) + WHERE [dwDocID] = @dwDocID + AND [dwAttrID] = @dwAttrID + GROUP BY [szValue], [dwRow] + ORDER BY [dwRow] ASC; END; ELSE IF (@dwAttrType in (4098,4107)) BEGIN -- Integer - INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) - SELECT @VectorCount, [dwValue], @dwAttrType, @szTableName, 'dwValue', @dwAttrSize - FROM [windreamDB].[dbo].[Vector] (NOLOCK) - WHERE [dwDocID] = @dwDocID - AND [dwAttrID] = @dwAttrID - GROUP BY [dwValue]; + INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) + SELECT @VectorCount, @dwDocID, [dwValue], NULL, @dwAttrType, @szTableName, 'dwValue', @dwAttrSize + FROM [windreamDB].[dbo].[Vector] (NOLOCK) + WHERE [dwDocID] = @dwDocID + AND [dwAttrID] = @dwAttrID + GROUP BY [dwValue], [dwRow] + ORDER BY [dwRow] ASC; END; ELSE IF (@dwAttrType in (4099)) BEGIN -- Float - INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) - SELECT @VectorCount, [lfValue], @dwAttrType, @szTableName, 'lfValue', @dwAttrSize - FROM [windreamDB].[dbo].[Vector] (NOLOCK) - WHERE [dwDocID] = @dwDocID - AND [dwAttrID] = @dwAttrID - GROUP BY [lfValue]; + INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) + SELECT @VectorCount, @dwDocID, [lfValue], NULL, @dwAttrType, @szTableName, 'lfValue', @dwAttrSize + FROM [windreamDB].[dbo].[Vector] (NOLOCK) + WHERE [dwDocID] = @dwDocID + AND [dwAttrID] = @dwAttrID + GROUP BY [lfValue], [dwRow] + ORDER BY [dwRow] ASC; END; ELSE IF (@dwAttrType in (8,4100,8204)) BEGIN -- Bool - INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) - SELECT @VectorCount, [blValue], @dwAttrType, @szTableName, 'blValue', @dwAttrSize - FROM [windreamDB].[dbo].[Vector] (NOLOCK) - WHERE [dwDocID] = @dwDocID - AND [dwAttrID] = @dwAttrID - GROUP BY [blValue]; + INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) + SELECT @VectorCount, @dwDocID, [blValue], NULL, @dwAttrType, @szTableName, 'blValue', @dwAttrSize + FROM [windreamDB].[dbo].[Vector] (NOLOCK) + WHERE [dwDocID] = @dwDocID + AND [dwAttrID] = @dwAttrID + GROUP BY [blValue], [dwRow] + ORDER BY [dwRow] ASC; END; ELSE IF (@dwAttrType in (4101)) BEGIN -- Date - INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) - SELECT @VectorCount, [decValue], @dwAttrType, @szTableName, 'decValue', @dwAttrSize - FROM [windreamDB].[dbo].[Vector] (NOLOCK) - WHERE [dwDocID] = @dwDocID - AND [dwAttrID] = @dwAttrID - GROUP BY [decValue]; + INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) + SELECT @VectorCount, @dwDocID, [decValue], NULL, @dwAttrType, @szTableName, 'decValue', @dwAttrSize + FROM [windreamDB].[dbo].[Vector] (NOLOCK) + WHERE [dwDocID] = @dwDocID + AND [dwAttrID] = @dwAttrID + GROUP BY [decValue], [dwRow] + ORDER BY [dwRow] ASC; END; ELSE BEGIN - INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) - SELECT 0, NULL, NULL, 'ERROR5', 'COLUMN NOT FOUND', NULL; - + INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) + SELECT 0, 0, NULL, NULL, NULL, 'ERROR5', 'COLUMN NOT FOUND', NULL; END; - -- Failsafe, to have at least one result - IF (SELECT COUNT(*) FROM @Table) = 0 BEGIN - INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) - SELECT 0, NULL, NULL, 'ERROR4', 'NO VALUE FOUND', NULL; + IF (@DEBUG = 1) BEGIN -- if debug mode is enabled + INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) + SELECT @VectorCount, @dwDocID, NULL, NULL, 'DEBUG', concat('@szTableName: ',@szTableName), concat('@dwAttrType: ',@dwAttrType,'; ','@dwAttrID: ',@dwAttrID), 0; END; END; ELSE BEGIN - INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) - SELECT 0, NULL, NULL, 'ERROR3', 'TABLE NOT FOUND', NULL; + INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) + SELECT 0, 0, NULL, NULL, NULL, 'ERROR3', 'TABLE NOT FOUND', NULL; - END; + END; END; ELSE BEGIN - INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) - SELECT 0, NULL, NULL, 'ERROR2', 'TABLE NOT FOUND', NULL; + INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) + SELECT 0, 0, NULL, NULL, NULL, 'ERROR2', 'TABLE NOT FOUND', NULL; END; END; ELSE BEGIN - INSERT INTO @Table ([COUNT], [VALUE], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) - SELECT 0, NULL, NULL, 'ERROR1', 'INDEX NOT FOUND', NULL; + INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) + SELECT 0, 0, NULL, NULL, NULL, 'ERROR1', 'INDEX NOT FOUND', NULL; END; + ------------------------------------------------------------------------------------------------------------ + + IF ((SELECT COUNT(*) FROM @RESULT) > 0) BEGIN -- Fill the VALUES row + + DECLARE CURSOR_SET_VALUES_FROM_VALUE CURSOR + LOCAL FAST_FORWARD FOR + SELECT [COUNTER], [COUNT], [VALUE] + FROM @RESULT + ORDER BY [COUNTER] ASC; + + OPEN CURSOR_SET_VALUES_FROM_VALUE + FETCH NEXT FROM CURSOR_SET_VALUES_FROM_VALUE INTO @COUNTER, @COUNT, @VALUE + WHILE @@FETCH_STATUS = 0 + BEGIN + + IF (@COUNTER = 1) BEGIN + + SET @VALUES = @VALUE; + UPDATE @RESULT + SET [VALUES] = @VALUES + WHERE [COUNTER] = @COUNTER; + + END; ELSE IF ((@COUNTER > 1) AND (@COUNT > 1)) BEGIN + + SET @VALUES = CONCAT(@VALUES,@Seperator,@VALUE); + UPDATE @RESULT + SET [VALUES] = @VALUES + WHERE [COUNTER] = @COUNTER; + + END; + + FETCH NEXT FROM CURSOR_SET_VALUES_FROM_VALUE INTO @COUNTER, @COUNT, @VALUE + END + CLOSE CURSOR_SET_VALUES_FROM_VALUE; + DEALLOCATE CURSOR_SET_VALUES_FROM_VALUE; + + END; ELSE BEGIN -- Failsafe, to have at least one result + INSERT INTO @RESULT ([COUNT], [DOCID], [VALUE], [VALUES], [SOURCE_TYPE], [SOURCE_TABLE], [SOURCE_COLUMN], [SOURCE_COLUMN_SIZE]) + SELECT 0, 0, NULL, NULL, NULL, 'ERROR0', 'NO VALUE FOUND', NULL; + END; + ------------------------------------------------------------------------------------------------------------ + + IF (((SELECT COUNT(*) FROM @RESULT) > 0) AND (@ShowWDBA = 1)) BEGIN + + UPDATE @RESULT + SET [WDBA_dwDocID] = [dwDocID], + [WDBA_dwDocDBID] = [dwDocDBID], + [WDBA_dwObjectTypeID] = [dwObjectTypeID], + [WDBA_dwObjectTypeDBID] = [dwObjectTypeDBID], + [WDBA_dwCatalogID] = [dwCatalogID], + [WDBA_dwParentID] = [dwParentID], + [WDBA_dwParentDBID] = [dwParentDBID], + [WDBA_dwCreatorID] = [dwCreatorID], + [WDBA_szCreatorName] = [szCreatorName], + [WDBA_dwVersionNumber] = [dwVersionNumber], + [WDBA_dwVersionID] = [dwVersionID], + [WDBA_szLongName] = [szLongName], + [WDBA_szUpperLongName] = [szUpperLongName], + [WDBA_szShortName] = [szShortName], + [WDBA_szUpperShortName] = [szUpperShortName], + [WDBA_dwSize] = [dwSize], + [WDBA_decCreationTime] = [decCreationTime], + [WDBA_decAccessTime] = [decAccessTime], + [WDBA_decChangedTime] = [decChangedTime], + [WDBA_dwChangeCount] = [dwChangeCount], + [WDBA_dwFSFlags] = [dwFSFlags], + [WDBA_dwFlags] = [dwFlags], + [WDBA_dwOwnerID] = [dwOwnerID], + [WDBA_dwOwnerDBID] = [dwOwnerDBID], + [WDBA_dwWorkLockUserID] = [dwWorkLockUserID], + [WDBA_dwWorkLockUserDBID] = [dwWorkLockUserDBID], + [WDBA_dwFlags2] = [dwFlags2], + [WDBA_dwUserFlags] = [dwUserFlags], + [WDBA_dwEditDate] = [dwEditDate], + [WDBA_dwArchiveDate] = [dwArchiveDate], + [WDBA_szReference] = [szReference], + [WDBA_dwEditPeriod] = [dwEditPeriod], + [WDBA_dwArchivePeriod] = [dwArchivePeriod], + [WDBA_dwTypeAssignDate] = [dwTypeAssignDate], + [WDBA_dwChangeDate] = [dwChangeDate], + [WDBA_dwCreationDate] = [dwCreationDate], + [WDBA_dwCreation_Time] = [dwCreation_Time], + [WDBA_dwChange_Time] = [dwChange_Time], + [WDBA_dwTypeAssign_Time] = [dwTypeAssign_Time], + [WDBA_dwAccessListID] = [dwAccessListID], + [WDBA_dwAccessListDBID] = [dwAccessListDBID], + [WDBA_szDisplay_Name] = [szDisplay_Name], + [WDBA_dwILMRetention] = [dwILMRetention], + [WDBA_szFile_Ext] = [szFile_Ext], + [WDBA_szWM_Store] = [szWM_Store], + [WDBA_szText00] = [szText00], + [WDBA_szText01] = [szText01], + [WDBA_szText02] = [szText02], + [WDBA_szText03] = [szText03], + [WDBA_szText04] = [szText04], + [WDBA_szText05] = [szText05], + [WDBA_szText06] = [szText06], + [WDBA_szText07] = [szText07], + [WDBA_szText08] = [szText08], + [WDBA_szText09] = [szText09], + [WDBA_szText10] = [szText10], + [WDBA_szText11] = [szText11], + [WDBA_szText12] = [szText12], + [WDBA_szText13] = [szText13], + [WDBA_szText14] = [szText14], + [WDBA_szText15] = [szText15], + [WDBA_szText16] = [szText16], + [WDBA_szText17] = [szText17], + [WDBA_szText18] = [szText18], + [WDBA_szText19] = [szText19], + [WDBA_szText20] = [szText20], + [WDBA_szText21] = [szText21], + [WDBA_szText22] = [szText22], + [WDBA_szText23] = [szText23], + [WDBA_szText24] = [szText24], + [WDBA_szText25] = [szText25], + [WDBA_szText26] = [szText26], + [WDBA_szText27] = [szText27], + [WDBA_szText28] = [szText28], + [WDBA_szText29] = [szText29], + [WDBA_szText30] = [szText30], + [WDBA_szText31] = [szText31], + [WDBA_szText32] = [szText32], + [WDBA_szText33] = [szText33], + [WDBA_szText34] = [szText34], + [WDBA_szText35] = [szText35], + [WDBA_szText36] = [szText36], + [WDBA_szText37] = [szText37], + [WDBA_szText38] = [szText38], + [WDBA_szText39] = [szText39], + [WDBA_dwInteger00] = [dwInteger00], + [WDBA_dwInteger01] = [dwInteger01], + [WDBA_dwInteger02] = [dwInteger02], + [WDBA_dwInteger03] = [dwInteger03], + [WDBA_dwInteger04] = [dwInteger04], + [WDBA_dwInteger05] = [dwInteger05], + [WDBA_dwInteger06] = [dwInteger06], + [WDBA_dwInteger07] = [dwInteger07], + [WDBA_dwInteger08] = [dwInteger08], + [WDBA_dwInteger09] = [dwInteger09], + [WDBA_dwInteger10] = [dwInteger10], + [WDBA_dwInteger11] = [dwInteger11], + [WDBA_dwInteger12] = [dwInteger12], + [WDBA_dwInteger13] = [dwInteger13], + [WDBA_dwInteger14] = [dwInteger14], + [WDBA_dwInteger15] = [dwInteger15], + [WDBA_dwInteger16] = [dwInteger16], + [WDBA_dwInteger17] = [dwInteger17], + [WDBA_dwInteger18] = [dwInteger18], + [WDBA_dwInteger19] = [dwInteger19], + [WDBA_dwInteger20] = [dwInteger20], + [WDBA_dwInteger21] = [dwInteger21], + [WDBA_dwInteger22] = [dwInteger22], + [WDBA_dwInteger23] = [dwInteger23], + [WDBA_dwInteger24] = [dwInteger24], + [WDBA_lfFloat00] = [lfFloat00], + [WDBA_lfFloat01] = [lfFloat01], + [WDBA_lfFloat02] = [lfFloat02], + [WDBA_lfFloat03] = [lfFloat03], + [WDBA_lfFloat04] = [lfFloat04], + [WDBA_lfFloat05] = [lfFloat05], + [WDBA_lfFloat06] = [lfFloat06], + [WDBA_lfFloat07] = [lfFloat07], + [WDBA_lfFloat08] = [lfFloat08], + [WDBA_lfFloat09] = [lfFloat09], + [WDBA_lfFloat10] = [lfFloat10], + [WDBA_lfFloat11] = [lfFloat11], + [WDBA_lfFloat12] = [lfFloat12], + [WDBA_lfFloat13] = [lfFloat13], + [WDBA_lfFloat14] = [lfFloat14], + [WDBA_blBool00] = [blBool00], + [WDBA_blBool01] = [blBool01], + [WDBA_blBool02] = [blBool02], + [WDBA_blBool03] = [blBool03], + [WDBA_blBool04] = [blBool04], + [WDBA_dwDate00] = [dwDate00], + [WDBA_dwDate01] = [dwDate01], + [WDBA_dwDate02] = [dwDate02], + [WDBA_dwDate03] = [dwDate03], + [WDBA_dwDate04] = [dwDate04], + [WDBA_dwDate05] = [dwDate05], + [WDBA_dwDate06] = [dwDate06], + [WDBA_dwDate07] = [dwDate07], + [WDBA_dwDate08] = [dwDate08], + [WDBA_dwDate09] = [dwDate09], + [WDBA_decTimeStamp00] = [decTimeStamp00], + [WDBA_decTimeStamp01] = [decTimeStamp01], + [WDBA_decCurrency00] = [decCurrency00], + [WDBA_wmVar00] = [wmVar00], + [WDBA_wmVar01] = [wmVar01], + [WDBA_wmVar02] = [wmVar02], + [WDBA_wmVar03] = [wmVar03], + [WDBA_wmVar04] = [wmVar04], + [WDBA_wmVar05] = [wmVar05], + [WDBA_wmVar06] = [wmVar06], + [WDBA_wmVar07] = [wmVar07], + [WDBA_wmVar08] = [wmVar08], + [WDBA_wmVar09] = [wmVar09], + [WDBA_wmVar10] = [wmVar10], + [WDBA_wmVar11] = [wmVar11], + [WDBA_wmVar12] = [wmVar12], + [WDBA_wmVar13] = [wmVar13], + [WDBA_wmVar14] = [wmVar14], + [WDBA_wmVar15] = [wmVar15], + [WDBA_wmVar16] = [wmVar16], + [WDBA_wmVar17] = [wmVar17], + [WDBA_wmVar18] = [wmVar18], + [WDBA_wmVar19] = [wmVar19], + [WDBA_wmVar20] = [wmVar20], + [WDBA_wmVar21] = [wmVar21], + [WDBA_wmVar22] = [wmVar22], + [WDBA_wmVar23] = [wmVar23], + [WDBA_wmVar24] = [wmVar24], + [WDBA_wmVar25] = [wmVar25], + [WDBA_wmVar26] = [wmVar26], + [WDBA_wmVar27] = [wmVar27], + [WDBA_wmVar28] = [wmVar28], + [WDBA_wmVar29] = [wmVar29] + FROM [windreamDB].[dbo].[BaseAttributes] (NOLOCK) + WHERE [dwDocID] = @dwDocID + + END; + + ------------------------------------------------------------------------------------------------------------ RETURN;