summaryrefslogtreecommitdiff
path: root/www-apps/trac/files/9138-mysql-key-size-r9405.patch
blob: ab5d4689b5773aa0fee87feb0dd8b5e80f78d352 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
diff --git a/trac/db/mysql_backend.py b/trac/db/mysql_backend.py
--- a/trac/db/mysql_backend.py
+++ b/trac/db/mysql_backend.py
@@ -121,7 +121,9 @@
             name = '`%s`' % c
             table_col = filter((lambda x: x.name == c), table.columns)
             if len(table_col) == 1 and table_col[0].type.lower() == 'text':
-                if name == '`rev`':
+                if table_col[0].key_size is not None:
+                    name += '(%d)' % table_col[0].key_size
+                elif name == '`rev`':
                     name += '(20)'
                 elif name == '`path`':
                     name += '(255)'
diff --git a/trac/db/schema.py b/trac/db/schema.py
--- a/trac/db/schema.py
+++ b/trac/db/schema.py
@@ -35,11 +35,12 @@
 class Column(object):
     """Declare a table column in a database schema."""
 
-    def __init__(self, name, type='text', size=None, unique=False,
+    def __init__(self, name, type='text', size=None, key_size=None,
                  auto_increment=False):
         self.name = name
         self.type = type
         self.size = size
+        self.key_size = key_size
         self.auto_increment = auto_increment
 
 
diff --git a/trac/db_default.py b/trac/db_default.py
--- a/trac/db_default.py
+++ b/trac/db_default.py
@@ -91,17 +91,17 @@
         Column('value')],
     Table('revision', key=('repos', 'rev'))[
         Column('repos', type='int'),
-        Column('rev'),
+        Column('rev', key_size=20),
         Column('time', type='int64'),
         Column('author'),
         Column('message'),
         Index(['repos', 'time'])],
     Table('node_change', key=('repos', 'rev', 'path', 'change_type'))[
         Column('repos', type='int'),
-        Column('rev'),
-        Column('path'),
+        Column('rev', key_size=20),
+        Column('path', key_size=255),
         Column('node_type', size=1),
-        Column('change_type', size=1),
+        Column('change_type', size=1, key_size=2),
         Column('base_path'),
         Column('base_rev'),
         Index(['repos', 'rev'])],
diff --git a/trac/upgrades/db23.py b/trac/upgrades/db23.py
--- a/trac/upgrades/db23.py
+++ b/trac/upgrades/db23.py
@@ -15,17 +15,17 @@
                 Column('value')],
               Table('revision', key=('repos', 'rev'))[
                 Column('repos'),
-                Column('rev'),
+                Column('rev', key_size=20),
                 Column('time', type='int'),
                 Column('author'),
                 Column('message'),
                 Index(['repos', 'time'])],
               Table('node_change', key=('repos', 'rev', 'path', 'change_type'))[
-                Column('repos'),
-                Column('rev'),
-                Column('path'),
+                Column('repos', key_size=56),
+                Column('rev', key_size=20),
+                Column('path', key_size=255),
                 Column('node_type', size=1),
-                Column('change_type', size=1),
+                Column('change_type', size=1, key_size=2),
                 Column('base_path'),
                 Column('base_rev'),
                 Index(['repos', 'rev'])]]
diff --git a/trac/upgrades/db24.py b/trac/upgrades/db24.py
--- a/trac/upgrades/db24.py
+++ b/trac/upgrades/db24.py
@@ -24,17 +24,17 @@
                   Column('value')],
               Table('revision', key=('repos', 'rev'))[
                   Column('repos', type='int'),
-                  Column('rev'),
+                  Column('rev', key_size=20),
                   Column('time', type='int'),
                   Column('author'),
                   Column('message'),
                   Index(['repos', 'time'])],
               Table('node_change', key=('repos', 'rev', 'path', 'change_type'))[
                   Column('repos', type='int'),
-                  Column('rev'),
-                  Column('path'),
+                  Column('rev', key_size=20),
+                  Column('path', key_size=255),
                   Column('node_type', size=1),
-                  Column('change_type', size=1),
+                  Column('change_type', size=1, key_size=2),
                   Column('base_path'),
                   Column('base_rev'),
                   Index(['repos', 'rev'])]]