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
f536f361
Commit
f536f361
authored
Jul 15, 2006
by
kostja@bodhi.local
Browse files
Options
Browse Files
Download
Plain Diff
Merge bodhi.local:/opt/local/work/tmp_merge
into bodhi.local:/opt/local/work/mysql-5.1-runtime-merge-5.0
parents
2834bc1e
1c4dffc8
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
126 additions
and
39 deletions
+126
-39
mysql-test/r/func_time.result
mysql-test/r/func_time.result
+6
-6
mysql-test/r/sp-vars.result
mysql-test/r/sp-vars.result
+15
-0
mysql-test/t/func_time.test
mysql-test/t/func_time.test
+5
-5
mysql-test/t/information_schema.test
mysql-test/t/information_schema.test
+36
-1
mysql-test/t/sp-vars.test
mysql-test/t/sp-vars.test
+36
-0
sql/field_conv.cc
sql/field_conv.cc
+8
-3
sql/item.h
sql/item.h
+0
-7
sql/sp_head.cc
sql/sp_head.cc
+14
-4
sql/sql_lex.cc
sql/sql_lex.cc
+0
-4
sql/sql_lex.h
sql/sql_lex.h
+1
-5
sql/sql_parse.cc
sql/sql_parse.cc
+3
-3
sql/sql_show.cc
sql/sql_show.cc
+2
-1
No files found.
mysql-test/r/func_time.result
View file @
f536f361
...
@@ -361,12 +361,6 @@ extract(SECOND FROM "1999-01-02 10:11:12")
...
@@ -361,12 +361,6 @@ extract(SECOND FROM "1999-01-02 10:11:12")
select extract(MONTH FROM "2001-02-00");
select extract(MONTH FROM "2001-02-00");
extract(MONTH FROM "2001-02-00")
extract(MONTH FROM "2001-02-00")
2
2
SELECT DATE_SUB(str_to_date('9999-12-31 00:01:00','%Y-%m-%d %H:%i:%s'), INTERVAL 1 MINUTE);
DATE_SUB(str_to_date('9999-12-31 00:01:00','%Y-%m-%d %H:%i:%s'), INTERVAL 1 MINUTE)
9999-12-31 00:00:00
SELECT DATE_ADD(str_to_date('9999-12-30 23:59:00','%Y-%m-%d %H:%i:%s'), INTERVAL 1 MINUTE);
DATE_ADD(str_to_date('9999-12-30 23:59:00','%Y-%m-%d %H:%i:%s'), INTERVAL 1 MINUTE)
9999-12-31 00:00:00
SELECT EXTRACT(QUARTER FROM '2004-01-15') AS quarter;
SELECT EXTRACT(QUARTER FROM '2004-01-15') AS quarter;
quarter
quarter
1
1
...
@@ -403,6 +397,12 @@ quarter
...
@@ -403,6 +397,12 @@ quarter
SELECT EXTRACT(QUARTER FROM '2004-12-15') AS quarter;
SELECT EXTRACT(QUARTER FROM '2004-12-15') AS quarter;
quarter
quarter
4
4
SELECT DATE_SUB(str_to_date('9999-12-31 00:01:00','%Y-%m-%d %H:%i:%s'), INTERVAL 1 MINUTE);
DATE_SUB(str_to_date('9999-12-31 00:01:00','%Y-%m-%d %H:%i:%s'), INTERVAL 1 MINUTE)
9999-12-31 00:00:00
SELECT DATE_ADD(str_to_date('9999-12-30 23:59:00','%Y-%m-%d %H:%i:%s'), INTERVAL 1 MINUTE);
DATE_ADD(str_to_date('9999-12-30 23:59:00','%Y-%m-%d %H:%i:%s'), INTERVAL 1 MINUTE)
9999-12-31 00:00:00
SELECT "1900-01-01 00:00:00" + INTERVAL 2147483648 SECOND;
SELECT "1900-01-01 00:00:00" + INTERVAL 2147483648 SECOND;
"1900-01-01 00:00:00" + INTERVAL 2147483648 SECOND
"1900-01-01 00:00:00" + INTERVAL 2147483648 SECOND
1968-01-20 03:14:08
1968-01-20 03:14:08
...
...
mysql-test/r/sp-vars.result
View file @
f536f361
...
@@ -1075,3 +1075,18 @@ SELECT f1();
...
@@ -1075,3 +1075,18 @@ SELECT f1();
f1()
f1()
abc
abc
DROP FUNCTION f1;
DROP FUNCTION f1;
DROP PROCEDURE IF EXISTS p1;
CREATE PROCEDURE p1()
BEGIN
DECLARE v_char VARCHAR(255);
DECLARE v_text TEXT DEFAULT '';
SET v_char = 'abc';
SET v_text = v_char;
SET v_char = 'def';
SET v_text = concat(v_text, '|', v_char);
SELECT v_text;
END|
CALL p1();
v_text
abc|def
DROP PROCEDURE p1;
mysql-test/t/func_time.test
View file @
f536f361
...
@@ -143,10 +143,6 @@ select extract(SECOND FROM "1999-01-02 10:11:12");
...
@@ -143,10 +143,6 @@ select extract(SECOND FROM "1999-01-02 10:11:12");
select
extract
(
MONTH
FROM
"2001-02-00"
);
select
extract
(
MONTH
FROM
"2001-02-00"
);
#
#
# MySQL Bugs: #12356: DATE_SUB or DATE_ADD incorrectly returns null
#
SELECT
DATE_SUB
(
str_to_date
(
'9999-12-31 00:01:00'
,
'%Y-%m-%d %H:%i:%s'
),
INTERVAL
1
MINUTE
);
SELECT
DATE_ADD
(
str_to_date
(
'9999-12-30 23:59:00'
,
'%Y-%m-%d %H:%i:%s'
),
INTERVAL
1
MINUTE
);
# test EXTRACT QUARTER (Bug #18100)
# test EXTRACT QUARTER (Bug #18100)
#
#
...
@@ -162,7 +158,11 @@ SELECT EXTRACT(QUARTER FROM '2004-09-15') AS quarter;
...
@@ -162,7 +158,11 @@ SELECT EXTRACT(QUARTER FROM '2004-09-15') AS quarter;
SELECT
EXTRACT
(
QUARTER
FROM
'2004-10-15'
)
AS
quarter
;
SELECT
EXTRACT
(
QUARTER
FROM
'2004-10-15'
)
AS
quarter
;
SELECT
EXTRACT
(
QUARTER
FROM
'2004-11-15'
)
AS
quarter
;
SELECT
EXTRACT
(
QUARTER
FROM
'2004-11-15'
)
AS
quarter
;
SELECT
EXTRACT
(
QUARTER
FROM
'2004-12-15'
)
AS
quarter
;
SELECT
EXTRACT
(
QUARTER
FROM
'2004-12-15'
)
AS
quarter
;
#
# MySQL Bugs: #12356: DATE_SUB or DATE_ADD incorrectly returns null
#
SELECT
DATE_SUB
(
str_to_date
(
'9999-12-31 00:01:00'
,
'%Y-%m-%d %H:%i:%s'
),
INTERVAL
1
MINUTE
);
SELECT
DATE_ADD
(
str_to_date
(
'9999-12-30 23:59:00'
,
'%Y-%m-%d %H:%i:%s'
),
INTERVAL
1
MINUTE
);
#
#
# Test big intervals (Bug #3498)
# Test big intervals (Bug #3498)
...
...
mysql-test/t/information_schema.test
View file @
f536f361
...
@@ -859,7 +859,40 @@ select concat(@a, table_name), @a, table_name
...
@@ -859,7 +859,40 @@ select concat(@a, table_name), @a, table_name
from
information_schema
.
tables
where
table_schema
=
'test'
;
from
information_schema
.
tables
where
table_schema
=
'test'
;
drop
table
t1
,
t2
;
drop
table
t1
,
t2
;
# End of 5.0 tests.
#
# Bug#20230: routine_definition is not null
#
--
disable_warnings
DROP
PROCEDURE
IF
EXISTS
p1
;
DROP
FUNCTION
IF
EXISTS
f1
;
--
enable_warnings
CREATE
PROCEDURE
p1
()
SET
@
a
=
1
;
CREATE
FUNCTION
f1
()
RETURNS
INT
RETURN
@
a
+
1
;
CREATE
USER
mysql_bug20230
@
localhost
;
GRANT
EXECUTE
ON
PROCEDURE
p1
TO
mysql_bug20230
@
localhost
;
GRANT
EXECUTE
ON
FUNCTION
f1
TO
mysql_bug20230
@
localhost
;
SELECT
ROUTINE_NAME
,
ROUTINE_DEFINITION
FROM
INFORMATION_SCHEMA
.
ROUTINES
;
SHOW
CREATE
PROCEDURE
p1
;
SHOW
CREATE
FUNCTION
f1
;
connect
(
conn1
,
localhost
,
mysql_bug20230
,,);
SELECT
ROUTINE_NAME
,
ROUTINE_DEFINITION
FROM
INFORMATION_SCHEMA
.
ROUTINES
;
SHOW
CREATE
PROCEDURE
p1
;
SHOW
CREATE
FUNCTION
f1
;
CALL
p1
();
SELECT
f1
();
disconnect
conn1
;
connection
default
;
DROP
FUNCTION
f1
;
DROP
PROCEDURE
p1
;
DROP
USER
mysql_bug20230
@
localhost
;
--
echo
End
of
5.0
tests
.
#
#
# Show engines
# Show engines
#
#
...
@@ -877,3 +910,5 @@ select user,db from information_schema.processlist;
...
@@ -877,3 +910,5 @@ select user,db from information_schema.processlist;
connection
default
;
connection
default
;
drop
user
user3148
@
localhost
;
drop
user
user3148
@
localhost
;
--
echo
End
of
5.1
tests
.
mysql-test/t/sp-vars.test
View file @
f536f361
...
@@ -1271,3 +1271,39 @@ SELECT f1();
...
@@ -1271,3 +1271,39 @@ SELECT f1();
#
#
DROP
FUNCTION
f1
;
DROP
FUNCTION
f1
;
#
# Bug#17226: Variable set in cursor on first iteration is assigned
# second iterations value
#
# The problem was in incorrect handling of local variables of type
# TEXT (BLOB).
#
--
disable_warnings
DROP
PROCEDURE
IF
EXISTS
p1
;
--
enable_warnings
delimiter
|
;
CREATE
PROCEDURE
p1
()
BEGIN
DECLARE
v_char
VARCHAR
(
255
);
DECLARE
v_text
TEXT
DEFAULT
''
;
SET
v_char
=
'abc'
;
SET
v_text
=
v_char
;
SET
v_char
=
'def'
;
SET
v_text
=
concat
(
v_text
,
'|'
,
v_char
);
SELECT
v_text
;
END
|
delimiter
;
|
CALL
p1
();
DROP
PROCEDURE
p1
;
# End of 5.0 tests.
sql/field_conv.cc
View file @
f536f361
...
@@ -674,9 +674,14 @@ void field_conv(Field *to,Field *from)
...
@@ -674,9 +674,14 @@ void field_conv(Field *to,Field *from)
{
// Be sure the value is stored
{
// Be sure the value is stored
Field_blob
*
blob
=
(
Field_blob
*
)
to
;
Field_blob
*
blob
=
(
Field_blob
*
)
to
;
from
->
val_str
(
&
blob
->
value
);
from
->
val_str
(
&
blob
->
value
);
if
(
!
blob
->
value
.
is_alloced
()
&&
/*
from
->
real_type
()
!=
MYSQL_TYPE_STRING
&&
Copy value if copy_blobs is set, or source is not a string and
from
->
real_type
()
!=
MYSQL_TYPE_VARCHAR
)
we have a pointer to its internal string conversion buffer.
*/
if
(
to
->
table
->
copy_blobs
||
(
!
blob
->
value
.
is_alloced
()
&&
from
->
real_type
()
!=
MYSQL_TYPE_STRING
&&
from
->
real_type
()
!=
MYSQL_TYPE_VARCHAR
))
blob
->
value
.
copy
();
blob
->
value
.
copy
();
blob
->
store
(
blob
->
value
.
ptr
(),
blob
->
value
.
length
(),
from
->
charset
());
blob
->
store
(
blob
->
value
.
ptr
(),
blob
->
value
.
length
(),
from
->
charset
());
return
;
return
;
...
...
sql/item.h
View file @
f536f361
...
@@ -890,13 +890,6 @@ protected:
...
@@ -890,13 +890,6 @@ protected:
public:
public:
LEX_STRING
m_name
;
LEX_STRING
m_name
;
/*
Buffer, pointing to the string value of the item. We need it to
protect internal buffer from changes. See comment to analogous
member in Item_param for more details.
*/
String
str_value_ptr
;
public:
public:
#ifndef DBUG_OFF
#ifndef DBUG_OFF
/*
/*
...
...
sql/sp_head.cc
View file @
f536f361
...
@@ -1933,8 +1933,11 @@ sp_head::show_create_procedure(THD *thd)
...
@@ -1933,8 +1933,11 @@ sp_head::show_create_procedure(THD *thd)
field_list
.
push_back
(
new
Item_empty_string
(
"Procedure"
,
NAME_LEN
));
field_list
.
push_back
(
new
Item_empty_string
(
"Procedure"
,
NAME_LEN
));
field_list
.
push_back
(
new
Item_empty_string
(
"sql_mode"
,
sql_mode_len
));
field_list
.
push_back
(
new
Item_empty_string
(
"sql_mode"
,
sql_mode_len
));
// 1024 is for not to confuse old clients
// 1024 is for not to confuse old clients
field_list
.
push_back
(
new
Item_empty_string
(
"Create Procedure"
,
Item_empty_string
*
definition
=
max
(
buffer
.
length
(),
1024
)));
new
Item_empty_string
(
"Create Procedure"
,
max
(
buffer
.
length
(),
1024
));
definition
->
maybe_null
=
TRUE
;
field_list
.
push_back
(
definition
);
if
(
protocol
->
send_fields
(
&
field_list
,
Protocol
::
SEND_NUM_ROWS
|
if
(
protocol
->
send_fields
(
&
field_list
,
Protocol
::
SEND_NUM_ROWS
|
Protocol
::
SEND_EOF
))
Protocol
::
SEND_EOF
))
DBUG_RETURN
(
1
);
DBUG_RETURN
(
1
);
...
@@ -1943,6 +1946,8 @@ sp_head::show_create_procedure(THD *thd)
...
@@ -1943,6 +1946,8 @@ sp_head::show_create_procedure(THD *thd)
protocol
->
store
((
char
*
)
sql_mode_str
,
sql_mode_len
,
system_charset_info
);
protocol
->
store
((
char
*
)
sql_mode_str
,
sql_mode_len
,
system_charset_info
);
if
(
full_access
)
if
(
full_access
)
protocol
->
store
(
m_defstr
.
str
,
m_defstr
.
length
,
system_charset_info
);
protocol
->
store
(
m_defstr
.
str
,
m_defstr
.
length
,
system_charset_info
);
else
protocol
->
store_null
();
res
=
protocol
->
write
();
res
=
protocol
->
write
();
send_eof
(
thd
);
send_eof
(
thd
);
...
@@ -1998,8 +2003,11 @@ sp_head::show_create_function(THD *thd)
...
@@ -1998,8 +2003,11 @@ sp_head::show_create_function(THD *thd)
&
sql_mode_len
);
&
sql_mode_len
);
field_list
.
push_back
(
new
Item_empty_string
(
"Function"
,
NAME_LEN
));
field_list
.
push_back
(
new
Item_empty_string
(
"Function"
,
NAME_LEN
));
field_list
.
push_back
(
new
Item_empty_string
(
"sql_mode"
,
sql_mode_len
));
field_list
.
push_back
(
new
Item_empty_string
(
"sql_mode"
,
sql_mode_len
));
field_list
.
push_back
(
new
Item_empty_string
(
"Create Function"
,
Item_empty_string
*
definition
=
max
(
buffer
.
length
(),
1024
)));
new
Item_empty_string
(
"Create Function"
,
max
(
buffer
.
length
(),
1024
));
definition
->
maybe_null
=
TRUE
;
field_list
.
push_back
(
definition
);
if
(
protocol
->
send_fields
(
&
field_list
,
if
(
protocol
->
send_fields
(
&
field_list
,
Protocol
::
SEND_NUM_ROWS
|
Protocol
::
SEND_EOF
))
Protocol
::
SEND_NUM_ROWS
|
Protocol
::
SEND_EOF
))
DBUG_RETURN
(
1
);
DBUG_RETURN
(
1
);
...
@@ -2008,6 +2016,8 @@ sp_head::show_create_function(THD *thd)
...
@@ -2008,6 +2016,8 @@ sp_head::show_create_function(THD *thd)
protocol
->
store
((
char
*
)
sql_mode_str
,
sql_mode_len
,
system_charset_info
);
protocol
->
store
((
char
*
)
sql_mode_str
,
sql_mode_len
,
system_charset_info
);
if
(
full_access
)
if
(
full_access
)
protocol
->
store
(
m_defstr
.
str
,
m_defstr
.
length
,
system_charset_info
);
protocol
->
store
(
m_defstr
.
str
,
m_defstr
.
length
,
system_charset_info
);
else
protocol
->
store_null
();
res
=
protocol
->
write
();
res
=
protocol
->
write
();
send_eof
(
thd
);
send_eof
(
thd
);
...
...
sql/sql_lex.cc
View file @
f536f361
...
@@ -42,8 +42,6 @@ sys_var *trg_new_row_fake_var= (sys_var*) 0x01;
...
@@ -42,8 +42,6 @@ sys_var *trg_new_row_fake_var= (sys_var*) 0x01;
#define yySkip() lex->ptr++
#define yySkip() lex->ptr++
#define yyLength() ((uint) (lex->ptr - lex->tok_start)-1)
#define yyLength() ((uint) (lex->ptr - lex->tok_start)-1)
pthread_key
(
LEX
*
,
THR_LEX
);
/* Longest standard keyword name */
/* Longest standard keyword name */
#define TOCK_NAME_LENGTH 24
#define TOCK_NAME_LENGTH 24
...
@@ -92,8 +90,6 @@ void lex_init(void)
...
@@ -92,8 +90,6 @@ void lex_init(void)
for
(
i
=
0
;
i
<
array_elements
(
sql_functions
)
;
i
++
)
for
(
i
=
0
;
i
<
array_elements
(
sql_functions
)
;
i
++
)
sql_functions
[
i
].
length
=
(
uchar
)
strlen
(
sql_functions
[
i
].
name
);
sql_functions
[
i
].
length
=
(
uchar
)
strlen
(
sql_functions
[
i
].
name
);
VOID
(
pthread_key_create
(
&
THR_LEX
,
NULL
));
DBUG_VOID_RETURN
;
DBUG_VOID_RETURN
;
}
}
...
...
sql/sql_lex.h
View file @
f536f361
...
@@ -1191,8 +1191,4 @@ extern void lex_start(THD *thd, const uchar *buf, uint length);
...
@@ -1191,8 +1191,4 @@ extern void lex_start(THD *thd, const uchar *buf, uint length);
extern
void
lex_end
(
LEX
*
lex
);
extern
void
lex_end
(
LEX
*
lex
);
extern
int
MYSQLlex
(
void
*
arg
,
void
*
yythd
);
extern
int
MYSQLlex
(
void
*
arg
,
void
*
yythd
);
extern
pthread_key
(
LEX
*
,
THR_LEX
);
#endif
/* MYSQL_SERVER */
#define current_lex (current_thd->lex)
#endif
sql/sql_parse.cc
View file @
f536f361
...
@@ -2431,7 +2431,7 @@ static void reset_one_shot_variables(THD *thd)
...
@@ -2431,7 +2431,7 @@ static void reset_one_shot_variables(THD *thd)
/*
/*
Execute command saved in thd and
current_
lex->sql_command
Execute command saved in thd and lex->sql_command
SYNOPSIS
SYNOPSIS
mysql_execute_command()
mysql_execute_command()
...
@@ -5780,7 +5780,7 @@ bool check_stack_overrun(THD *thd, long margin,
...
@@ -5780,7 +5780,7 @@ bool check_stack_overrun(THD *thd, long margin,
bool
my_yyoverflow
(
short
**
yyss
,
YYSTYPE
**
yyvs
,
ulong
*
yystacksize
)
bool
my_yyoverflow
(
short
**
yyss
,
YYSTYPE
**
yyvs
,
ulong
*
yystacksize
)
{
{
LEX
*
lex
=
current_
lex
;
LEX
*
lex
=
current_thd
->
lex
;
ulong
old_info
=
0
;
ulong
old_info
=
0
;
if
((
uint
)
*
yystacksize
>=
MY_YACC_MAX
)
if
((
uint
)
*
yystacksize
>=
MY_YACC_MAX
)
return
1
;
return
1
;
...
@@ -6245,7 +6245,7 @@ bool add_field_to_list(THD *thd, char *field_name, enum_field_types type,
...
@@ -6245,7 +6245,7 @@ bool add_field_to_list(THD *thd, char *field_name, enum_field_types type,
void
store_position_for_column
(
const
char
*
name
)
void
store_position_for_column
(
const
char
*
name
)
{
{
current_lex
->
last_field
->
after
=
my_const_cast
(
char
*
)
(
name
);
current_
thd
->
lex
->
last_field
->
after
=
my_const_cast
(
char
*
)
(
name
);
}
}
bool
bool
...
...
sql/sql_show.cc
View file @
f536f361
...
@@ -3330,6 +3330,7 @@ bool store_schema_proc(THD *thd, TABLE *table, TABLE *proc_table,
...
@@ -3330,6 +3330,7 @@ bool store_schema_proc(THD *thd, TABLE *table, TABLE *proc_table,
{
{
get_field
(
thd
->
mem_root
,
proc_table
->
field
[
10
],
&
tmp_string
);
get_field
(
thd
->
mem_root
,
proc_table
->
field
[
10
],
&
tmp_string
);
table
->
field
[
7
]
->
store
(
tmp_string
.
ptr
(),
tmp_string
.
length
(),
cs
);
table
->
field
[
7
]
->
store
(
tmp_string
.
ptr
(),
tmp_string
.
length
(),
cs
);
table
->
field
[
7
]
->
set_notnull
();
}
}
table
->
field
[
6
]
->
store
(
STRING_WITH_LEN
(
"SQL"
),
cs
);
table
->
field
[
6
]
->
store
(
STRING_WITH_LEN
(
"SQL"
),
cs
);
table
->
field
[
10
]
->
store
(
STRING_WITH_LEN
(
"SQL"
),
cs
);
table
->
field
[
10
]
->
store
(
STRING_WITH_LEN
(
"SQL"
),
cs
);
...
@@ -5283,7 +5284,7 @@ ST_FIELD_INFO proc_fields_info[]=
...
@@ -5283,7 +5284,7 @@ ST_FIELD_INFO proc_fields_info[]=
{
"ROUTINE_TYPE"
,
9
,
MYSQL_TYPE_STRING
,
0
,
0
,
"Type"
},
{
"ROUTINE_TYPE"
,
9
,
MYSQL_TYPE_STRING
,
0
,
0
,
"Type"
},
{
"DTD_IDENTIFIER"
,
NAME_LEN
,
MYSQL_TYPE_STRING
,
0
,
1
,
0
},
{
"DTD_IDENTIFIER"
,
NAME_LEN
,
MYSQL_TYPE_STRING
,
0
,
1
,
0
},
{
"ROUTINE_BODY"
,
8
,
MYSQL_TYPE_STRING
,
0
,
0
,
0
},
{
"ROUTINE_BODY"
,
8
,
MYSQL_TYPE_STRING
,
0
,
0
,
0
},
{
"ROUTINE_DEFINITION"
,
65535
,
MYSQL_TYPE_STRING
,
0
,
0
,
0
},
{
"ROUTINE_DEFINITION"
,
65535
,
MYSQL_TYPE_STRING
,
0
,
1
,
0
},
{
"EXTERNAL_NAME"
,
NAME_LEN
,
MYSQL_TYPE_STRING
,
0
,
1
,
0
},
{
"EXTERNAL_NAME"
,
NAME_LEN
,
MYSQL_TYPE_STRING
,
0
,
1
,
0
},
{
"EXTERNAL_LANGUAGE"
,
NAME_LEN
,
MYSQL_TYPE_STRING
,
0
,
1
,
0
},
{
"EXTERNAL_LANGUAGE"
,
NAME_LEN
,
MYSQL_TYPE_STRING
,
0
,
1
,
0
},
{
"PARAMETER_STYLE"
,
8
,
MYSQL_TYPE_STRING
,
0
,
0
,
0
},
{
"PARAMETER_STYLE"
,
8
,
MYSQL_TYPE_STRING
,
0
,
0
,
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