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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
49e56364
Commit
49e56364
authored
Jul 22, 2005
by
jimw@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge mysql.com:/home/jimw/my/mysql-4.1-clean
into mysql.com:/home/jimw/my/mysql-5.0-clean
parents
368d3539
535ba76b
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
65 additions
and
19 deletions
+65
-19
mysql-test/r/create.result
mysql-test/r/create.result
+2
-2
mysql-test/r/func_str.result
mysql-test/r/func_str.result
+15
-0
mysql-test/t/create.test
mysql-test/t/create.test
+2
-2
mysql-test/t/func_str.test
mysql-test/t/func_str.test
+11
-0
sql/item_strfunc.cc
sql/item_strfunc.cc
+0
-2
sql/mysql_priv.h
sql/mysql_priv.h
+6
-2
sql/sql_table.cc
sql/sql_table.cc
+9
-5
sql/table.cc
sql/table.cc
+11
-3
sql/unireg.cc
sql/unireg.cc
+9
-3
No files found.
mysql-test/r/create.result
View file @
49e56364
...
...
@@ -37,7 +37,7 @@ Note 1051 Unknown table 't1'
create table t1 (ordid int(8) not null auto_increment, ord varchar(50) not null, primary key (ord,ordid)) engine=heap;
ERROR 42000: Incorrect table definition; there can be only one auto column and it must be defined as a key
create table not_existing_database.test (a int);
Got one of the listed errors
ERROR 42000: Unknown database 'not_existing_database'
create table `a/a` (a int);
ERROR 42000: Incorrect table name 'a/a'
create table `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa int);
...
...
@@ -358,7 +358,7 @@ create table t3 like t1;
create table t3 like mysqltest.t3;
ERROR 42S01: Table 't3' already exists
create table non_existing_database.t1 like t1;
Got one of the listed errors
ERROR 42000: Unknown database 'non_existing_database'
create table t3 like non_existing_table;
ERROR 42S02: Unknown table 'non_existing_table'
create temporary table t3 like t1;
...
...
mysql-test/r/func_str.result
View file @
49e56364
...
...
@@ -879,3 +879,18 @@ drop table t1;
select hex(29223372036854775809), hex(-29223372036854775809);
hex(29223372036854775809) hex(-29223372036854775809)
FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF
create table t1 (i int);
insert into t1 values (1000000000),(1);
select lpad(i, 7, ' ') as t from t1;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def t 253 7 7 Y 128 31 63
t
1000000
1
select rpad(i, 7, ' ') as t from t1;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def t 253 7 7 Y 128 31 63
t
1000000
1
drop table t1;
mysql-test/t/create.test
View file @
49e56364
...
...
@@ -39,7 +39,7 @@ drop table if exists t1;
--
error
1075
create
table
t1
(
ordid
int
(
8
)
not
null
auto_increment
,
ord
varchar
(
50
)
not
null
,
primary
key
(
ord
,
ordid
))
engine
=
heap
;
--
error
104
4
,
1
--
error
104
9
create
table
not_existing_database
.
test
(
a
int
);
--
error
1103
create
table
`a/a`
(
a
int
);
...
...
@@ -305,7 +305,7 @@ select * from t2;
create
table
t3
like
t1
;
--
error
1050
create
table
t3
like
mysqltest
.
t3
;
--
error
ER_DBACCESS_DENIED_ERROR
,
1
--
error
1049
create
table
non_existing_database
.
t1
like
t1
;
--
error
1051
create
table
t3
like
non_existing_table
;
...
...
mysql-test/t/func_str.test
View file @
49e56364
...
...
@@ -613,3 +613,14 @@ drop table t1;
# Bug #9854 hex() and out of range handling
#
select
hex
(
29223372036854775809
),
hex
(
-
29223372036854775809
);
#
# Bug #11311: Incorrect length returned from LPAD() and RPAD()
#
create
table
t1
(
i
int
);
insert
into
t1
values
(
1000000000
),(
1
);
--
enable_metadata
select
lpad
(
i
,
7
,
' '
)
as
t
from
t1
;
select
rpad
(
i
,
7
,
' '
)
as
t
from
t1
;
--
disable_metadata
drop
table
t1
;
sql/item_strfunc.cc
View file @
49e56364
...
...
@@ -2076,7 +2076,6 @@ void Item_func_rpad::fix_length_and_dec()
{
ulonglong
length
=
((
ulonglong
)
args
[
1
]
->
val_int
()
*
collation
.
collation
->
mbmaxlen
);
length
=
max
((
ulonglong
)
args
[
0
]
->
max_length
,
length
);
if
(
length
>=
MAX_BLOB_WIDTH
)
{
length
=
MAX_BLOB_WIDTH
;
...
...
@@ -2164,7 +2163,6 @@ void Item_func_lpad::fix_length_and_dec()
{
ulonglong
length
=
((
ulonglong
)
args
[
1
]
->
val_int
()
*
collation
.
collation
->
mbmaxlen
);
length
=
max
((
ulonglong
)
args
[
0
]
->
max_length
,
length
);
if
(
length
>=
MAX_BLOB_WIDTH
)
{
length
=
MAX_BLOB_WIDTH
;
...
...
sql/mysql_priv.h
View file @
49e56364
...
...
@@ -1245,10 +1245,13 @@ void unlock_table_names(THD *thd, TABLE_LIST *table_list,
void
unireg_init
(
ulong
options
);
void
unireg_end
(
void
);
bool
mysql_create_frm
(
THD
*
thd
,
my_string
file_name
,
const
char
*
table
,
const
char
*
db
,
HA_CREATE_INFO
*
create_info
,
List
<
create_field
>
&
create_field
,
uint
key_count
,
KEY
*
key_info
,
handler
*
db_type
);
int
rea_create_table
(
THD
*
thd
,
my_string
file_name
,
HA_CREATE_INFO
*
create_info
,
int
rea_create_table
(
THD
*
thd
,
my_string
file_name
,
const
char
*
table
,
const
char
*
db
,
HA_CREATE_INFO
*
create_info
,
List
<
create_field
>
&
create_field
,
uint
key_count
,
KEY
*
key_info
);
int
format_number
(
uint
inputflag
,
uint
max_length
,
my_string
pos
,
uint
length
,
...
...
@@ -1315,7 +1318,8 @@ ulong make_new_entry(File file,uchar *fileinfo,TYPELIB *formnames,
const
char
*
newname
);
ulong
next_io_size
(
ulong
pos
);
void
append_unescaped
(
String
*
res
,
const
char
*
pos
,
uint
length
);
int
create_frm
(
THD
*
thd
,
char
*
name
,
uint
reclength
,
uchar
*
fileinfo
,
int
create_frm
(
THD
*
thd
,
char
*
name
,
const
char
*
table
,
const
char
*
db
,
uint
reclength
,
uchar
*
fileinfo
,
HA_CREATE_INFO
*
create_info
,
uint
keys
);
void
update_create_info_from_table
(
HA_CREATE_INFO
*
info
,
TABLE
*
form
);
int
rename_file_ext
(
const
char
*
from
,
const
char
*
to
,
const
char
*
ext
);
...
...
sql/sql_table.cc
View file @
49e56364
...
...
@@ -1620,12 +1620,10 @@ bool mysql_create_table(THD *thd,const char *db, const char *table_name,
create_info
->
data_file_name
=
create_info
->
index_file_name
=
0
;
create_info
->
table_options
=
db_options
;
if
(
rea_create_table
(
thd
,
path
,
create_info
,
fields
,
key_count
,
if
(
rea_create_table
(
thd
,
path
,
table_name
,
db
,
create_info
,
fields
,
key_count
,
key_info_buffer
))
{
/* my_error(ER_CANT_CREATE_TABLE,MYF(0),table_name,my_errno); */
goto
end
;
}
if
(
create_info
->
options
&
HA_LEX_CREATE_TMP_TABLE
)
{
/* Open table and put in temporary table list */
...
...
@@ -2660,8 +2658,14 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table,
/*
Create a new table by copying from source table
*/
if
(
my_copy
(
src_path
,
dst_path
,
MYF
(
MY_WME
|
MY_DONT_OVERWRITE_FILE
)))
if
(
my_copy
(
src_path
,
dst_path
,
MYF
(
MY_DONT_OVERWRITE_FILE
)))
{
if
(
my_errno
==
ENOENT
)
my_error
(
ER_BAD_DB_ERROR
,
MYF
(
0
),
db
);
else
my_error
(
ER_CANT_CREATE_FILE
,
MYF
(
0
),
dst_path
,
my_errno
);
goto
err
;
}
/*
As mysql_truncate don't work on a new table at this stage of
...
...
sql/table.cc
View file @
49e56364
...
...
@@ -1343,8 +1343,9 @@ void append_unescaped(String *res, const char *pos, uint length)
/* Create a .frm file */
File
create_frm
(
THD
*
thd
,
register
my_string
name
,
uint
reclength
,
uchar
*
fileinfo
,
HA_CREATE_INFO
*
create_info
,
uint
keys
)
File
create_frm
(
THD
*
thd
,
register
my_string
name
,
const
char
*
table
,
const
char
*
db
,
uint
reclength
,
uchar
*
fileinfo
,
HA_CREATE_INFO
*
create_info
,
uint
keys
)
{
register
File
file
;
ulong
length
;
...
...
@@ -1367,7 +1368,7 @@ File create_frm(THD *thd, register my_string name, uint reclength,
*/
set_if_smaller
(
create_info
->
raid_chunks
,
255
);
if
((
file
=
my_create
(
name
,
CREATE_MODE
,
create_flags
,
MYF
(
MY_WME
)))
>=
0
)
if
((
file
=
my_create
(
name
,
CREATE_MODE
,
create_flags
,
MYF
(
0
)))
>=
0
)
{
uint
key_length
,
tmp_key_length
;
uint
tmp
;
...
...
@@ -1414,6 +1415,13 @@ File create_frm(THD *thd, register my_string name, uint reclength,
}
}
}
else
{
if
(
my_errno
==
ENOENT
)
my_error
(
ER_BAD_DB_ERROR
,
MYF
(
0
),
db
);
else
my_error
(
ER_CANT_CREATE_TABLE
,
MYF
(
0
),
table
,
my_errno
);
}
return
(
file
);
}
/* create_frm */
...
...
sql/unireg.cc
View file @
49e56364
...
...
@@ -55,6 +55,8 @@ static bool make_empty_rec(THD *thd, int file, enum db_type table_type,
mysql_create_frm()
thd Thread handler
file_name Name of file (including database and .frm)
table Name of table
db Name of database
create_info create info parameters
create_fields Fields to create
keys number of keys to create
...
...
@@ -67,6 +69,7 @@ static bool make_empty_rec(THD *thd, int file, enum db_type table_type,
*/
bool
mysql_create_frm
(
THD
*
thd
,
my_string
file_name
,
const
char
*
table
,
const
char
*
db
,
HA_CREATE_INFO
*
create_info
,
List
<
create_field
>
&
create_fields
,
uint
keys
,
KEY
*
key_info
,
...
...
@@ -113,7 +116,7 @@ bool mysql_create_frm(THD *thd, my_string file_name,
}
reclength
=
uint2korr
(
forminfo
+
266
);
if
((
file
=
create_frm
(
thd
,
file_name
,
reclength
,
fileinfo
,
if
((
file
=
create_frm
(
thd
,
file_name
,
table
,
db
,
reclength
,
fileinfo
,
create_info
,
keys
))
<
0
)
{
my_free
((
gptr
)
screen_buff
,
MYF
(
0
));
...
...
@@ -211,9 +214,11 @@ bool mysql_create_frm(THD *thd, my_string file_name,
Create a frm (table definition) file and the tables
SYNOPSIS
mysql_create_frm
()
rea_create_table
()
thd Thread handler
file_name Name of file (including database and .frm)
table Name of table
db Name of database
create_info create info parameters
create_fields Fields to create
keys number of keys to create
...
...
@@ -226,13 +231,14 @@ bool mysql_create_frm(THD *thd, my_string file_name,
*/
int
rea_create_table
(
THD
*
thd
,
my_string
file_name
,
const
char
*
table
,
const
char
*
db
,
HA_CREATE_INFO
*
create_info
,
List
<
create_field
>
&
create_fields
,
uint
keys
,
KEY
*
key_info
)
{
DBUG_ENTER
(
"rea_create_table"
);
if
(
mysql_create_frm
(
thd
,
file_name
,
create_info
,
if
(
mysql_create_frm
(
thd
,
file_name
,
table
,
db
,
create_info
,
create_fields
,
keys
,
key_info
,
NULL
))
DBUG_RETURN
(
1
);
if
(
!
create_info
->
frm_only
&&
ha_create_table
(
file_name
,
create_info
,
0
))
...
...
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