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
579cce54
Commit
579cce54
authored
May 15, 2007
by
gluh@mysql.com/eagle.(none)
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
WL#3823 Modify VARIABLE_VALUE columns to VARCHAR within INFORMATION_SCHEMA STATUS tables
parent
353eac95
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
60 additions
and
219 deletions
+60
-219
mysql-test/r/compress.result
mysql-test/r/compress.result
+1
-1
mysql-test/r/information_schema.result
mysql-test/r/information_schema.result
+0
-2
mysql-test/r/openssl_1.result
mysql-test/r/openssl_1.result
+2
-2
mysql-test/r/rpl_packet.result
mysql-test/r/rpl_packet.result
+1
-1
mysql-test/r/status.result
mysql-test/r/status.result
+9
-9
sql/sql_select.cc
sql/sql_select.cc
+1
-2
sql/sql_show.cc
sql/sql_show.cc
+46
-202
No files found.
mysql-test/r/compress.result
View file @
579cce54
...
...
@@ -3,7 +3,7 @@ Variable_name Value
Compression ON
select * from information_schema.session_status where variable_name= 'COMPRESSION';
VARIABLE_NAME VARIABLE_VALUE
COMPRESSION
1.0000000
COMPRESSION
ON
drop table if exists t1,t2,t3,t4;
CREATE TABLE t1 (
Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL,
...
...
mysql-test/r/information_schema.result
View file @
579cce54
...
...
@@ -761,7 +761,6 @@ information_schema COLUMNS COLUMN_DEFAULT
information_schema COLUMNS COLUMN_TYPE
information_schema EVENTS EVENT_DEFINITION
information_schema EVENTS SQL_MODE
information_schema GLOBAL_VARIABLES VARIABLE_VALUE
information_schema PARTITIONS PARTITION_EXPRESSION
information_schema PARTITIONS SUBPARTITION_EXPRESSION
information_schema PARTITIONS PARTITION_DESCRIPTION
...
...
@@ -769,7 +768,6 @@ information_schema PLUGINS PLUGIN_DESCRIPTION
information_schema PROCESSLIST INFO
information_schema ROUTINES ROUTINE_DEFINITION
information_schema ROUTINES SQL_MODE
information_schema SESSION_VARIABLES VARIABLE_VALUE
information_schema TRIGGERS ACTION_CONDITION
information_schema TRIGGERS ACTION_STATEMENT
information_schema TRIGGERS SQL_MODE
...
...
mysql-test/r/openssl_1.result
View file @
579cce54
...
...
@@ -73,8 +73,8 @@ variable_name LIKE 'SSL_CALLBACK_CACHE_HITS';
END$$
SELECT variable_name, variable_value FROM thread_status;
variable_name variable_value
SSL_ACCEPTS 0
.0000000
SSL_CALLBACK_CACHE_HITS 0
.0000000
SSL_ACCEPTS 0
SSL_CALLBACK_CACHE_HITS 0
DROP TABLE thread_status;
SET GLOBAL event_scheduler=0;
End of 5.1 tests
...
...
mysql-test/r/rpl_packet.result
View file @
579cce54
...
...
@@ -19,7 +19,7 @@ Variable_name Value
Slave_running ON
select * from information_schema.session_status where variable_name= 'SLAVE_RUNNING';
VARIABLE_NAME VARIABLE_VALUE
SLAVE_RUNNING
1.0000000
SLAVE_RUNNING
ON
drop database DB_NAME_OF_MAX_LENGTH_AKA_NAME_LEN_64_BYTES_____________________;
SET @@global.max_allowed_packet=4096;
SET @@global.net_buffer_length=4096;
...
...
mysql-test/r/status.result
View file @
579cce54
...
...
@@ -5,8 +5,8 @@ Table_locks_immediate 0
Table_locks_waited 0
select * from information_schema.session_status where variable_name like 'Table_lock%';
VARIABLE_NAME VARIABLE_VALUE
TABLE_LOCKS_IMMEDIATE 0
.0000000
TABLE_LOCKS_WAITED 0
.0000000
TABLE_LOCKS_IMMEDIATE 0
TABLE_LOCKS_WAITED 0
SET SQL_LOG_BIN=0;
drop table if exists t1;
create table t1(n int) engine=myisam;
...
...
@@ -22,8 +22,8 @@ Table_locks_immediate 3
Table_locks_waited 1
select * from information_schema.session_status where variable_name like 'Table_lock%';
VARIABLE_NAME VARIABLE_VALUE
TABLE_LOCKS_IMMEDIATE 3
.0000000
TABLE_LOCKS_WAITED 1
.0000000
TABLE_LOCKS_IMMEDIATE 3
TABLE_LOCKS_WAITED 1
drop table t1;
select 1;
1
...
...
@@ -63,7 +63,7 @@ Variable_name Value
Max_used_connections 1
SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME LIKE 'max_used_connections';
VARIABLE_NAME VARIABLE_VALUE
MAX_USED_CONNECTIONS 1
.0000000
MAX_USED_CONNECTIONS 1
SET @save_thread_cache_size=@@thread_cache_size;
SET GLOBAL thread_cache_size=3;
SHOW STATUS LIKE 'max_used_connections';
...
...
@@ -71,26 +71,26 @@ Variable_name Value
Max_used_connections 3
SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME LIKE 'max_used_connections';
VARIABLE_NAME VARIABLE_VALUE
MAX_USED_CONNECTIONS 3
.0000000
MAX_USED_CONNECTIONS 3
FLUSH STATUS;
SHOW STATUS LIKE 'max_used_connections';
Variable_name Value
Max_used_connections 2
SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME LIKE 'max_used_connections';
VARIABLE_NAME VARIABLE_VALUE
MAX_USED_CONNECTIONS 2
.0000000
MAX_USED_CONNECTIONS 2
SHOW STATUS LIKE 'max_used_connections';
Variable_name Value
Max_used_connections 3
SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME LIKE 'max_used_connections';
VARIABLE_NAME VARIABLE_VALUE
MAX_USED_CONNECTIONS 3
.0000000
MAX_USED_CONNECTIONS 3
SHOW STATUS LIKE 'max_used_connections';
Variable_name Value
Max_used_connections 4
SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME LIKE 'max_used_connections';
VARIABLE_NAME VARIABLE_VALUE
MAX_USED_CONNECTIONS 4
.0000000
MAX_USED_CONNECTIONS 4
SET GLOBAL thread_cache_size=@save_thread_cache_size;
show status like 'com_show_status';
Variable_name Value
...
...
sql/sql_select.cc
View file @
579cce54
...
...
@@ -9133,8 +9133,7 @@ Field *create_tmp_field_for_schema(THD *thd, Item *item, TABLE *table)
if
(
item
->
field_type
()
==
MYSQL_TYPE_VARCHAR
)
{
Field
*
field
;
if
(
item
->
max_length
>
MAX_FIELD_VARCHARLENGTH
/
item
->
collation
.
collation
->
mbmaxlen
)
if
(
item
->
max_length
>
MAX_FIELD_VARCHARLENGTH
)
field
=
new
Field_blob
(
item
->
max_length
,
item
->
maybe_null
,
item
->
name
,
item
->
collation
.
collation
);
else
...
...
sql/sql_show.cc
View file @
579cce54
...
...
@@ -4516,9 +4516,19 @@ int fill_variables(THD *thd, TABLE_LIST *tables, COND *cond)
int
res
=
0
;
LEX
*
lex
=
thd
->
lex
;
const
char
*
wild
=
lex
->
wild
?
lex
->
wild
->
ptr
()
:
NullS
;
enum
enum_schema_tables
schema_table_idx
=
get_schema_table_idx
(
tables
->
schema_table
);
enum
enum_var_type
option_type
=
OPT_SESSION
;
bool
upper_case_names
=
(
schema_table_idx
!=
SCH_VARIABLES
);
bool
sorted_vars
=
(
schema_table_idx
==
SCH_VARIABLES
);
if
(
lex
->
option_type
==
OPT_GLOBAL
||
schema_table_idx
==
SCH_GLOBAL_VARIABLES
)
option_type
=
OPT_GLOBAL
;
rw_rdlock
(
&
LOCK_system_variables_hash
);
res
=
show_status_array
(
thd
,
wild
,
enumerate_sys_vars
(
thd
,
TRUE
),
lex
->
option_type
,
0
,
""
,
tables
->
table
,
0
);
res
=
show_status_array
(
thd
,
wild
,
enumerate_sys_vars
(
thd
,
sorted_vars
),
option_type
,
NULL
,
""
,
tables
->
table
,
upper_case_names
);
rw_unlock
(
&
LOCK_system_variables_hash
);
DBUG_RETURN
(
res
);
}
...
...
@@ -4530,16 +4540,34 @@ int fill_status(THD *thd, TABLE_LIST *tables, COND *cond)
LEX
*
lex
=
thd
->
lex
;
const
char
*
wild
=
lex
->
wild
?
lex
->
wild
->
ptr
()
:
NullS
;
int
res
=
0
;
STATUS_VAR
tmp
;
STATUS_VAR
*
tmp1
,
tmp
;
enum
enum_schema_tables
schema_table_idx
=
get_schema_table_idx
(
tables
->
schema_table
);
enum
enum_var_type
option_type
;
bool
upper_case_names
=
(
schema_table_idx
!=
SCH_STATUS
);
if
(
lex
->
option_type
==
OPT_GLOBAL
||
schema_table_idx
==
SCH_GLOBAL_STATUS
)
{
option_type
=
OPT_GLOBAL
;
tmp1
=
&
tmp
;
}
else
{
option_type
=
OPT_SESSION
;
if
(
schema_table_idx
==
SCH_SESSION_STATUS
)
tmp1
=
&
thd
->
status_var
;
else
tmp1
=
thd
->
initial_status_var
;
}
pthread_mutex_lock
(
&
LOCK_status
);
if
(
lex
->
option_type
==
OPT_GLOBAL
)
if
(
option_type
==
OPT_GLOBAL
)
calc_sum_of_all_status
(
&
tmp
);
res
=
show_status_array
(
thd
,
wild
,
(
SHOW_VAR
*
)
all_status_vars
.
buffer
,
OPT_GLOBAL
,
(
lex
->
option_type
==
OPT_GLOBAL
?
&
tmp
:
thd
->
initial_status_var
),
""
,
tables
->
table
,
0
);
option_type
,
tmp1
,
""
,
tables
->
table
,
upper_case_names
);
pthread_mutex_unlock
(
&
LOCK_status
);
DBUG_RETURN
(
res
);
}
...
...
@@ -4782,12 +4810,10 @@ TABLE *create_schema_table(THD *thd, TABLE_LIST *table_list)
/* Don't let unimplemented types pass through. Could be a grave error. */
DBUG_ASSERT
(
fields_info
->
field_type
==
MYSQL_TYPE_STRING
);
/* this should be changed when Item_empty_string is fixed(in 4.1) */
if
(
!
(
item
=
new
Item_empty_string
(
""
,
0
,
cs
)))
if
(
!
(
item
=
new
Item_empty_string
(
""
,
fields_info
->
field_length
,
cs
)))
{
DBUG_RETURN
(
0
);
}
item
->
max_length
=
fields_info
->
field_length
*
cs
->
mbmaxlen
;
item
->
set_name
(
fields_info
->
field_name
,
strlen
(
fields_info
->
field_name
),
cs
);
break
;
...
...
@@ -5228,172 +5254,6 @@ int fill_schema_files(THD *thd, TABLE_LIST *tables, COND *cond)
DBUG_RETURN
(
0
);
}
int
fill_schema_status
(
THD
*
thd
,
SHOW_VAR
*
variables
,
struct
system_status_var
*
status_var
,
const
char
*
prefix
,
TABLE
*
table
)
{
SHOW_VAR
tmp
,
*
var
;
SHOW_TYPE
show_type
;
LEX_STRING
null_lex_str
;
char
buff
[
SHOW_VAR_FUNC_BUFF_SIZE
];
char
name_buf
[
64
],
*
name_pos
;
int
name_len
;
DBUG_ENTER
(
"fill_schema_status"
);
null_lex_str
.
str
=
0
;
null_lex_str
.
length
=
0
;
name_pos
=
strnmov
(
name_buf
,
prefix
,
sizeof
(
name_buf
)
-
1
);
if
(
*
prefix
)
*
name_pos
++=
'_'
;
name_len
=
name_buf
+
sizeof
(
name_buf
)
-
name_pos
;
for
(;
variables
->
name
;
variables
++
)
{
strnmov
(
name_pos
,
variables
->
name
,
name_len
);
name_buf
[
sizeof
(
name_buf
)
-
1
]
=
0
;
make_upper
(
name_buf
);
for
(
var
=
variables
;
var
->
type
==
SHOW_FUNC
;
var
=
&
tmp
)
((
mysql_show_var_func
)(
var
->
value
))(
thd
,
&
tmp
,
buff
);
show_type
=
var
->
type
;
if
(
show_type
==
SHOW_ARRAY
)
{
fill_schema_status
(
thd
,
(
SHOW_VAR
*
)
var
->
value
,
status_var
,
name_buf
,
table
);
}
else
{
char
*
value
=
var
->
value
;
restore_record
(
table
,
s
->
default_values
);
table
->
field
[
0
]
->
store
(
name_buf
,
strlen
(
name_buf
),
system_charset_info
);
if
(
show_type
==
SHOW_SYS
)
{
show_type
=
((
sys_var
*
)
value
)
->
show_type
();
value
=
(
char
*
)
((
sys_var
*
)
value
)
->
value_ptr
(
thd
,
OPT_GLOBAL
,
&
null_lex_str
);
}
switch
(
show_type
)
{
case
SHOW_DOUBLE_STATUS
:
value
=
(
char
*
)
status_var
+
(
ulong
)
value
;
table
->
field
[
1
]
->
store
(
*
(
double
*
)
value
);
break
;
case
SHOW_LONG_STATUS
:
value
=
(
char
*
)
status_var
+
(
ulong
)
value
;
/* fall through */
case
SHOW_LONG
:
case
SHOW_LONG_NOFLUSH
:
/* the difference lies in refresh_status() */
table
->
field
[
1
]
->
store
((
longlong
)
*
(
long
*
)
value
,
false
);
break
;
case
SHOW_LONGLONG
:
table
->
field
[
1
]
->
store
(
*
(
longlong
*
)
value
,
false
);
break
;
case
SHOW_HA_ROWS
:
table
->
field
[
1
]
->
store
((
longlong
)
*
(
ha_rows
*
)
value
,
false
);
break
;
case
SHOW_BOOL
:
table
->
field
[
1
]
->
store
((
longlong
)
*
(
bool
*
)
value
,
false
);
break
;
case
SHOW_MY_BOOL
:
table
->
field
[
1
]
->
store
((
longlong
)
*
(
my_bool
*
)
value
,
false
);
break
;
case
SHOW_INT
:
table
->
field
[
1
]
->
store
((
longlong
)
*
(
uint32
*
)
value
,
false
);
break
;
case
SHOW_HAVE
:
/* always displayed as 0 */
table
->
field
[
1
]
->
store
((
longlong
)
0
,
false
);
break
;
case
SHOW_CHAR_PTR
:
value
=
*
(
char
**
)
value
;
/* fall through */
case
SHOW_CHAR
:
/* always displayed as 0 */
table
->
field
[
1
]
->
store
((
longlong
)
0
,
false
);
break
;
case
SHOW_KEY_CACHE_LONG
:
value
=
(
char
*
)
dflt_key_cache
+
(
ulong
)
value
;
table
->
field
[
1
]
->
store
((
longlong
)
*
(
long
*
)
value
,
false
);
break
;
case
SHOW_KEY_CACHE_LONGLONG
:
value
=
(
char
*
)
dflt_key_cache
+
(
ulong
)
value
;
table
->
field
[
1
]
->
store
(
*
(
longlong
*
)
value
,
false
);
break
;
case
SHOW_UNDEF
:
/* always displayed as 0 */
table
->
field
[
1
]
->
store
((
longlong
)
0
,
false
);
break
;
case
SHOW_SYS
:
/* cannot happen */
default:
DBUG_ASSERT
(
0
);
break
;
}
table
->
field
[
1
]
->
set_notnull
();
if
(
schema_table_store_record
(
thd
,
table
))
DBUG_RETURN
(
1
);
}
}
DBUG_RETURN
(
0
);
}
int
fill_schema_global_status
(
THD
*
thd
,
TABLE_LIST
*
tables
,
COND
*
cond
)
{
STATUS_VAR
tmp
;
int
res
=
0
;
DBUG_ENTER
(
"fill_schema_global_status"
);
pthread_mutex_lock
(
&
LOCK_status
);
calc_sum_of_all_status
(
&
tmp
);
res
=
fill_schema_status
(
thd
,
(
SHOW_VAR
*
)
all_status_vars
.
buffer
,
&
tmp
,
""
,
tables
->
table
);
pthread_mutex_unlock
(
&
LOCK_status
);
DBUG_RETURN
(
res
);
}
int
fill_schema_session_status
(
THD
*
thd
,
TABLE_LIST
*
tables
,
COND
*
cond
)
{
int
res
=
0
;
DBUG_ENTER
(
"fill_schema_session_status"
);
pthread_mutex_lock
(
&
LOCK_status
);
res
=
fill_schema_status
(
thd
,
(
SHOW_VAR
*
)
all_status_vars
.
buffer
,
&
thd
->
status_var
,
""
,
tables
->
table
);
pthread_mutex_unlock
(
&
LOCK_status
);
DBUG_RETURN
(
res
);
}
int
fill_schema_global_variables
(
THD
*
thd
,
TABLE_LIST
*
tables
,
COND
*
cond
)
{
int
res
=
0
;
DBUG_ENTER
(
"fill_schema_global_variables"
);
rw_rdlock
(
&
LOCK_system_variables_hash
);
res
=
show_status_array
(
thd
,
""
,
enumerate_sys_vars
(
thd
,
FALSE
),
OPT_GLOBAL
,
NULL
,
""
,
tables
->
table
,
1
);
rw_unlock
(
&
LOCK_system_variables_hash
);
DBUG_RETURN
(
res
);
}
int
fill_schema_session_variables
(
THD
*
thd
,
TABLE_LIST
*
tables
,
COND
*
cond
)
{
int
res
=
0
;
DBUG_ENTER
(
"fill_schema_session_variables"
);
rw_rdlock
(
&
LOCK_system_variables_hash
);
res
=
show_status_array
(
thd
,
""
,
enumerate_sys_vars
(
thd
,
FALSE
),
OPT_SESSION
,
NULL
,
""
,
tables
->
table
,
1
);
rw_unlock
(
&
LOCK_system_variables_hash
);
DBUG_RETURN
(
res
);
}
ST_FIELD_INFO
schema_fields_info
[]
=
{
...
...
@@ -5762,25 +5622,9 @@ ST_FIELD_INFO partitions_fields_info[]=
ST_FIELD_INFO
variables_fields_info
[]
=
{
{
"Variable_name"
,
80
,
MYSQL_TYPE_STRING
,
0
,
0
,
"Variable_name"
},
{
"Value"
,
FN_REFLEN
,
MYSQL_TYPE_STRING
,
0
,
0
,
"Value"
},
{
0
,
0
,
MYSQL_TYPE_STRING
,
0
,
0
,
0
}
};
ST_FIELD_INFO
status_fields_info
[]
=
{
{
"VARIABLE_NAME"
,
64
,
MYSQL_TYPE_STRING
,
0
,
0
,
"Variable_name"
},
{
"VARIABLE_VALUE"
,
2207
,
MYSQL_TYPE_DECIMAL
,
0
,
0
,
"Value"
},
{
0
,
0
,
MYSQL_TYPE_STRING
,
0
,
0
,
0
}
};
ST_FIELD_INFO
system_variables_fields_info
[]
=
{
{
"VARIABLE_NAME"
,
64
,
MYSQL_TYPE_STRING
,
0
,
0
,
"Variable_name"
},
{
"VARIABLE_VALUE"
,
65535
,
MYSQL_TYPE_STRING
,
0
,
1
,
"Value"
},
{
"VARIABLE_VALUE"
,
20480
,
MYSQL_TYPE_STRING
,
0
,
1
,
"Value"
},
{
0
,
0
,
MYSQL_TYPE_STRING
,
0
,
0
,
0
}
};
...
...
@@ -5920,10 +5764,10 @@ ST_SCHEMA_TABLE schema_tables[]=
Events
::
fill_schema_events
,
make_old_format
,
0
,
-
1
,
-
1
,
0
},
{
"FILES"
,
files_fields_info
,
create_schema_table
,
fill_schema_files
,
0
,
0
,
-
1
,
-
1
,
0
},
{
"GLOBAL_STATUS"
,
statu
s_fields_info
,
create_schema_table
,
fill_s
chema_global_s
tatus
,
make_old_format
,
0
,
-
1
,
-
1
,
0
},
{
"GLOBAL_VARIABLES"
,
system_
variables_fields_info
,
create_schema_table
,
fill_
schema_global_
variables
,
make_old_format
,
0
,
-
1
,
-
1
,
0
},
{
"GLOBAL_STATUS"
,
variable
s_fields_info
,
create_schema_table
,
fill_status
,
make_old_format
,
0
,
-
1
,
-
1
,
0
},
{
"GLOBAL_VARIABLES"
,
variables_fields_info
,
create_schema_table
,
fill_variables
,
make_old_format
,
0
,
-
1
,
-
1
,
0
},
{
"KEY_COLUMN_USAGE"
,
key_column_usage_fields_info
,
create_schema_table
,
get_all_tables
,
0
,
get_schema_key_column_usage_record
,
4
,
5
,
0
},
{
"OPEN_TABLES"
,
open_tables_fields_info
,
create_schema_table
,
...
...
@@ -5943,10 +5787,10 @@ ST_SCHEMA_TABLE schema_tables[]=
fill_schema_shemata
,
make_schemata_old_format
,
0
,
1
,
-
1
,
0
},
{
"SCHEMA_PRIVILEGES"
,
schema_privileges_fields_info
,
create_schema_table
,
fill_schema_schema_privileges
,
0
,
0
,
-
1
,
-
1
,
0
},
{
"SESSION_STATUS"
,
statu
s_fields_info
,
create_schema_table
,
fill_s
chema_session_s
tatus
,
make_old_format
,
0
,
-
1
,
-
1
,
0
},
{
"SESSION_VARIABLES"
,
system_
variables_fields_info
,
create_schema_table
,
fill_
schema_session_
variables
,
make_old_format
,
0
,
-
1
,
-
1
,
0
},
{
"SESSION_STATUS"
,
variable
s_fields_info
,
create_schema_table
,
fill_status
,
make_old_format
,
0
,
-
1
,
-
1
,
0
},
{
"SESSION_VARIABLES"
,
variables_fields_info
,
create_schema_table
,
fill_variables
,
make_old_format
,
0
,
-
1
,
-
1
,
0
},
{
"STATISTICS"
,
stat_fields_info
,
create_schema_table
,
get_all_tables
,
make_old_format
,
get_schema_stat_record
,
1
,
2
,
0
},
{
"STATUS"
,
variables_fields_info
,
create_schema_table
,
fill_status
,
...
...
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