Skip to content

Commit b7a3082

Browse files
committed
Merge pull request #22 from ko4life-net/fix-turkish-collation
Fix inconsistent case sensitivity issues
2 parents 4bf1b11 + c28aaaa commit b7a3082

8 files changed

+1436
-0
lines changed

src/migration/18_fix_case_sensitivity_errors.sql

Lines changed: 481 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
diff --git a/src/procedure/CHECK_KNIGHTS.sql b/src/procedure/CHECK_KNIGHTS.sql
2+
index 127d07e..0aa8e87 100644
3+
--- a/src/procedure/CHECK_KNIGHTS.sql
4+
+++ b/src/procedure/CHECK_KNIGHTS.sql
5+
@@ -23,7 +23,7 @@ WHILE @@fetch_status = 0
6+
IF @ROW = 1
7+
BEGIN
8+
BEGIN TRAN
9+
- DELETE FROM KNIGHTS WHERE IDNum = @knightsindex
10+
+ DELETE FROM KNIGHTS WHERE IDNum = @KnightsIndex
11+
12+
IF @@ERROR != 0
13+
BEGIN
14+
@@ -31,7 +31,7 @@ WHILE @@fetch_status = 0
15+
END
16+
ELSE
17+
BEGIN
18+
- UPDATE USERDATA SET Knights = 0, Fame = 0 WHERE Knights = @knightsindex
19+
+ UPDATE USERDATA SET Knights = 0, Fame = 0 WHERE Knights = @KnightsIndex
20+
DELETE FROM KNIGHTS_USER WHERE [sIDNum] = @KnightsIndex
21+
END
22+
COMMIT TRAN
23+
diff --git a/src/procedure/DELETE_CHAR.sql b/src/procedure/DELETE_CHAR.sql
24+
index 59b29c6..45b8554 100644
25+
--- a/src/procedure/DELETE_CHAR.sql
26+
+++ b/src/procedure/DELETE_CHAR.sql
27+
@@ -67,15 +67,15 @@ DECLARE @bySkill binary(10), @byItem binary(400), @bySerial binary(400), @Member
28+
BEGIN TRAN
29+
30+
IF @index = 0
31+
- UPDATE ACCOUNT_CHAR SET strCHARID1 = NULL, bCharNum = bCharNum - 1 WHERE strAccountID = @AccountID
32+
+ UPDATE ACCOUNT_CHAR SET strCharID1 = NULL, bCharNum = bCharNum - 1 WHERE strAccountID = @AccountID
33+
IF @index = 1
34+
- UPDATE ACCOUNT_CHAR SET strCHARID2 = NULL, bCharNum = bCharNum - 1 WHERE strAccountID = @AccountID
35+
+ UPDATE ACCOUNT_CHAR SET strCharID2 = NULL, bCharNum = bCharNum - 1 WHERE strAccountID = @AccountID
36+
IF @index = 2
37+
- UPDATE ACCOUNT_CHAR SET strCHARID3 = NULL, bCharNum = bCharNum - 1 WHERE strAccountID = @AccountID
38+
+ UPDATE ACCOUNT_CHAR SET strCharID3 = NULL, bCharNum = bCharNum - 1 WHERE strAccountID = @AccountID
39+
IF @index = 3
40+
- UPDATE ACCOUNT_CHAR SET strCHARID4 = NULL, bCharNum = bCharNum - 1 WHERE strAccountID = @AccountID
41+
+ UPDATE ACCOUNT_CHAR SET strCharID4 = NULL, bCharNum = bCharNum - 1 WHERE strAccountID = @AccountID
42+
IF @index = 4
43+
- UPDATE ACCOUNT_CHAR SET strCHARID5 = NULL, bCharNum = bCharNum - 1 WHERE strAccountID = @AccountID
44+
+ UPDATE ACCOUNT_CHAR SET strCharID5 = NULL, bCharNum = bCharNum - 1 WHERE strAccountID = @AccountID
45+
46+
IF @@ERROR != 0
47+
BEGIN
48+
@@ -85,11 +85,11 @@ IF @@ERROR != 0
49+
END
50+
51+
SELECT
52+
- @charid1 = strCHARID1,
53+
- @charid2 = strCHARID2,
54+
- @charid3 = strCHARID3,
55+
- @charid4 = strCHARID4,
56+
- @charid5 = strCHARID5
57+
+ @charid1 = strCharID1,
58+
+ @charid2 = strCharID2,
59+
+ @charid3 = strCharID3,
60+
+ @charid4 = strCharID4,
61+
+ @charid5 = strCharID5
62+
FROM ACCOUNT_CHAR
63+
WHERE strAccountID = @AccountID
64+
-- 캐릭터가 하나도 없으면 해당 레코드를 지운다.. -> 국가선택 다시 할수 있다
65+
@@ -142,7 +142,7 @@ FROM USERDATA WHERE strUserId = @CharID
66+
67+
INSERT INTO DELETED_USERDATA (
68+
strAccountID,
69+
- strUserID,
70+
+ strUserId,
71+
Nation,
72+
Race,
73+
[Class],
74+
@@ -223,7 +223,7 @@ IF @@ERROR != 0
75+
RETURN
76+
END
77+
78+
-DELETE FROM KNIGHTS_USER WHERE strUserId = @CharID
79+
+DELETE FROM KNIGHTS_USER WHERE strUserID = @CharID
80+
SELECT @Members = Members FROM KNIGHTS WHERE IDNum = @Knights
81+
IF @Members <= 1
82+
UPDATE KNIGHTS SET Members = 1 WHERE IDNum = @Knights
83+
diff --git a/src/procedure/EDITER_KNIGHTS.sql b/src/procedure/EDITER_KNIGHTS.sql
84+
index 95c6324..3946216 100644
85+
--- a/src/procedure/EDITER_KNIGHTS.sql
86+
+++ b/src/procedure/EDITER_KNIGHTS.sql
87+
@@ -26,11 +26,11 @@ WHILE @@fetch_status = 0
88+
SELECT @ROW = COUNT([strUserId]) FROM [USERDATA] WHERE Knights = @KnightsIndex
89+
IF @ROW != 0
90+
BEGIN
91+
- UPDATE KNIGHTS SET [Members] = @Row WHERE IDNum = @KnightsIndex
92+
+ UPDATE KNIGHTS SET [Members] = @ROW WHERE IDNum = @KnightsIndex
93+
END
94+
ELSE
95+
BEGIN
96+
- DELETE FROM KNIGHTS WHERE IDNum = @knightsindex
97+
+ DELETE FROM KNIGHTS WHERE IDNum = @KnightsIndex
98+
END
99+
100+
FETCH NEXT FROM job1
101+
diff --git a/src/procedure/EXEC_KNIGHTS_USER.sql b/src/procedure/EXEC_KNIGHTS_USER.sql
102+
index ba48468..36bd632 100644
103+
--- a/src/procedure/EXEC_KNIGHTS_USER.sql
104+
+++ b/src/procedure/EXEC_KNIGHTS_USER.sql
105+
@@ -9,27 +9,27 @@ CREATE PROCEDURE [dbo].[EXEC_KNIGHTS_USER]
106+
AS
107+
108+
SET NOCOUNT ON
109+
-DECLARE @strUserID char(21)
110+
+DECLARE @strUserId char(21)
111+
DECLARE @KnightsIndex smallint
112+
DECLARE job1 CURSOR FOR
113+
114+
SELECT
115+
- strUserID,
116+
+ strUserId,
117+
Knights
118+
FROM USERDATA
119+
120+
OPEN job1
121+
FETCH NEXT FROM job1
122+
-INTO @strUserID, @KnightsIndex
123+
+INTO @strUserId, @KnightsIndex
124+
WHILE @@fetch_status = 0
125+
BEGIN
126+
IF @KnightsIndex != 0
127+
BEGIN
128+
- INSERT INTO KNIGHTS_USER (sIDNum, strUserID) VALUES (@KnightsIndex, @strUserID)
129+
+ INSERT INTO KNIGHTS_USER (sIDNum, strUserID) VALUES (@KnightsIndex, @strUserId)
130+
END
131+
132+
FETCH NEXT FROM job1
133+
- INTO @strUserID, @KnightsIndex
134+
+ INTO @strUserId, @KnightsIndex
135+
END
136+
CLOSE job1
137+
DEALLOCATE job1
138+
diff --git a/src/procedure/LOAD_CHAR_INFO.sql b/src/procedure/LOAD_CHAR_INFO.sql
139+
index 6e70027..5e4f795 100644
140+
--- a/src/procedure/LOAD_CHAR_INFO.sql
141+
+++ b/src/procedure/LOAD_CHAR_INFO.sql
142+
@@ -22,7 +22,7 @@ IF @nRet = 0
143+
Face,
144+
Zone,
145+
byItem
146+
- FROM USERDATA WHERE strUserID = @CharId
147+
+ FROM USERDATA WHERE strUserId = @CharId
148+
149+
SET @nRet = 1
150+
RETURN
151+
diff --git a/src/procedure/RANK_KNIGHTS.sql b/src/procedure/RANK_KNIGHTS.sql
152+
index 019388f..67d1959 100644
153+
--- a/src/procedure/RANK_KNIGHTS.sql
154+
+++ b/src/procedure/RANK_KNIGHTS.sql
155+
@@ -21,9 +21,9 @@ WHILE @@fetch_status = 0
156+
BEGIN
157+
158+
SET @SumLoyalty = 0
159+
- SELECT @SumLoyalty = SUM(Loyalty) FROM USERDATA WHERE Knights = @Knightsindex
160+
+ SELECT @SumLoyalty = SUM(Loyalty) FROM USERDATA WHERE Knights = @KnightsIndex
161+
IF @SumLoyalty != 0
162+
- UPDATE KNIGHTS SET Points = @SumLoyalty WHERE IDNum = @knightsindex
163+
+ UPDATE KNIGHTS SET Points = @SumLoyalty WHERE IDNum = @KnightsIndex
164+
165+
FETCH NEXT FROM job1
166+
INTO @KnightsIndex
Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
-- Alter procedures to uppercase all fetch_status usages.
2+
--
3+
-- Altered procedures:
4+
-- - CHECK_KNIGHTS
5+
-- - EDITER_KNIGHTS
6+
-- - EXEC_KNIGHTS_USER
7+
-- - RANK_KNIGHTS
8+
9+
--------------------------------------------------------------------------------------------------
10+
-- CHECK_KNIGHTS
11+
SET ANSI_NULLS OFF
12+
GO
13+
SET QUOTED_IDENTIFIER ON
14+
GO
15+
16+
ALTER PROCEDURE [dbo].[CHECK_KNIGHTS]
17+
AS
18+
19+
SET NOCOUNT ON
20+
DECLARE @KnightsIndex smallint
21+
DECLARE job1 CURSOR FOR
22+
23+
SELECT IDNum FROM KNIGHTS
24+
25+
OPEN job1
26+
FETCH NEXT FROM job1
27+
INTO @KnightsIndex
28+
WHILE @@FETCH_STATUS = 0
29+
BEGIN
30+
DECLARE @ROW int
31+
32+
SELECT @ROW = Members FROM [KNIGHTS] WHERE [IDNum] = @KnightsIndex
33+
IF @ROW = 1
34+
BEGIN
35+
BEGIN TRAN
36+
DELETE FROM KNIGHTS WHERE IDNum = @KnightsIndex
37+
38+
IF @@ERROR != 0
39+
BEGIN
40+
ROLLBACK TRAN
41+
END
42+
ELSE
43+
BEGIN
44+
UPDATE USERDATA SET Knights = 0, Fame = 0 WHERE Knights = @KnightsIndex
45+
DELETE FROM KNIGHTS_USER WHERE [sIDNum] = @KnightsIndex
46+
END
47+
COMMIT TRAN
48+
END
49+
50+
FETCH NEXT FROM job1
51+
INTO @KnightsIndex
52+
END
53+
CLOSE job1
54+
DEALLOCATE job1
55+
SET NOCOUNT OFF
56+
57+
GO
58+
59+
--------------------------------------------------------------------------------------------------
60+
-- EDITER_KNIGHTS
61+
SET ANSI_NULLS OFF
62+
GO
63+
SET QUOTED_IDENTIFIER OFF
64+
GO
65+
66+
-- Create sungyong
67+
68+
ALTER PROCEDURE [dbo].[EDITER_KNIGHTS]
69+
AS
70+
71+
SET NOCOUNT ON
72+
DECLARE @KnightsIndex smallint
73+
DECLARE job1 CURSOR FOR
74+
75+
SELECT IDNum FROM KNIGHTS
76+
77+
OPEN job1
78+
FETCH NEXT FROM job1
79+
INTO @KnightsIndex
80+
WHILE @@FETCH_STATUS = 0
81+
BEGIN
82+
DECLARE @LEVEL int
83+
DECLARE @ROW int
84+
SET @LEVEL = 0
85+
86+
SELECT @ROW = COUNT([strUserId]) FROM [USERDATA] WHERE Knights = @KnightsIndex
87+
IF @ROW != 0
88+
BEGIN
89+
UPDATE KNIGHTS SET [Members] = @ROW WHERE IDNum = @KnightsIndex
90+
END
91+
ELSE
92+
BEGIN
93+
DELETE FROM KNIGHTS WHERE IDNum = @KnightsIndex
94+
END
95+
96+
FETCH NEXT FROM job1
97+
INTO @KnightsIndex
98+
END
99+
CLOSE job1
100+
DEALLOCATE job1
101+
SET NOCOUNT OFF
102+
103+
GO
104+
105+
--------------------------------------------------------------------------------------------------
106+
-- EXEC_KNIGHTS_USER
107+
SET ANSI_NULLS OFF
108+
GO
109+
SET QUOTED_IDENTIFIER OFF
110+
GO
111+
112+
-- create by sungyong 2002.09.16
113+
114+
ALTER PROCEDURE [dbo].[EXEC_KNIGHTS_USER]
115+
AS
116+
117+
SET NOCOUNT ON
118+
DECLARE @strUserId char(21)
119+
DECLARE @KnightsIndex smallint
120+
DECLARE job1 CURSOR FOR
121+
122+
SELECT
123+
strUserId,
124+
Knights
125+
FROM USERDATA
126+
127+
OPEN job1
128+
FETCH NEXT FROM job1
129+
INTO @strUserId, @KnightsIndex
130+
WHILE @@FETCH_STATUS = 0
131+
BEGIN
132+
IF @KnightsIndex != 0
133+
BEGIN
134+
INSERT INTO KNIGHTS_USER (sIDNum, strUserID) VALUES (@KnightsIndex, @strUserId)
135+
END
136+
137+
FETCH NEXT FROM job1
138+
INTO @strUserId, @KnightsIndex
139+
END
140+
CLOSE job1
141+
DEALLOCATE job1
142+
SET NOCOUNT OFF
143+
144+
GO
145+
146+
--------------------------------------------------------------------------------------------------
147+
-- RANK_KNIGHTS
148+
SET ANSI_NULLS OFF
149+
GO
150+
SET QUOTED_IDENTIFIER ON
151+
GO
152+
ALTER PROCEDURE [dbo].[RANK_KNIGHTS]
153+
AS
154+
155+
UPDATE KNIGHTS SET Points = 0
156+
157+
SET NOCOUNT ON
158+
DECLARE @KnightsIndex smallint
159+
DECLARE @SumLoyalty int
160+
DECLARE job1 CURSOR FOR
161+
162+
SELECT IDNum FROM KNIGHTS
163+
164+
OPEN job1
165+
FETCH NEXT FROM job1
166+
INTO @KnightsIndex
167+
WHILE @@FETCH_STATUS = 0
168+
BEGIN
169+
170+
SET @SumLoyalty = 0
171+
SELECT @SumLoyalty = SUM(Loyalty) FROM USERDATA WHERE Knights = @KnightsIndex
172+
IF @SumLoyalty != 0
173+
UPDATE KNIGHTS SET Points = @SumLoyalty WHERE IDNum = @KnightsIndex
174+
175+
FETCH NEXT FROM job1
176+
INTO @KnightsIndex
177+
END
178+
CLOSE job1
179+
DEALLOCATE job1
180+
SET NOCOUNT OFF
181+
182+
EXEC KNIGHTS_RATING_UPDATE
183+
184+
DECLARE @Knights_1 smallint
185+
DECLARE @Knights_2 smallint
186+
DECLARE @Knights_3 smallint
187+
DECLARE @Knights_4 smallint
188+
DECLARE @Knights_5 smallint
189+
190+
SELECT @Knights_1 = shIndex FROM KNIGHTS_RATING WHERE nRank = 1
191+
SELECT @Knights_2 = shIndex FROM KNIGHTS_RATING WHERE nRank = 2
192+
SELECT @Knights_3 = shIndex FROM KNIGHTS_RATING WHERE nRank = 3
193+
SELECT @Knights_4 = shIndex FROM KNIGHTS_RATING WHERE nRank = 4
194+
SELECT @Knights_5 = shIndex FROM KNIGHTS_RATING WHERE nRank = 5
195+
196+
UPDATE KNIGHTS SET Ranking = 1 WHERE IDNum = @Knights_1
197+
UPDATE KNIGHTS SET Ranking = 2 WHERE IDNum = @Knights_2
198+
UPDATE KNIGHTS SET Ranking = 3 WHERE IDNum = @Knights_3
199+
UPDATE KNIGHTS SET Ranking = 4 WHERE IDNum = @Knights_4
200+
UPDATE KNIGHTS SET Ranking = 5 WHERE IDNum = @Knights_5
201+
202+
GO

0 commit comments

Comments
 (0)