Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
7380a4dd
Commit
7380a4dd
authored
Mar 06, 2006
by
mskold@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix for Bug#17888 DD: ADD INDEX causes error 756 'Index on disk column is not supported
parent
dd24ab56
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
20 additions
and
8 deletions
+20
-8
mysql-test/r/ndb_dd_ddl.result
mysql-test/r/ndb_dd_ddl.result
+1
-1
mysql-test/t/ndb_dd_ddl.test
mysql-test/t/ndb_dd_ddl.test
+1
-1
sql/sql_table.cc
sql/sql_table.cc
+18
-6
No files found.
mysql-test/r/ndb_dd_ddl.result
View file @
7380a4dd
...
@@ -175,7 +175,7 @@ CREATE TABLE t1
...
@@ -175,7 +175,7 @@ CREATE TABLE t1
(pk1 INT NOT NULL PRIMARY KEY, b INT NOT NULL, c INT NOT NULL)
(pk1 INT NOT NULL PRIMARY KEY, b INT NOT NULL, c INT NOT NULL)
TABLESPACE ts1 STORAGE DISK
TABLESPACE ts1 STORAGE DISK
ENGINE NDB;
ENGINE NDB;
CREATE INDEX c on t1(c);
CREATE INDEX c on t1(
b,
c);
DROP TABLE t1;
DROP TABLE t1;
ALTER TABLESPACE ts1
ALTER TABLESPACE ts1
DROP DATAFILE 'datafile2.dat'
DROP DATAFILE 'datafile2.dat'
...
...
mysql-test/t/ndb_dd_ddl.test
View file @
7380a4dd
...
@@ -263,7 +263,7 @@ CREATE TABLE t1
...
@@ -263,7 +263,7 @@ CREATE TABLE t1
TABLESPACE
ts1
STORAGE
DISK
TABLESPACE
ts1
STORAGE
DISK
ENGINE
NDB
;
ENGINE
NDB
;
CREATE
INDEX
c
on
t1
(
c
);
CREATE
INDEX
c
on
t1
(
b
,
c
);
DROP
TABLE
t1
;
DROP
TABLE
t1
;
...
...
sql/sql_table.cc
View file @
7380a4dd
...
@@ -3706,6 +3706,8 @@ static uint compare_tables(TABLE *table, List<create_field> *create_list,
...
@@ -3706,6 +3706,8 @@ static uint compare_tables(TABLE *table, List<create_field> *create_list,
uint
changes
=
0
,
tmp
;
uint
changes
=
0
,
tmp
;
List_iterator_fast
<
create_field
>
new_field_it
(
*
create_list
);
List_iterator_fast
<
create_field
>
new_field_it
(
*
create_list
);
create_field
*
new_field
;
create_field
*
new_field
;
KEY_PART_INFO
*
key_part
;
KEY_PART_INFO
*
end
;
DBUG_ENTER
(
"compare_tables"
);
DBUG_ENTER
(
"compare_tables"
);
/*
/*
...
@@ -3833,9 +3835,14 @@ static uint compare_tables(TABLE *table, List<create_field> *create_list,
...
@@ -3833,9 +3835,14 @@ static uint compare_tables(TABLE *table, List<create_field> *create_list,
/* Key modified. Add the offset of the key to both buffers. */
/* Key modified. Add the offset of the key to both buffers. */
index_drop_buffer
[(
*
index_drop_count
)
++
]
=
table_key
-
table
->
key_info
;
index_drop_buffer
[(
*
index_drop_count
)
++
]
=
table_key
-
table
->
key_info
;
index_add_buffer
[(
*
index_add_count
)
++
]
=
new_key
-
key_info_buffer
;
index_add_buffer
[(
*
index_add_count
)
++
]
=
new_key
-
key_info_buffer
;
field
=
table
->
field
[
new_key
->
key_part
->
fieldnr
];
key_part
=
new_key
->
key_part
;
// Mark field to be part of new key
end
=
key_part
+
new_key
->
key_parts
;
field
->
add_index
=
1
;
for
(;
key_part
!=
end
;
key_part
++
)
{
// Mark field to be part of new key
field
=
table
->
field
[
key_part
->
fieldnr
];
field
->
add_index
=
1
;
}
DBUG_PRINT
(
"info"
,
(
"index changed: '%s'"
,
table_key
->
name
));
DBUG_PRINT
(
"info"
,
(
"index changed: '%s'"
,
table_key
->
name
));
}
}
/*end of for (; table_key < table_key_end;) */
/*end of for (; table_key < table_key_end;) */
...
@@ -3855,9 +3862,14 @@ static uint compare_tables(TABLE *table, List<create_field> *create_list,
...
@@ -3855,9 +3862,14 @@ static uint compare_tables(TABLE *table, List<create_field> *create_list,
{
{
/* Key not found. Add the offset of the key to the add buffer. */
/* Key not found. Add the offset of the key to the add buffer. */
index_add_buffer
[(
*
index_add_count
)
++
]
=
new_key
-
key_info_buffer
;
index_add_buffer
[(
*
index_add_count
)
++
]
=
new_key
-
key_info_buffer
;
field
=
table
->
field
[
new_key
->
key_part
->
fieldnr
];
key_part
=
new_key
->
key_part
;
// Mark field to be part of new key
end
=
key_part
+
new_key
->
key_parts
;
field
->
add_index
=
1
;
for
(;
key_part
!=
end
;
key_part
++
)
{
// Mark field to be part of new key
field
=
table
->
field
[
key_part
->
fieldnr
];
field
->
add_index
=
1
;
}
DBUG_PRINT
(
"info"
,
(
"index added: '%s'"
,
new_key
->
name
));
DBUG_PRINT
(
"info"
,
(
"index added: '%s'"
,
new_key
->
name
));
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment