$82 GRAYBYTE WORDPRESS FILE MANAGER $15

SERVER : vnpttt-amd7f72-h1.vietnix.vn #1 SMP Fri May 24 12:42:50 UTC 2024
SERVER IP : 103.200.23.149 | ADMIN IP 216.73.216.22
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/usr/include/mysql/server/mysql/

HOME
Current File : /usr/include/mysql/server/mysql//service_thd_alloc.h
#ifndef MYSQL_SERVICE_THD_ALLOC_INCLUDED
/* Copyright (c) 2009, 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 */

/**
  @file
  This service provides functions to allocate memory in a connection local
  memory pool. The memory allocated there will be automatically freed at the
  end of the statement, don't use it for allocations that should live longer
  than that. For short living allocations this is more efficient than
  using my_malloc and friends, and automatic "garbage collection" allows not
  to think about memory leaks.

  The pool is best for small to medium objects, don't use it for large
  allocations - they are better served with my_malloc.
*/

#ifndef MYSQL_ABI_CHECK
#include <stdlib.h>
#endif

#ifdef __cplusplus
extern "C" {
#endif

struct st_mysql_lex_string
{
  char *str;
  size_t length;
};
typedef struct st_mysql_lex_string MYSQL_LEX_STRING;

struct st_mysql_const_lex_string
{
  const char *str;
  size_t length;
};
typedef struct st_mysql_const_lex_string MYSQL_CONST_LEX_STRING;

extern struct thd_alloc_service_st {
  void *(*thd_alloc_func)(MYSQL_THD, size_t);
  void *(*thd_calloc_func)(MYSQL_THD, size_t);
  char *(*thd_strdup_func)(MYSQL_THD, const char *);
  char *(*thd_strmake_func)(MYSQL_THD, const char *, size_t);
  void *(*thd_memdup_func)(MYSQL_THD, const void*, size_t);
  MYSQL_CONST_LEX_STRING *(*thd_make_lex_string_func)(MYSQL_THD,
                                        MYSQL_CONST_LEX_STRING *,
                                        const char *, size_t, int);
} *thd_alloc_service;

#ifdef MYSQL_DYNAMIC_PLUGIN

#define thd_alloc(thd,size) (thd_alloc_service->thd_alloc_func((thd), (size)))

#define thd_calloc(thd,size) (thd_alloc_service->thd_calloc_func((thd), (size)))

#define thd_strdup(thd,str) (thd_alloc_service->thd_strdup_func((thd), (str)))

#define thd_strmake(thd,str,size) \
  (thd_alloc_service->thd_strmake_func((thd), (str), (size)))

#define thd_memdup(thd,str,size) \
  (thd_alloc_service->thd_memdup_func((thd), (str), (size)))

#define thd_make_lex_string(thd, lex_str, str, size, allocate_lex_string) \
  (thd_alloc_service->thd_make_lex_string_func((thd), (lex_str), (str), \
                                               (size), (allocate_lex_string)))

#else

/**
  Allocate memory in the connection's local memory pool

  @details
  When properly used in place of @c my_malloc(), this can significantly
  improve concurrency. Don't use this or related functions to allocate
  large chunks of memory. Use for temporary storage only. The memory
  will be freed automatically at the end of the statement; no explicit
  code is required to prevent memory leaks.

  @see alloc_root()
*/
void *thd_alloc(MYSQL_THD thd, size_t size);
/**
  @see thd_alloc()
*/
void *thd_calloc(MYSQL_THD thd, size_t size);
/**
  @see thd_alloc()
*/
char *thd_strdup(MYSQL_THD thd, const char *str);
/**
  @see thd_alloc()
*/
char *thd_strmake(MYSQL_THD thd, const char *str, size_t size);
/**
  @see thd_alloc()
*/
void *thd_memdup(MYSQL_THD thd, const void* str, size_t size);

/**
  Create a LEX_STRING in this connection's local memory pool

  @param thd      user thread connection handle
  @param lex_str  pointer to LEX_STRING object to be initialized
  @param str      initializer to be copied into lex_str
  @param size     length of str, in bytes
  @param allocate_lex_string  flag: if TRUE, allocate new LEX_STRING object,
                              instead of using lex_str value
  @return  NULL on failure, or pointer to the LEX_STRING object

  @see thd_alloc()
*/
MYSQL_CONST_LEX_STRING
*thd_make_lex_string(MYSQL_THD thd, MYSQL_CONST_LEX_STRING *lex_str,
                     const char *str, size_t size,
                     int allocate_lex_string);

#endif

#ifdef __cplusplus
}
#endif

#define MYSQL_SERVICE_THD_ALLOC_INCLUDED
#endif


Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
1 Jan 1970 8.00 AM
root / root
0
psi
--
16 Dec 2025 9.33 PM
root / root
0755
auth_dialog_client.h
2.013 KB
26 Oct 2025 12.19 AM
root / root
0644
client_plugin.h
6.179 KB
26 Oct 2025 12.19 AM
root / root
0644
plugin.h
29.193 KB
26 Oct 2025 12.19 AM
root / root
0644
plugin_audit.h
5.407 KB
26 Oct 2025 12.19 AM
root / root
0644
plugin_auth.h
5.273 KB
26 Oct 2025 12.19 AM
root / root
0644
plugin_auth_common.h
4.403 KB
26 Oct 2025 12.19 AM
root / root
0644
plugin_data_type.h
1.27 KB
26 Oct 2025 12.19 AM
root / root
0644
plugin_encryption.h
4.329 KB
26 Oct 2025 12.19 AM
root / root
0644
plugin_ftparser.h
7.648 KB
26 Oct 2025 12.19 AM
root / root
0644
plugin_function.h
1.403 KB
26 Oct 2025 12.19 AM
root / root
0644
plugin_password_validation.h
1.517 KB
26 Oct 2025 12.19 AM
root / root
0644
service_base64.h
2.863 KB
26 Oct 2025 12.19 AM
root / root
0644
service_debug_sync.h
13.262 KB
26 Oct 2025 12.19 AM
root / root
0644
service_encryption.h
5.524 KB
26 Oct 2025 12.19 AM
root / root
0644
service_encryption_scheme.h
5.514 KB
26 Oct 2025 12.19 AM
root / root
0644
service_json.h
4.444 KB
26 Oct 2025 12.19 AM
root / root
0644
service_kill_statement.h
2.021 KB
26 Oct 2025 12.19 AM
root / root
0644
service_log_warnings.h
1.345 KB
26 Oct 2025 12.19 AM
root / root
0644
service_logger.h
3.468 KB
26 Oct 2025 12.19 AM
root / root
0644
service_md5.h
2.069 KB
26 Oct 2025 12.19 AM
root / root
0644
service_my_crypt.h
4.069 KB
26 Oct 2025 12.19 AM
root / root
0644
service_my_print_error.h
2.273 KB
26 Oct 2025 12.19 AM
root / root
0644
service_my_snprintf.h
3.635 KB
26 Oct 2025 12.19 AM
root / root
0644
service_print_check_msg.h
1.516 KB
26 Oct 2025 12.19 AM
root / root
0644
service_progress_report.h
3.277 KB
26 Oct 2025 12.19 AM
root / root
0644
service_sha1.h
2.111 KB
26 Oct 2025 12.19 AM
root / root
0644
service_sha2.h
5.175 KB
26 Oct 2025 12.19 AM
root / root
0644
service_sql.h
5.014 KB
26 Oct 2025 12.19 AM
root / root
0644
service_thd_alloc.h
4.385 KB
26 Oct 2025 12.19 AM
root / root
0644
service_thd_autoinc.h
1.652 KB
26 Oct 2025 12.19 AM
root / root
0644
service_thd_error_context.h
3.344 KB
26 Oct 2025 12.19 AM
root / root
0644
service_thd_mdl.h
1.252 KB
26 Oct 2025 12.19 AM
root / root
0644
service_thd_rnd.h
1.857 KB
26 Oct 2025 12.19 AM
root / root
0644
service_thd_specifics.h
3.6 KB
26 Oct 2025 12.19 AM
root / root
0644
service_thd_timezone.h
2.237 KB
26 Oct 2025 12.19 AM
root / root
0644
service_thd_wait.h
3.608 KB
26 Oct 2025 12.19 AM
root / root
0644
service_wsrep.h
13.826 KB
26 Oct 2025 12.19 AM
root / root
0644
services.h
1.721 KB
26 Oct 2025 12.19 AM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF