mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-23 16:03:02 +01:00
- Remove *_THREAD_DATA definitions from thd.h, are unneeded and conflicts with definitions in providers/services main headers (which need to use undef).
- Use different names for each service/provider *_THREAD_DATA macros.
This commit is contained in:
parent
d3b58524d2
commit
68cb86b274
@ -24,7 +24,7 @@
|
||||
//
|
||||
//____________________________________________________________
|
||||
//
|
||||
// $Id: alice.cpp,v 1.62 2004-05-15 00:52:43 brodsom Exp $
|
||||
// $Id: alice.cpp,v 1.63 2004-05-19 18:04:41 brodsom Exp $
|
||||
//
|
||||
// 2001.07.06 Sean Leyne - Code Cleanup, removed "#ifdef READONLY_DATABASE"
|
||||
// conditionals, as the engine now fully supports
|
||||
@ -198,7 +198,7 @@ int common_main(int argc,
|
||||
return FINI_ERROR;
|
||||
}
|
||||
|
||||
SET_THREAD_DATA;
|
||||
ALICE_set_thread_data;
|
||||
SVC_PUTSPECIFIC_DATA;
|
||||
memset((void *) tdgbl, 0, sizeof(Tgbl));
|
||||
tdgbl->output_proc = output_proc;
|
||||
@ -632,7 +632,7 @@ int common_main(int argc,
|
||||
// Free all unfreed memory used by Gfix itself
|
||||
ALLA_fini();
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
ALICE_restore_thread_data;
|
||||
|
||||
gds__free(tdgbl);
|
||||
|
||||
@ -697,7 +697,7 @@ void ALICE_print_status(const ISC_STATUS* status_vector)
|
||||
const ISC_STATUS* vector = status_vector;
|
||||
#ifdef SUPERSERVER
|
||||
int i = 0, j;
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
ISC_STATUS* status = tdgbl->service_blk->svc_status;
|
||||
if (status != status_vector) {
|
||||
while (*status && (++i < ISC_STATUS_LENGTH)) {
|
||||
@ -736,7 +736,7 @@ void ALICE_error(USHORT number,
|
||||
const TEXT* arg4,
|
||||
const TEXT* arg5)
|
||||
{
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
TEXT buffer[256];
|
||||
|
||||
#ifdef SUPERSERVER
|
||||
@ -779,7 +779,7 @@ static void alice_output(const SCHAR* format, ...)
|
||||
UCHAR buf[1000];
|
||||
int exit_code;
|
||||
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
if (tdgbl->sw_redirect == NOOUTPUT || format[0] == '\0') {
|
||||
exit_code = tdgbl->output_proc(tdgbl->output_data, (UCHAR *)(""));
|
||||
|
@ -186,23 +186,20 @@ public:
|
||||
};
|
||||
|
||||
|
||||
#ifdef GET_THREAD_DATA
|
||||
#undef GET_THREAD_DATA
|
||||
#endif
|
||||
|
||||
#ifdef SUPERSERVER
|
||||
#define GET_THREAD_DATA ((Tgbl*) THD_get_specific())
|
||||
#define SET_THREAD_DATA THD_put_specific ((THDD) tdgbl); \
|
||||
tdgbl->tgbl_thd_data.thdd_type = \
|
||||
THDD_TYPE_TALICE
|
||||
#define RESTORE_THREAD_DATA THD_restore_specific();
|
||||
#define ALICE_get_thread_data ((Tgbl*) THD_get_specific())
|
||||
#define ALICE_set_thread_data THD_put_specific ((THDD) tdgbl); \
|
||||
tdgbl->tgbl_thd_data.thdd_type = \
|
||||
THDD_TYPE_TALICE
|
||||
#define ALICE_restore_thread_data THD_restore_specific();
|
||||
#else
|
||||
extern Tgbl* gdgbl;
|
||||
|
||||
#define GET_THREAD_DATA (gdgbl)
|
||||
#define SET_THREAD_DATA gdgbl = tdgbl; \
|
||||
#define ALICE_get_thread_data (gdgbl)
|
||||
#define ALICE_set_thread_data gdgbl = tdgbl; \
|
||||
tdgbl->tgbl_thd_data.thdd_type = THDD_TYPE_TGBL
|
||||
#define RESTORE_THREAD_DATA
|
||||
#define ALICE_restore_thread_data
|
||||
#endif
|
||||
|
||||
#endif // ALICE_ALICE_H
|
||||
|
@ -27,7 +27,7 @@
|
||||
*
|
||||
*____________________________________________________________
|
||||
*
|
||||
* $Id: alice_meta.epp,v 1.35 2004-05-02 23:03:22 skidder Exp $
|
||||
* $Id: alice_meta.epp,v 1.36 2004-05-19 18:04:41 brodsom Exp $
|
||||
*/
|
||||
|
||||
#include "firebird.h"
|
||||
@ -94,7 +94,7 @@ static inline void return_error(const ISC_STATUS* user_status)
|
||||
void MET_disable_wal(ISC_STATUS* user_status, isc_db_handle handle)
|
||||
{
|
||||
FB_API_HANDLE request = 0;
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
if (!(DB = handle))
|
||||
return;
|
||||
@ -124,7 +124,7 @@ void MET_disable_wal(ISC_STATUS* user_status, isc_db_handle handle)
|
||||
void MET_get_state(ISC_STATUS* user_status, TDR trans)
|
||||
{
|
||||
FB_API_HANDLE request = 0;
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
if (!(DB = trans->tdr_db_handle) ||
|
||||
!(trans->tdr_db_caps & CAP_transactions))
|
||||
@ -170,7 +170,7 @@ TDR MET_get_transaction(ISC_STATUS* user_status, isc_db_handle handle, SLONG id)
|
||||
{
|
||||
FB_API_HANDLE request = 0;
|
||||
TDR trans = NULL;
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
if (!(DB = handle))
|
||||
return 0;
|
||||
@ -219,7 +219,7 @@ TDR MET_get_transaction(ISC_STATUS* user_status, isc_db_handle handle, SLONG id)
|
||||
|
||||
void MET_set_capabilities(ISC_STATUS* user_status, TDR trans)
|
||||
{
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
if (!(DB = trans->tdr_db_handle))
|
||||
return;
|
||||
@ -245,7 +245,7 @@ void MET_set_capabilities(ISC_STATUS* user_status, TDR trans)
|
||||
|
||||
static alice_str* alloc_string(const TEXT** ptr)
|
||||
{
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
const TEXT* p = *ptr;
|
||||
|
||||
@ -274,7 +274,7 @@ static alice_str* alloc_string(const TEXT** ptr)
|
||||
static USHORT get_capabilities(ISC_STATUS* user_status)
|
||||
{
|
||||
USHORT capabilities = CAP_none;
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
// Look for desired fields in system relations
|
||||
FB_API_HANDLE req = 0;
|
||||
@ -312,7 +312,7 @@ static TDR get_description(ISC_QUAD* blob_id)
|
||||
{
|
||||
TEXT buffer[1024];
|
||||
TEXT* bigger_buffer = 0;
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
const TEXT* p = buffer;
|
||||
const USHORT length = snarf_blob(blob_id, (USHORT) sizeof(buffer), buffer);
|
||||
@ -394,7 +394,7 @@ static TDR get_description(ISC_QUAD* blob_id)
|
||||
|
||||
static void parse_fullpath(TDR trans)
|
||||
{
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
// start at the end of the full pathname
|
||||
|
||||
@ -473,7 +473,7 @@ static void parse_fullpath(TDR trans)
|
||||
static USHORT snarf_blob(ISC_QUAD* blob_id,
|
||||
USHORT buffer_length, TEXT* buffer)
|
||||
{
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
if (buffer_length)
|
||||
buffer[0] = 0;
|
||||
|
@ -24,7 +24,7 @@
|
||||
//
|
||||
//____________________________________________________________
|
||||
//
|
||||
// $Id: all.cpp,v 1.21 2004-05-15 00:52:07 brodsom Exp $
|
||||
// $Id: all.cpp,v 1.22 2004-05-19 18:04:41 brodsom Exp $
|
||||
//
|
||||
|
||||
#include "firebird.h"
|
||||
@ -42,7 +42,7 @@
|
||||
|
||||
void ALLA_fini(void)
|
||||
{
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
for (Tgbl::pool_vec_t::iterator curr = tdgbl->pools.begin();
|
||||
curr != tdgbl->pools.end(); ++curr)
|
||||
@ -64,7 +64,7 @@ void ALLA_fini(void)
|
||||
|
||||
void ALLA_init(void)
|
||||
{
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
#ifdef NOT_USED_OR_REPLACED
|
||||
tdgbl->ALICE_default_pool = tdgbl->ALICE_permanent_pool =
|
||||
AliceMemoryPool::create_new_pool();
|
||||
@ -90,7 +90,7 @@ void AliceMemoryPool::ALLA_push(blk* object, alice_lls** stack)
|
||||
* Push an object on an LLS stack.
|
||||
*
|
||||
**************************************/
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
AliceMemoryPool* pool = tdgbl->ALICE_default_pool;
|
||||
|
||||
alice_lls* node = pool->lls_cache.newBlock();
|
||||
@ -136,7 +136,7 @@ AliceMemoryPool* AliceMemoryPool::create_new_pool(MemoryPool* parent)
|
||||
*
|
||||
**************************************/
|
||||
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
// TMN: John, is this correct?
|
||||
AliceMemoryPool* pool = new(0, parent) AliceMemoryPool(parent);
|
||||
@ -169,7 +169,7 @@ AliceMemoryPool* AliceMemoryPool::create_new_pool(MemoryPool* parent)
|
||||
|
||||
void AliceMemoryPool::deletePool(AliceMemoryPool* pool)
|
||||
{
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
Tgbl::pool_vec_t::iterator curr;
|
||||
for (curr = tdgbl->pools.begin(); curr != tdgbl->pools.end(); ++curr)
|
||||
|
@ -24,7 +24,7 @@
|
||||
//
|
||||
//____________________________________________________________
|
||||
//
|
||||
// $Id: exe.cpp,v 1.32 2004-05-02 23:03:22 skidder Exp $
|
||||
// $Id: exe.cpp,v 1.33 2004-05-19 18:04:41 brodsom Exp $
|
||||
//
|
||||
// 2001.07.06 Sean Leyne - Code Cleanup, removed "#ifdef READONLY_DATABASE"
|
||||
// conditionals, as the engine now fully supports
|
||||
@ -84,7 +84,7 @@ static inline void stuff_dpb_long(UCHAR** d, int blr)
|
||||
int EXE_action(const TEXT* database, const ULONG switches)
|
||||
{
|
||||
UCHAR dpb[128];
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
ALLA_init();
|
||||
|
||||
@ -143,7 +143,7 @@ int EXE_action(const TEXT* database, const ULONG switches)
|
||||
int EXE_two_phase(const TEXT* database, const ULONG switches)
|
||||
{
|
||||
UCHAR dpb[128];
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
ALLA_init();
|
||||
|
||||
@ -188,7 +188,7 @@ int EXE_two_phase(const TEXT* database, const ULONG switches)
|
||||
|
||||
static USHORT build_dpb(UCHAR* dpb, const ULONG switches)
|
||||
{
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
UCHAR* dpb2 = dpb;
|
||||
*dpb2++ = isc_dpb_version1;
|
||||
@ -373,7 +373,7 @@ static USHORT build_dpb(UCHAR* dpb, const ULONG switches)
|
||||
|
||||
static void extract_db_info(const UCHAR* db_info_buffer)
|
||||
{
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
const UCHAR* p = db_info_buffer;
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
||||
//
|
||||
//____________________________________________________________
|
||||
//
|
||||
// $Id: tdr.cpp,v 1.35 2004-05-02 23:03:22 skidder Exp $
|
||||
// $Id: tdr.cpp,v 1.36 2004-05-19 18:04:41 brodsom Exp $
|
||||
//
|
||||
// 2002.02.15 Sean Leyne - Code Cleanup, removed obsolete "Apollo" port
|
||||
//
|
||||
@ -183,7 +183,7 @@ bool TDR_attach_database(ISC_STATUS* status_vector,
|
||||
const TEXT* pathname)
|
||||
{
|
||||
UCHAR dpb[128];
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
if (tdgbl->ALICE_data.ua_debug)
|
||||
ALICE_print(68, pathname, 0, 0, 0, 0);
|
||||
@ -291,7 +291,7 @@ void TDR_list_limbo(FB_API_HANDLE handle, const TEXT* name, const ULONG switches
|
||||
{
|
||||
UCHAR buffer[1024];
|
||||
ISC_STATUS_ARRAY status_vector;
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
if (isc_database_info(status_vector, &handle, sizeof(limbo_info),
|
||||
reinterpret_cast<const char*>(limbo_info),
|
||||
@ -518,7 +518,7 @@ bool TDR_reconnect_multiple(FB_API_HANDLE handle,
|
||||
|
||||
static void print_description(const tdr* trans)
|
||||
{
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
if (!trans)
|
||||
{
|
||||
@ -712,7 +712,7 @@ static ULONG ask(void)
|
||||
{
|
||||
UCHAR response[32];
|
||||
char* const resp_ptr = reinterpret_cast<char*>(response);
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
ULONG switches = 0;
|
||||
|
||||
@ -758,7 +758,7 @@ static void reattach_database(TDR trans)
|
||||
UCHAR buffer[1024];
|
||||
// sizeof(buffer) - 1 => leave space for the terminator.
|
||||
const UCHAR* const end = buffer + sizeof(buffer) - 1;
|
||||
Tgbl* tdgbl = GET_THREAD_DATA;
|
||||
Tgbl* tdgbl = ALICE_get_thread_data;
|
||||
|
||||
ISC_get_host(reinterpret_cast<char*>(buffer), sizeof(buffer));
|
||||
|
||||
|
@ -37,7 +37,7 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
$Id: backup.epp,v 1.57 2004-05-09 05:47:41 robocop Exp $
|
||||
$Id: backup.epp,v 1.58 2004-05-19 18:05:49 brodsom Exp $
|
||||
*/
|
||||
|
||||
#include "firebird.h"
|
||||
@ -253,7 +253,7 @@ int BACKUP_backup(const TEXT* dbb_file, const TEXT* file_name)
|
||||
ISC_STATUS_ARRAY status_vector;
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
tdgbl->gbl_database_file_name = dbb_file;
|
||||
|
||||
@ -522,7 +522,7 @@ void compress(const UCHAR* data, ULONG length)
|
||||
* Write out data in compressed form.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
const UCHAR* p = data;
|
||||
const UCHAR* end = p + length;
|
||||
@ -602,7 +602,7 @@ void general_on_error(void)
|
||||
* Handle any general ON_ERROR clause during backup.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
BURP_print_status(isc_status);
|
||||
BURP_abort();
|
||||
@ -625,7 +625,7 @@ burp_fld* get_fields( burp_rel* relation)
|
||||
burp_fld* field;
|
||||
ISC_QUAD* blob_id;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
USHORT count = 1;
|
||||
burp_fld* fields = NULL;
|
||||
@ -910,7 +910,7 @@ SINT64 get_gen_id( const TEXT* name, SSHORT name_len)
|
||||
**************************************/
|
||||
UCHAR blr_buffer[100]; // enough to fit blr
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
FB_API_HANDLE gen_id_reqh = 0;
|
||||
UCHAR* blr = blr_buffer;
|
||||
@ -1046,7 +1046,7 @@ void get_ranges( burp_fld* field)
|
||||
* the ranges in rdb$field_dimensions.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
SLONG* rp = field->fld_ranges;
|
||||
USHORT count = 0;
|
||||
@ -1091,7 +1091,7 @@ void put_array( burp_fld* field, burp_rel* relation, ISC_QUAD* blob_id)
|
||||
SLONG range_buffer[16]; // enough for 16 dimensions
|
||||
UCHAR blr_buffer[200]; // enough for a sdl with 16 dimensions
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// If the array is null, don't store it. It will be restored as null.
|
||||
|
||||
@ -1300,7 +1300,7 @@ void put_asciz( const SCHAR attribute, const TEXT* string)
|
||||
* Write an attribute starting with a null terminated string.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
ULONG l = strlen(string);
|
||||
|
||||
@ -1326,7 +1326,7 @@ void put_blob( burp_fld* field, ISC_QUAD* blob_id, ULONG count)
|
||||
ISC_STATUS_ARRAY status_vector;
|
||||
UCHAR blob_info[32], static_buffer[1024];
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// If the blob is null, don't store it. It will be restored as null.
|
||||
|
||||
@ -1443,7 +1443,7 @@ bool put_blr_blob( SCHAR attribute, ISC_QUAD * blob_id)
|
||||
ISC_STATUS_ARRAY status_vector;
|
||||
UCHAR blob_info[32], static_buffer[1024];
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// If the blob is null, don't store it. It will be restored as null.
|
||||
|
||||
@ -1557,7 +1557,7 @@ void put_data(burp_rel* relation)
|
||||
burp_fld* field;
|
||||
ISC_STATUS_ARRAY status_vector;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// CVC: A signed short isn't enough if the engine allows near 32K fields,
|
||||
// each being char(1) ASCII in the worst case. Looking at BLR generation
|
||||
@ -1891,7 +1891,7 @@ void put_index( burp_rel* relation)
|
||||
ULONG count;
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
/* if we have all capabilities, use the first request to get the
|
||||
most performance out of the latest engine; if we don't
|
||||
@ -2084,7 +2084,7 @@ int put_message( SCHAR attribute, const TEXT* text, ULONG length)
|
||||
* which function of the two you use).
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
ULONG l = 0;
|
||||
for (const TEXT* p = text; *p && l < length; p++)
|
||||
@ -2113,7 +2113,7 @@ void put_numeric( SCHAR attribute, SLONG value)
|
||||
* low byte first, high byte last, as in VAX.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
const SLONG vax_value = (SLONG) isc_vax_integer((const char*) &value, sizeof(value));
|
||||
|
||||
@ -2138,7 +2138,7 @@ void put_int64( SCHAR attribute, SINT64 value)
|
||||
* INT64 value, while put_numeric handles a 32-bit value.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
const UINT64 le_value =
|
||||
(UINT64) isc_portable_integer((const UCHAR*) &value, sizeof(value));
|
||||
@ -2163,7 +2163,7 @@ void put_relation( burp_rel* relation)
|
||||
**************************************/
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
/* Write local field information. This is made slightly more complicated
|
||||
by the requirement that computational fields be aligned. */
|
||||
@ -2353,7 +2353,7 @@ bool put_source_blob(SCHAR attribute,
|
||||
ISC_STATUS_ARRAY status_vector;
|
||||
UCHAR blob_info[48], static_buffer[1024];
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// If the blob is null, don't store it. It will be restored as null.
|
||||
|
||||
@ -2476,7 +2476,7 @@ int put_text( SCHAR attribute, const TEXT* text, SSHORT size_len)
|
||||
* with quoted names and embedded spaces.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
const SSHORT l = (SSHORT) symbol_length (text, (ULONG) size_len);
|
||||
|
||||
@ -2504,7 +2504,7 @@ void set_capabilities(void)
|
||||
* unpleasantness later.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
FB_API_HANDLE req = 0;
|
||||
|
||||
@ -2581,7 +2581,7 @@ void write_character_sets(void)
|
||||
**************************************/
|
||||
isc_req_handle req_handle1 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
FOR (REQUEST_HANDLE req_handle1)
|
||||
X IN RDB$CHARACTER_SETS WITH X.RDB$SYSTEM_FLAG MISSING OR X.RDB$SYSTEM_FLAG NE 1
|
||||
@ -2627,7 +2627,7 @@ void write_check_constraints(void)
|
||||
**************************************/
|
||||
isc_req_handle req_handle1 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
FOR (REQUEST_HANDLE req_handle1)
|
||||
X IN RDB$CHECK_CONSTRAINTS
|
||||
@ -2661,7 +2661,7 @@ void write_collations(void)
|
||||
**************************************/
|
||||
isc_req_handle req_handle1 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
FOR (REQUEST_HANDLE req_handle1)
|
||||
X IN RDB$COLLATIONS WITH X.RDB$SYSTEM_FLAG MISSING OR X.RDB$SYSTEM_FLAG NE 1
|
||||
@ -2704,7 +2704,7 @@ void write_database( const TEXT* dbb_file)
|
||||
SCHAR buffer[256];
|
||||
isc_req_handle req_handle1 = 0, req_handle2 = 0, req_handle3 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
put(tdgbl, (UCHAR) (rec_physical_db));
|
||||
|
||||
@ -2870,7 +2870,7 @@ void write_exceptions(void)
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
isc_req_handle req_handle1 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
FOR (REQUEST_HANDLE req_handle1)
|
||||
X IN RDB$EXCEPTIONS
|
||||
@ -2906,7 +2906,7 @@ void write_field_dimensions(void)
|
||||
**************************************/
|
||||
isc_req_handle req_handle1 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
FOR (REQUEST_HANDLE req_handle1)
|
||||
X IN RDB$FIELD_DIMENSIONS
|
||||
@ -2941,7 +2941,7 @@ void write_filters(void)
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
isc_req_handle req_handle1 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
FOR (REQUEST_HANDLE req_handle1)
|
||||
X IN RDB$FILTERS
|
||||
@ -2981,7 +2981,7 @@ void write_functions(void)
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
isc_req_handle req_handle1 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
FOR (REQUEST_HANDLE req_handle1)
|
||||
X IN RDB$FUNCTIONS
|
||||
@ -3022,7 +3022,7 @@ void write_function_args( GDS_NAME funcptr)
|
||||
**************************************/
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
/* if we have all capabilities, use the first request to get the
|
||||
most performance out of the latest engine; if we don't
|
||||
@ -3119,7 +3119,7 @@ void write_generators(void)
|
||||
isc_req_handle req_handle1 = 0;
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
FOR (REQUEST_HANDLE req_handle1)
|
||||
X IN RDB$GENERATORS WITH X.RDB$SYSTEM_FLAG MISSING OR X.RDB$SYSTEM_FLAG NE 1
|
||||
@ -3161,7 +3161,7 @@ void write_global_fields(void)
|
||||
isc_req_handle req_handle1 = 0, req_handle2 = 0,
|
||||
req_handle3 = 0, req_handle4 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
/* if we have all capabilities, use the first request to get the
|
||||
most performance out of the latest engine; if we don't
|
||||
@ -3358,7 +3358,7 @@ void write_procedures(void)
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
isc_req_handle req_handle1 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
FOR (REQUEST_HANDLE req_handle1)
|
||||
X IN RDB$PROCEDURES
|
||||
@ -3404,7 +3404,7 @@ void write_procedure_prms( GDS_NAME procptr)
|
||||
**************************************/
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
FOR (REQUEST_HANDLE tdgbl->handles_write_procedure_prms_req_handle1)
|
||||
X IN RDB$PROCEDURE_PARAMETERS WITH X.RDB$PROCEDURE_NAME EQ procptr
|
||||
@ -3441,7 +3441,7 @@ void write_ref_constraints(void)
|
||||
**************************************/
|
||||
isc_req_handle req_handle1 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
FOR (REQUEST_HANDLE req_handle1)
|
||||
X IN RDB$REF_CONSTRAINTS
|
||||
@ -3476,7 +3476,7 @@ void write_rel_constraints(void)
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
isc_req_handle req_handle1 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
FOR (REQUEST_HANDLE req_handle1)
|
||||
X IN RDB$RELATION_CONSTRAINTS
|
||||
@ -3516,7 +3516,7 @@ void write_relations(void)
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
isc_req_handle req_handle1 = 0, req_handle2 = 0, req_handle3 = 0, req_handle4 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
/* if we have all capabilities, use the first request to get the
|
||||
most performance out of the latest engine; if we don't
|
||||
@ -3683,7 +3683,7 @@ void write_shadow_files(void)
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
isc_req_handle req_handle1 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
FOR (REQUEST_HANDLE req_handle1)
|
||||
X IN RDB$FILES
|
||||
@ -3724,7 +3724,7 @@ void write_sql_roles(void)
|
||||
isc_req_handle req_handle1 = 0;
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
FOR (REQUEST_HANDLE req_handle1)
|
||||
X IN RDB$ROLES
|
||||
@ -3760,7 +3760,7 @@ void write_triggers(void)
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
isc_req_handle req_handle1 = 0, req_handle2 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
/* if we have all capabilities, use the first request to get the
|
||||
most performance out of the latest engine; if we don't
|
||||
@ -3866,7 +3866,7 @@ void write_trigger_messages(void)
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
isc_req_handle req_handle1 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
FOR (REQUEST_HANDLE req_handle1)
|
||||
T IN RDB$TRIGGERS CROSS X IN RDB$TRIGGER_MESSAGES
|
||||
@ -3904,7 +3904,7 @@ void write_types(void)
|
||||
**************************************/
|
||||
isc_req_handle req_handle1 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
FOR (REQUEST_HANDLE req_handle1)
|
||||
X IN RDB$TYPES WITH X.RDB$SYSTEM_FLAG NE 1 OR
|
||||
@ -3944,7 +3944,7 @@ void write_user_privileges(void)
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
isc_req_handle req_handle1 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
if (tdgbl->BCK_capabilities & BCK_ods8)
|
||||
{
|
||||
|
@ -357,7 +357,7 @@ static int api_gbak(int argc,
|
||||
**********************************************/
|
||||
tgbl ldgbl;
|
||||
tgbl* tdgbl = &ldgbl;
|
||||
SET_THREAD_DATA;
|
||||
BURP_set_thread_data;
|
||||
memset((void *) tdgbl, 0, sizeof(tgbl));
|
||||
tdgbl->output_proc = output_main;
|
||||
|
||||
@ -572,7 +572,7 @@ int common_main(int argc,
|
||||
JMP_BUF env;
|
||||
|
||||
// TMN: This variable should probably be removed, but I left it in
|
||||
// in case some platform should redefine the BURP SET_THREAD_DATA.
|
||||
// in case some platform should redefine the BURP BURP_set_thread_data.
|
||||
//tgbl thd_context;
|
||||
|
||||
gbak_action action = QUIT;
|
||||
@ -585,7 +585,7 @@ int common_main(int argc,
|
||||
return FINI_ERROR;
|
||||
}
|
||||
|
||||
SET_THREAD_DATA;
|
||||
BURP_set_thread_data;
|
||||
SVC_PUTSPECIFIC_DATA;
|
||||
memset((void *) tdgbl, 0, sizeof(tgbl));
|
||||
tdgbl->burp_env = reinterpret_cast<UCHAR*>(env);
|
||||
@ -1196,7 +1196,7 @@ int common_main(int argc,
|
||||
gds__free(mem);
|
||||
}
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
BURP_restore_thread_data;
|
||||
if (tdgbl != NULL) {
|
||||
gds__free(tdgbl);
|
||||
}
|
||||
@ -1224,7 +1224,7 @@ void BURP_abort(void)
|
||||
* Abandon a failed operation.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
BURP_print(83, 0, 0, 0, 0, 0);
|
||||
// msg 83 Exiting before completion due to errors
|
||||
@ -1256,7 +1256,7 @@ void BURP_error(USHORT errcode, bool abort,
|
||||
*
|
||||
**************************************/
|
||||
#ifdef SUPERSERVER
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
ISC_STATUS *status = tdgbl->service_blk->svc_status;
|
||||
|
||||
@ -1476,7 +1476,7 @@ void BURP_print_status(const ISC_STATUS* status_vector)
|
||||
if (status_vector) {
|
||||
const ISC_STATUS* vector = status_vector;
|
||||
#ifdef SUPERSERVER
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
ISC_STATUS* status = tdgbl->service_blk->svc_status;
|
||||
if (status != status_vector) {
|
||||
int i = 0;
|
||||
@ -1555,7 +1555,7 @@ void BURP_verbose(USHORT number,
|
||||
* user defined yieding function.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
if (tdgbl->gbl_sw_verbose)
|
||||
BURP_print(number, arg1, arg2, arg3, arg4, arg5);
|
||||
@ -1655,7 +1655,7 @@ static gbak_action open_files(const TEXT* file1,
|
||||
* and db handle.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
ISC_STATUS* status_vector = tdgbl->status;
|
||||
|
||||
// try to attach the database using the first file_name
|
||||
@ -2054,7 +2054,7 @@ static void burp_output( const SCHAR* format, ...)
|
||||
UCHAR buf[1000];
|
||||
int exit_code;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
if (tdgbl->sw_redirect == NOOUTPUT || format[0] == '\0') {
|
||||
exit_code =
|
||||
|
@ -886,22 +886,19 @@ typedef struct tgbl
|
||||
// in other modules.
|
||||
void BURP_exit_local(int code, tgbl* tdgbl);
|
||||
|
||||
#ifdef GET_THREAD_DATA
|
||||
#undef GET_THREAD_DATA
|
||||
#endif
|
||||
|
||||
#ifdef SUPERSERVER
|
||||
#define GET_THREAD_DATA ((TGBL) THD_get_specific())
|
||||
#define SET_THREAD_DATA THD_put_specific ((THDD) tdgbl); \
|
||||
#define BURP_get_thread_data ((TGBL) THD_get_specific())
|
||||
#define BURP_set_thread_data THD_put_specific ((THDD) tdgbl); \
|
||||
tdgbl->tgbl_thd_data.thdd_type = THDD_TYPE_TGBL
|
||||
#define RESTORE_THREAD_DATA THD_restore_specific();
|
||||
#define BURP_restore_thread_data THD_restore_specific();
|
||||
#else
|
||||
extern tgbl* gdgbl;
|
||||
|
||||
#define GET_THREAD_DATA (gdgbl)
|
||||
#define SET_THREAD_DATA gdgbl = const_cast<tgbl*>(tdgbl); \
|
||||
#define BURP_get_thread_data (gdgbl)
|
||||
#define BURP_set_thread_data gdgbl = const_cast<tgbl*>(tdgbl); \
|
||||
tdgbl->tgbl_thd_data.thdd_type = THDD_TYPE_TGBL
|
||||
#define RESTORE_THREAD_DATA
|
||||
#define BURP_restore_thread_data
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -50,7 +50,7 @@ UCHAR *MISC_alloc_burp(ULONG size)
|
||||
*
|
||||
**************************************/
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// Add some header space to store a list of blocks allocated for this gbak
|
||||
size += ROUNDUP(sizeof(UCHAR *), ALIGNMENT);
|
||||
@ -90,7 +90,7 @@ void MISC_free_burp( void *free)
|
||||
* Release an unwanted block.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
if (free != NULL) {
|
||||
// Point at the head of the allocated block
|
||||
|
@ -110,7 +110,7 @@ static DESC next_volume(DESC, ULONG, bool);
|
||||
//
|
||||
UINT64 MVOL_fini_read()
|
||||
{
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
if (strcmp(tdgbl->mvol_old_file, "stdin") != 0)
|
||||
{
|
||||
@ -138,7 +138,7 @@ UINT64 MVOL_fini_read()
|
||||
//
|
||||
UINT64 MVOL_fini_write(int* io_cnt, UCHAR** io_ptr)
|
||||
{
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
MVOL_write(rec_end, io_cnt, io_ptr);
|
||||
flush_platf(tdgbl->file_desc);
|
||||
@ -166,7 +166,7 @@ UINT64 MVOL_fini_write(int* io_cnt, UCHAR** io_ptr)
|
||||
//
|
||||
void MVOL_init(ULONG io_buf_size)
|
||||
{
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
tdgbl->mvol_io_buffer_size = io_buf_size;
|
||||
}
|
||||
@ -182,7 +182,7 @@ void MVOL_init_read(const UCHAR* database_name, // unused?
|
||||
int* cnt,
|
||||
UCHAR** ptr)
|
||||
{
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
tdgbl->mvol_volume_count = 1;
|
||||
tdgbl->mvol_empty_file = TRUE;
|
||||
@ -230,7 +230,7 @@ void MVOL_init_write(const UCHAR* database_name, // unused?
|
||||
int* cnt,
|
||||
UCHAR** ptr)
|
||||
{
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
tdgbl->mvol_volume_count = 1;
|
||||
tdgbl->mvol_empty_file = TRUE;
|
||||
@ -275,7 +275,7 @@ void MVOL_init_write(const UCHAR* database_name, // unused?
|
||||
//
|
||||
int MVOL_read(int* cnt, UCHAR** ptr)
|
||||
{
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
@ -332,7 +332,7 @@ int MVOL_read(int* cnt, UCHAR** ptr)
|
||||
//
|
||||
int MVOL_read(int* cnt, UCHAR** ptr)
|
||||
{
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
@ -460,7 +460,7 @@ DESC MVOL_open(const char * name, ULONG mode, ULONG create)
|
||||
TAPE_GET_MEDIA_PARAMETERS param;
|
||||
DWORD size = sizeof(param);
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
if (strnicmp(name, "\\\\.\\tape", 8))
|
||||
{
|
||||
@ -523,7 +523,7 @@ UCHAR MVOL_write(UCHAR c, int *io_cnt, UCHAR ** io_ptr)
|
||||
UCHAR *ptr;
|
||||
ULONG left, cnt;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
ULONG size_to_write = BURP_UP_TO_BLOCK(*io_ptr - tdgbl->mvol_io_buffer);
|
||||
|
||||
@ -752,7 +752,7 @@ static void bad_attribute(USHORT attribute, USHORT type)
|
||||
{
|
||||
TEXT name[128];
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
gds__msg_format(0, 12, type, sizeof(name), name, 0, 0, 0, 0, 0);
|
||||
BURP_print(80, name, (void*) (IPTR) attribute, NULL, NULL, NULL);
|
||||
@ -772,7 +772,7 @@ static void bad_attribute(USHORT attribute, USHORT type)
|
||||
//
|
||||
static void file_not_empty(void)
|
||||
{
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
tdgbl->mvol_empty_file = FALSE;
|
||||
}
|
||||
@ -798,7 +798,7 @@ static SLONG get_numeric(void)
|
||||
//
|
||||
static int get_text(UCHAR* text, SSHORT length)
|
||||
{
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
ULONG l = get(tdgbl);
|
||||
length -= l;
|
||||
@ -829,7 +829,7 @@ static int get_text(UCHAR* text, SSHORT length)
|
||||
//
|
||||
static DESC next_volume( DESC handle, ULONG mode, bool full_buffer)
|
||||
{
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// We must close the old handle before the user inserts
|
||||
// another tape, or something.
|
||||
@ -951,7 +951,7 @@ static void prompt_for_name(SCHAR* name, int length)
|
||||
FILE* term_out = NULL;
|
||||
TEXT msg[128];
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// Unless we are operating as a service, stdin can't necessarily be trusted.
|
||||
// Get a location to read from.
|
||||
@ -1047,7 +1047,7 @@ static void prompt_for_name(SCHAR* name, int length)
|
||||
//
|
||||
static void put_asciz( SCHAR attribute, const TEXT* string)
|
||||
{
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
SSHORT l = 0;
|
||||
for (const TEXT *p = string; *p; p++)
|
||||
@ -1074,7 +1074,7 @@ static void put_asciz( SCHAR attribute, const TEXT* string)
|
||||
//
|
||||
static void put_numeric( SCHAR attribute, int value)
|
||||
{
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
const ULONG vax_value = gds__vax_integer(reinterpret_cast<const UCHAR*>(&value), sizeof(value));
|
||||
const UCHAR* p = (UCHAR *) &vax_value;
|
||||
@ -1101,7 +1101,7 @@ static bool read_header(DESC handle,
|
||||
ULONG temp_buffer_size;
|
||||
TEXT buffer[256], *p, msg[128];
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// Headers are a version number, and a volume number
|
||||
|
||||
@ -1235,7 +1235,7 @@ static bool write_header(DESC handle,
|
||||
ULONG backup_buffer_size,
|
||||
bool full_buffer)
|
||||
{
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
if (backup_buffer_size)
|
||||
{
|
||||
@ -1318,7 +1318,7 @@ bool MVOL_split_hdr_write(void)
|
||||
{
|
||||
TEXT buffer[HDR_SPLIT_SIZE + 1];
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
fb_assert(tdgbl->action->act_action == ACT_backup_split);
|
||||
fb_assert(tdgbl->action->act_file->fil_fd != INVALID_HANDLE_VALUE);
|
||||
@ -1357,7 +1357,7 @@ bool MVOL_split_hdr_write(void)
|
||||
//
|
||||
bool MVOL_split_hdr_read(void)
|
||||
{
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
fb_assert(tdgbl->action->act_file->fil_fd != INVALID_HANDLE_VALUE);
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
||||
* 2003.08.17 Claudio Valderrama: Fix SF Bug #750659.
|
||||
*/
|
||||
/*
|
||||
$Id: restore.epp,v 1.73 2004-05-02 23:03:43 skidder Exp $
|
||||
$Id: restore.epp,v 1.74 2004-05-19 18:05:50 brodsom Exp $
|
||||
*/
|
||||
|
||||
#include "firebird.h"
|
||||
@ -246,7 +246,7 @@ int RESTORE_restore (const TEXT* file_name,
|
||||
isc_req_handle req_handle4 = 0;
|
||||
BASED_ON RDB$INDICES.RDB$INDEX_NAME index_name;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
tdgbl->io_ptr = NULL;
|
||||
tdgbl->io_cnt = 0;
|
||||
@ -663,7 +663,7 @@ void add_files (const UCHAR* file_name)
|
||||
**************************************/
|
||||
isc_req_handle req_handle1 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// store the RDB$FILES records
|
||||
|
||||
@ -739,7 +739,7 @@ void bad_attribute (scan_attr_t scan_next_attr,
|
||||
* look for next valid attribute to continue the process.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
SLONG skip_count = 0;
|
||||
|
||||
@ -787,7 +787,7 @@ USHORT check_db_version()
|
||||
**************************************/
|
||||
isc_req_handle req_handle1 = 0, req_handle2 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
USHORT db_version = DB_VERSION_DDL4;
|
||||
FOR (REQUEST_HANDLE req_handle1)
|
||||
@ -826,7 +826,7 @@ void create_database (const TEXT* file_name)
|
||||
* things to do.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// Get (physical) database record
|
||||
|
||||
@ -1045,7 +1045,7 @@ void decompress(UCHAR* buffer,
|
||||
* Get a number of compressed bytes.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
UCHAR* p = buffer;
|
||||
const UCHAR* const end = p + length;
|
||||
@ -1101,7 +1101,7 @@ void eat_blob()
|
||||
* Discard a blob from backup file
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
const SLONG length = get_numeric();
|
||||
|
||||
@ -1121,7 +1121,7 @@ burp_rel* find_relation (const TEXT* name)
|
||||
* one, produce a fatal error.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// Why isn't strcmp used here?
|
||||
for (burp_rel* relation = tdgbl->relations; relation;
|
||||
@ -1151,7 +1151,7 @@ void general_on_error()
|
||||
* Handle any general ON_ERROR clause during restore.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
BURP_print_status (isc_status);
|
||||
BURP_abort ();
|
||||
@ -1182,7 +1182,7 @@ bool get_acl (const TEXT *owner_nm,
|
||||
isc_info_blob_total_length,
|
||||
isc_info_blob_num_segments};
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// If the blob is null, don't store it. It will be restored as null.
|
||||
|
||||
@ -1384,7 +1384,7 @@ void get_array (burp_rel* relation,
|
||||
UCHAR blr_buffer[200]; // enough for a sdl with 16 dimensions
|
||||
lstring xdr_slice;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// don't free something you don't allocate
|
||||
lstring xdr_buffer;
|
||||
@ -1880,7 +1880,7 @@ void get_blob (const burp_fld* fields,
|
||||
* shiny, new blob.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// Pick up attributes
|
||||
|
||||
@ -1997,7 +1997,7 @@ void get_blr_blob (ISC_QUAD *blob_id,
|
||||
ISC_STATUS_ARRAY status_vector;
|
||||
UCHAR *buffer, static_buffer[1024], *p;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
ULONG length = (ULONG)get_numeric();
|
||||
|
||||
@ -2067,7 +2067,7 @@ bool get_character_set()
|
||||
ATT_TYPE attribute;
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
STORE (REQUEST_HANDLE tdgbl->handles_get_character_sets_req_handle1)
|
||||
X IN RDB$CHARACTER_SETS
|
||||
@ -2163,7 +2163,7 @@ bool get_chk_constraint()
|
||||
ATT_TYPE attribute;
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
STORE (REQUEST_HANDLE tdgbl->handles_get_chk_constraint_req_handle1)
|
||||
X IN RDB$CHECK_CONSTRAINTS
|
||||
@ -2213,7 +2213,7 @@ bool get_collation()
|
||||
ATT_TYPE attribute;
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
STORE (REQUEST_HANDLE tdgbl->handles_get_collation_req_handle1)
|
||||
X IN RDB$COLLATIONS
|
||||
@ -2302,7 +2302,7 @@ rec_type get_data (burp_rel* relation)
|
||||
isc_req_handle req_handle = 0;
|
||||
BASED_ON RDB$INDICES.RDB$INDEX_NAME index_name;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// If we're only doing meta-data, ignore data records
|
||||
|
||||
@ -2717,7 +2717,7 @@ bool get_exception(void)
|
||||
ULONG l;
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
STORE (REQUEST_HANDLE tdgbl->handles_get_exception_req_handle1)
|
||||
X IN RDB$EXCEPTIONS
|
||||
@ -2780,7 +2780,7 @@ burp_fld* get_field (burp_rel* relation)
|
||||
ATT_TYPE attribute;
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// If it is a view and there is a global transaction then use it
|
||||
bool global_tr = false;
|
||||
@ -3002,7 +3002,7 @@ bool get_field_dimensions()
|
||||
ATT_TYPE attribute;
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
STORE (REQUEST_HANDLE tdgbl->handles_get_field_dimensions_req_handle1)
|
||||
X IN RDB$FIELD_DIMENSIONS
|
||||
@ -3057,7 +3057,7 @@ bool get_files()
|
||||
ATT_TYPE attribute;
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
STORE (REQUEST_HANDLE tdgbl->handles_get_files_req_handle1)
|
||||
X IN RDB$FILES
|
||||
@ -3125,7 +3125,7 @@ bool get_filter()
|
||||
ATT_TYPE attribute;
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
STORE (REQUEST_HANDLE tdgbl->handles_get_filter_req_handle1)
|
||||
X IN RDB$FILTERS
|
||||
@ -3199,7 +3199,7 @@ bool get_function()
|
||||
SSHORT l;
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
STORE (REQUEST_HANDLE tdgbl->handles_get_function_req_handle1)
|
||||
X IN RDB$FUNCTIONS
|
||||
@ -3279,7 +3279,7 @@ void get_function_arg()
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
if (tdgbl->RESTORE_format >= 6)
|
||||
{
|
||||
@ -3431,7 +3431,7 @@ bool get_generator()
|
||||
name[0] = 0; // just in case.
|
||||
ATT_TYPE attribute;
|
||||
scan_attr_t scan_next_attr;
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
skip_init(&scan_next_attr);
|
||||
while (skip_scan(&scan_next_attr), get_attribute(&attribute, tdgbl) != att_end)
|
||||
@ -3481,7 +3481,7 @@ bool get_global_field()
|
||||
SSHORT l;
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
GFLD gfield = NULL;
|
||||
|
||||
@ -4072,7 +4072,7 @@ bool get_index (const burp_rel* relation)
|
||||
bool foreign_index = false;
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
SSHORT count = 0, segments = 0;
|
||||
|
||||
@ -4231,7 +4231,7 @@ void get_misc_blob (ISC_QUAD *blob_id,
|
||||
**************************************/
|
||||
ISC_STATUS_ARRAY status_vector;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
const USHORT length = (USHORT)get_numeric();
|
||||
|
||||
@ -4349,7 +4349,7 @@ bool get_procedure()
|
||||
SSHORT l;
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
isc_tr_handle local_trans =
|
||||
tdgbl->global_trans ? tdgbl->global_trans : gds_trans;
|
||||
@ -4464,7 +4464,7 @@ bool get_procedure_prm (GDS_NAME procptr)
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
isc_tr_handle local_trans =
|
||||
tdgbl->global_trans ? tdgbl->global_trans : gds_trans;
|
||||
@ -4537,7 +4537,7 @@ bool get_ref_constraint()
|
||||
ATT_TYPE attribute;
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
STORE (REQUEST_HANDLE tdgbl->handles_get_ref_constraint_req_handle1)
|
||||
X IN RDB$REF_CONSTRAINTS
|
||||
@ -4630,7 +4630,7 @@ bool get_relation()
|
||||
ext_file_name[0] = '\0';
|
||||
bool ext_file_name_null = true;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// Pick up relation attributes
|
||||
|
||||
@ -4854,7 +4854,7 @@ bool get_rel_constraint()
|
||||
ATT_TYPE attribute;
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
STORE (REQUEST_HANDLE tdgbl->handles_get_rel_constraint_req_handle1)
|
||||
X IN RDB$RELATION_CONSTRAINTS
|
||||
@ -4931,7 +4931,7 @@ bool get_relation_data()
|
||||
ATT_TYPE attribute;
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
burp_rel* relation = NULL;
|
||||
|
||||
@ -5017,7 +5017,7 @@ bool get_sql_roles()
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
SSHORT l;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
STORE (REQUEST_HANDLE tdgbl->handles_get_sql_roles_req_handle1)
|
||||
X IN RDB$ROLES
|
||||
@ -5107,7 +5107,7 @@ bool get_security_class()
|
||||
scan_attr_t scan_next_attr;
|
||||
bool is_valid_sec_class = false;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
STORE (REQUEST_HANDLE tdgbl->handles_get_security_class_req_handle1)
|
||||
X IN RDB$SECURITY_CLASSES
|
||||
@ -5192,7 +5192,7 @@ void get_source_blob (
|
||||
**************************************/
|
||||
ISC_STATUS_ARRAY status_vector;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
SLONG length = get_numeric();
|
||||
|
||||
@ -5258,7 +5258,7 @@ USHORT get_text (
|
||||
* Move a text attribute to a string and fill.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
const ULONG l = get(tdgbl);
|
||||
|
||||
@ -5292,7 +5292,7 @@ bool get_trigger_old (
|
||||
TEXT name[GDS_NAME_LEN];
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
STORE (REQUEST_HANDLE tdgbl->handles_get_trigger_old_req_handle1)
|
||||
X IN RDB$TRIGGERS
|
||||
@ -5412,7 +5412,7 @@ bool get_trigger()
|
||||
BASED_ON RDB$TRIGGERS.RDB$TRIGGER_NAME name;
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
isc_tr_handle local_trans =
|
||||
tdgbl->global_trans ? tdgbl->global_trans : gds_trans;
|
||||
@ -5539,7 +5539,7 @@ bool get_trigger_message()
|
||||
BASED_ON RDB$TRIGGER_MESSAGES.RDB$MESSAGE_NUMBER number;
|
||||
BASED_ON RDB$TRIGGER_MESSAGES.RDB$MESSAGE message;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
bool flag = false;
|
||||
skip_init(&scan_next_attr);
|
||||
@ -5632,7 +5632,7 @@ bool get_type()
|
||||
TEXT temp[GDS_NAME_LEN];
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
STORE (REQUEST_HANDLE tdgbl->handles_get_type_req_handle1)
|
||||
X IN RDB$TYPES
|
||||
@ -5715,7 +5715,7 @@ bool get_user_privilege()
|
||||
BASED_ON RDB$USER_PRIVILEGES.RDB$USER_TYPE user_type;
|
||||
BASED_ON RDB$USER_PRIVILEGES.RDB$OBJECT_TYPE object_type;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
user_type = obj_user;
|
||||
object_type = obj_relation;
|
||||
|
||||
@ -5907,7 +5907,7 @@ bool get_view (burp_rel* relation)
|
||||
ATT_TYPE attribute;
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// If there is a global transaction then use it
|
||||
|
||||
@ -5968,7 +5968,7 @@ void ignore_array (burp_rel* relation)
|
||||
USHORT field_number;
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// Pick up attributes
|
||||
|
||||
@ -6056,7 +6056,7 @@ void ignore_blob()
|
||||
ATT_TYPE attribute;
|
||||
scan_attr_t scan_next_attr;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// Pick up attributes
|
||||
|
||||
@ -6113,7 +6113,7 @@ rec_type ignore_data (burp_rel* relation)
|
||||
* Ignore data records for a relation.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
ULONG records = 0;
|
||||
rec_type record;
|
||||
@ -6182,7 +6182,7 @@ void realign(UCHAR* buffer,
|
||||
* than the new.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
for (const burp_fld* field = relation->rel_fields; field; field = field->fld_next)
|
||||
{
|
||||
@ -6243,7 +6243,7 @@ USHORT recompute_length (burp_rel* relation)
|
||||
ULONG offset = 0; // there was garbage, possibly nobody uses sparc define?
|
||||
const SSHORT* alignments = old_sparcs;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
for (burp_fld* field = relation->rel_fields; field; field = field->fld_next)
|
||||
{
|
||||
@ -6309,7 +6309,7 @@ bool restore (const TEXT* file_name,
|
||||
isc_req_handle req_handle1 = 0, req_handle2 = 0, req_handle3 = 0,
|
||||
req_handle5 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
// Read burp record first
|
||||
|
||||
@ -6639,7 +6639,7 @@ void restore_security_class (const TEXT *owner_nm,
|
||||
**************************************/
|
||||
isc_req_handle req_handle2 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
isc_tr_handle local_trans = gds_trans;
|
||||
|
||||
FOR (REQUEST_HANDLE req_handle2)
|
||||
@ -6693,7 +6693,7 @@ USHORT get_view_base_relation_count (const TEXT* current_view_name,
|
||||
|
||||
isc_req_handle req_handle1 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
USHORT result = 0;
|
||||
|
||||
@ -6738,7 +6738,7 @@ void store_blr_gen_id (const TEXT* gen_name, // TEXT GDS_NAME[GDS_NAME_LEN]
|
||||
* Store the blr_gen_id for the relation.
|
||||
*
|
||||
**************************************/
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
STORE (REQUEST_HANDLE tdgbl->handles_store_blr_gen_id_req_handle1)
|
||||
X IN RDB$GENERATORS
|
||||
@ -6873,7 +6873,7 @@ void update_global_field()
|
||||
USHORT length;
|
||||
isc_req_handle req_handle1 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
for (gfld* gfield = tdgbl->gbl_global_fields; gfield; )
|
||||
{
|
||||
@ -6960,7 +6960,7 @@ void update_view_dbkey_lengths()
|
||||
**************************************/
|
||||
isc_req_handle req_handle2 = 0;
|
||||
|
||||
TGBL tdgbl = GET_THREAD_DATA;
|
||||
TGBL tdgbl = BURP_get_thread_data;
|
||||
|
||||
FOR (REQUEST_HANDLE req_handle2)
|
||||
R IN RDB$RELATIONS
|
||||
|
@ -97,7 +97,7 @@ void ALLD_fini()
|
||||
|
||||
void ALLD_init()
|
||||
{
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
if (!init_flag)
|
||||
{
|
||||
@ -112,7 +112,7 @@ void ALLD_init()
|
||||
#ifdef NOT_USED_OR_REPLACED
|
||||
void DsqlMemoryPool::ALLD_push(BLK object, dsql_lls** stack)
|
||||
{
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
DsqlMemoryPool* pool = tdsql->tsql_default;
|
||||
|
||||
dsql_lls* node = pool->lls_cache.newBlock();
|
||||
|
@ -20,7 +20,7 @@
|
||||
* All Rights Reserved.
|
||||
* Contributor(s): ______________________________________.
|
||||
*
|
||||
* $Id: ddl.cpp,v 1.101 2004-05-17 22:26:43 brodsom Exp $
|
||||
* $Id: ddl.cpp,v 1.102 2004-05-19 18:06:44 brodsom Exp $
|
||||
* 2001.5.20 Claudio Valderrama: Stop null pointer that leads to a crash,
|
||||
* caused by incomplete yacc syntax that allows ALTER DOMAIN dom SET;
|
||||
*
|
||||
@ -263,7 +263,7 @@ void DDL_execute(dsql_req* request)
|
||||
* metadata updates.
|
||||
*
|
||||
**************************************/
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
#ifdef DSQL_DEBUG
|
||||
if (DSQL_debug & 4) {
|
||||
@ -2227,7 +2227,7 @@ static void define_procedure( dsql_req* request, NOD_TYPE op)
|
||||
* Create DYN to store a procedure
|
||||
*
|
||||
**************************************/
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
SSHORT inputs = 0, defaults = 0;
|
||||
SSHORT outputs = 0;
|
||||
@ -2496,7 +2496,7 @@ void DDL_gen_block(dsql_req* request, dsql_nod* node)
|
||||
SSHORT inputs = 0, outputs = 0, locals = 0;
|
||||
request->req_blk_node = node;
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_nod* parameters;
|
||||
|
||||
@ -2856,7 +2856,7 @@ static void define_shadow(dsql_req* request)
|
||||
//
|
||||
static void define_trigger( dsql_req* request, dsql_nod* node)
|
||||
{
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
// make the "define trigger" node the current request ddl node so
|
||||
// that generating of BLR will be appropriate for trigger
|
||||
@ -3761,7 +3761,7 @@ static void define_view_trigger( dsql_req* request, dsql_nod* node, dsql_nod* rs
|
||||
* Create the ddl to define a trigger for a VIEW WITH CHECK OPTION.
|
||||
*
|
||||
**************************************/
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_nod* ddl_node = request->req_ddl_node;
|
||||
|
||||
@ -5159,7 +5159,7 @@ static void modify_relation( dsql_req* request)
|
||||
* global fields for the local fields.
|
||||
*
|
||||
**************************************/
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_nod* ddl_node = request->req_ddl_node;
|
||||
|
||||
@ -5773,7 +5773,7 @@ static void save_field(dsql_req* request, const TEXT* field_name)
|
||||
*
|
||||
**************************************/
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_rel* relation = request->req_relation;
|
||||
if (!relation) {
|
||||
@ -5803,7 +5803,7 @@ static void save_relation( dsql_req* request, const dsql_str* relation_name)
|
||||
*
|
||||
**************************************/
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
if (request->req_flags & REQ_save_metadata) {
|
||||
return;
|
||||
|
@ -441,7 +441,7 @@ GDS_DSQL_ALLOCATE_CPP( ISC_STATUS* user_status,
|
||||
tsql thd_context;
|
||||
tsql* tdsql;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
DSQL_set_thread_data;
|
||||
|
||||
try
|
||||
{
|
||||
@ -466,7 +466,7 @@ GDS_DSQL_ALLOCATE_CPP( ISC_STATUS* user_status,
|
||||
catch(const std::exception& ex)
|
||||
{
|
||||
Firebird::stuff_exception(tdsql->tsql_status, ex);
|
||||
RESTORE_THREAD_DATA;
|
||||
DSQL_restore_thread_data;
|
||||
return tdsql->tsql_status[1];
|
||||
}
|
||||
|
||||
@ -515,7 +515,7 @@ ISC_STATUS GDS_DSQL_EXECUTE_CPP(
|
||||
tsql* tdsql;
|
||||
ISC_STATUS sing_status;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
DSQL_set_thread_data;
|
||||
|
||||
try
|
||||
{
|
||||
@ -615,11 +615,11 @@ ISC_STATUS GDS_DSQL_EXECUTE_CPP(
|
||||
catch (const std::exception& ex)
|
||||
{
|
||||
Firebird::stuff_exception(tdsql->tsql_status, ex);
|
||||
RESTORE_THREAD_DATA;
|
||||
DSQL_restore_thread_data;
|
||||
return tdsql->tsql_status[1];
|
||||
}
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
DSQL_restore_thread_data;
|
||||
return sing_status;
|
||||
}
|
||||
|
||||
@ -656,7 +656,7 @@ static ISC_STATUS dsql8_execute_immediate_common(ISC_STATUS* user_status,
|
||||
tsql thd_context;
|
||||
tsql* tdsql;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
DSQL_set_thread_data;
|
||||
|
||||
try
|
||||
{
|
||||
@ -737,14 +737,14 @@ static ISC_STATUS dsql8_execute_immediate_common(ISC_STATUS* user_status,
|
||||
Firebird::stuff_exception(tdsql->tsql_status, ex);
|
||||
status = error();
|
||||
release_request(request, true);
|
||||
RESTORE_THREAD_DATA;
|
||||
DSQL_restore_thread_data;
|
||||
return status;
|
||||
}
|
||||
}
|
||||
catch(const std::exception& ex)
|
||||
{
|
||||
Firebird::stuff_exception(tdsql->tsql_status, ex);
|
||||
RESTORE_THREAD_DATA;
|
||||
DSQL_restore_thread_data;
|
||||
return tdsql->tsql_status[1];
|
||||
}
|
||||
|
||||
@ -963,7 +963,7 @@ ISC_STATUS GDS_DSQL_FETCH_CPP( ISC_STATUS* user_status,
|
||||
tsql thd_context;
|
||||
tsql* tdsql;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
DSQL_set_thread_data;
|
||||
|
||||
try
|
||||
{
|
||||
@ -1116,15 +1116,15 @@ ISC_STATUS GDS_DSQL_FETCH_CPP( ISC_STATUS* user_status,
|
||||
reinterpret_cast<char*>(buffer));
|
||||
THREAD_ENTER();
|
||||
if (!s) {
|
||||
RESTORE_THREAD_DATA;
|
||||
DSQL_restore_thread_data;
|
||||
return 0;
|
||||
}
|
||||
else if (s == isc_segment) {
|
||||
RESTORE_THREAD_DATA;
|
||||
DSQL_restore_thread_data;
|
||||
return 101;
|
||||
}
|
||||
else if (s == isc_segstr_eof) {
|
||||
RESTORE_THREAD_DATA;
|
||||
DSQL_restore_thread_data;
|
||||
return 100;
|
||||
}
|
||||
else
|
||||
@ -1145,7 +1145,7 @@ ISC_STATUS GDS_DSQL_FETCH_CPP( ISC_STATUS* user_status,
|
||||
if (eof)
|
||||
{
|
||||
if (!*((USHORT *) eof->par_desc.dsc_address)) {
|
||||
RESTORE_THREAD_DATA;
|
||||
DSQL_restore_thread_data;
|
||||
return 100;
|
||||
}
|
||||
}
|
||||
@ -1155,7 +1155,7 @@ ISC_STATUS GDS_DSQL_FETCH_CPP( ISC_STATUS* user_status,
|
||||
catch(const std::exception& ex)
|
||||
{
|
||||
Firebird::stuff_exception(tdsql->tsql_status, ex);
|
||||
RESTORE_THREAD_DATA;
|
||||
DSQL_restore_thread_data;
|
||||
return tdsql->tsql_status[1];
|
||||
}
|
||||
|
||||
@ -1183,7 +1183,7 @@ ISC_STATUS GDS_DSQL_FREE_CPP(ISC_STATUS* user_status,
|
||||
tsql thd_context;
|
||||
tsql* tdsql;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
DSQL_set_thread_data;
|
||||
|
||||
try
|
||||
{
|
||||
@ -1214,7 +1214,7 @@ ISC_STATUS GDS_DSQL_FREE_CPP(ISC_STATUS* user_status,
|
||||
catch(const std::exception& ex)
|
||||
{
|
||||
Firebird::stuff_exception(tdsql->tsql_status, ex);
|
||||
RESTORE_THREAD_DATA;
|
||||
DSQL_restore_thread_data;
|
||||
return tdsql->tsql_status[1];
|
||||
}
|
||||
|
||||
@ -1249,7 +1249,7 @@ ISC_STATUS GDS_DSQL_INSERT_CPP( ISC_STATUS* user_status,
|
||||
tsql thd_context;
|
||||
tsql* tdsql;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
DSQL_set_thread_data;
|
||||
|
||||
try
|
||||
{
|
||||
@ -1295,7 +1295,7 @@ ISC_STATUS GDS_DSQL_INSERT_CPP( ISC_STATUS* user_status,
|
||||
catch(const std::exception& ex)
|
||||
{
|
||||
Firebird::stuff_exception(tdsql->tsql_status, ex);
|
||||
RESTORE_THREAD_DATA;
|
||||
DSQL_restore_thread_data;
|
||||
return tdsql->tsql_status[1];
|
||||
}
|
||||
|
||||
@ -1337,7 +1337,7 @@ ISC_STATUS GDS_DSQL_PREPARE_CPP(ISC_STATUS* user_status,
|
||||
tsql thd_context;
|
||||
tsql* tdsql;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
DSQL_set_thread_data;
|
||||
|
||||
try
|
||||
{
|
||||
@ -1451,7 +1451,7 @@ ISC_STATUS GDS_DSQL_PREPARE_CPP(ISC_STATUS* user_status,
|
||||
|
||||
*req_handle = request;
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
DSQL_restore_thread_data;
|
||||
|
||||
return GDS_DSQL_SQL_INFO_CPP(user_status,
|
||||
req_handle,
|
||||
@ -1465,14 +1465,14 @@ ISC_STATUS GDS_DSQL_PREPARE_CPP(ISC_STATUS* user_status,
|
||||
Firebird::stuff_exception(tdsql->tsql_status, ex);
|
||||
status = error();
|
||||
release_request(request, true);
|
||||
RESTORE_THREAD_DATA;
|
||||
DSQL_restore_thread_data;
|
||||
return status;
|
||||
}
|
||||
}
|
||||
catch(const std::exception& ex)
|
||||
{
|
||||
Firebird::stuff_exception(tdsql->tsql_status, ex);
|
||||
RESTORE_THREAD_DATA;
|
||||
DSQL_restore_thread_data;
|
||||
return tdsql->tsql_status[1];
|
||||
}
|
||||
}
|
||||
@ -1499,7 +1499,7 @@ ISC_STATUS GDS_DSQL_SET_CURSOR_CPP( ISC_STATUS* user_status,
|
||||
tsql thd_context;
|
||||
tsql* tdsql;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
DSQL_set_thread_data;
|
||||
|
||||
try
|
||||
{
|
||||
@ -1574,7 +1574,7 @@ ISC_STATUS GDS_DSQL_SET_CURSOR_CPP( ISC_STATUS* user_status,
|
||||
catch(const std::exception& ex)
|
||||
{
|
||||
Firebird::stuff_exception(tdsql->tsql_status, ex);
|
||||
RESTORE_THREAD_DATA;
|
||||
DSQL_restore_thread_data;
|
||||
return tdsql->tsql_status[1];
|
||||
}
|
||||
|
||||
@ -1609,7 +1609,7 @@ ISC_STATUS GDS_DSQL_SQL_INFO_CPP( ISC_STATUS* user_status,
|
||||
tsql thd_context;
|
||||
tsql* tdsql;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
DSQL_set_thread_data;
|
||||
|
||||
try
|
||||
{
|
||||
@ -1804,7 +1804,7 @@ ISC_STATUS GDS_DSQL_SQL_INFO_CPP( ISC_STATUS* user_status,
|
||||
catch(const std::exception& ex)
|
||||
{
|
||||
Firebird::stuff_exception(tdsql->tsql_status, ex);
|
||||
RESTORE_THREAD_DATA;
|
||||
DSQL_restore_thread_data;
|
||||
return tdsql->tsql_status[1];
|
||||
}
|
||||
|
||||
@ -3046,7 +3046,7 @@ static USHORT convert( SLONG number, UCHAR* buffer)
|
||||
**/
|
||||
static ISC_STATUS error()
|
||||
{
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
return tdsql->tsql_status[1];
|
||||
}
|
||||
@ -3083,7 +3083,7 @@ static void execute_blob( dsql_req* request,
|
||||
UCHAR bpb[24];
|
||||
ISC_STATUS s;
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_blb* blob = request->req_blob;
|
||||
map_in_out(request, blob->blb_open_in_msg, in_blr_length, in_blr,
|
||||
@ -3190,7 +3190,7 @@ static ISC_STATUS execute_request(dsql_req* request,
|
||||
ISC_STATUS s;
|
||||
ISC_STATUS_ARRAY local_status;
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
request->req_trans = *trans_handle;
|
||||
ISC_STATUS return_status = FB_SUCCESS;
|
||||
@ -3623,7 +3623,7 @@ static USHORT get_plan_info(
|
||||
|
||||
ISC_STATUS s;
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
memset(explain_buffer, 0, sizeof(explain_buffer));
|
||||
SCHAR* explain_ptr = explain_buffer;
|
||||
SCHAR* buffer_ptr = *out_buffer;
|
||||
@ -3739,7 +3739,7 @@ static USHORT get_request_info(
|
||||
{
|
||||
ISC_STATUS s;
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
// get the info for the request from the engine
|
||||
|
||||
@ -4633,7 +4633,7 @@ static dsql_req* prepare(
|
||||
{
|
||||
ISC_STATUS_ARRAY local_status;
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
MOVE_CLEAR(local_status, sizeof(ISC_STATUS) * ISC_STATUS_LENGTH);
|
||||
|
||||
@ -4849,7 +4849,7 @@ static dsql_req* prepare(
|
||||
**/
|
||||
static void punt(void)
|
||||
{
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
Firebird::status_exception::raise(tdsql->tsql_status);
|
||||
}
|
||||
@ -4914,7 +4914,7 @@ static void release_request(dsql_req* request, bool top_level)
|
||||
|
||||
ISC_STATUS_ARRAY status_vector;
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
// If request is parent, orphan the children and
|
||||
// release a portion of their requests
|
||||
@ -4992,7 +4992,7 @@ static void release_request(dsql_req* request, bool top_level)
|
||||
static ISC_STATUS return_success(void)
|
||||
{
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
ISC_STATUS* p = tdsql->tsql_status;
|
||||
*p++ = isc_arg_gds;
|
||||
@ -5003,7 +5003,7 @@ static ISC_STATUS return_success(void)
|
||||
*p = isc_arg_end;
|
||||
}
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
DSQL_restore_thread_data;
|
||||
|
||||
return FB_SUCCESS;
|
||||
}
|
||||
|
@ -625,11 +625,8 @@ struct tsql
|
||||
};
|
||||
|
||||
|
||||
#ifdef GET_THREAD_DATA
|
||||
#undef GET_THREAD_DATA
|
||||
#endif
|
||||
|
||||
#define GET_THREAD_DATA ((tsql*) THD_get_specific())
|
||||
#define DSQL_get_thread_data ((tsql*) THD_get_specific())
|
||||
/*! \var unsigned DSQL_debug
|
||||
\brief Debug level
|
||||
|
||||
@ -643,12 +640,12 @@ struct tsql
|
||||
64 Display BLR in dsql/prepare
|
||||
> 256 Display yacc parser output level = DSQL_level>>8
|
||||
*/
|
||||
#define SET_THREAD_DATA {\
|
||||
#define DSQL_set_thread_data {\
|
||||
tdsql = &thd_context;\
|
||||
THD_put_specific ((THDD) tdsql);\
|
||||
tdsql->tsql_thd_data.thdd_type = THDD_TYPE_TSQL;\
|
||||
}
|
||||
#define RESTORE_THREAD_DATA THD_restore_specific()
|
||||
#define DSQL_restore_thread_data THD_restore_specific()
|
||||
|
||||
|
||||
// macros for error generation
|
||||
|
@ -125,7 +125,7 @@ void ERRD_error( int code, const char* text)
|
||||
{
|
||||
TEXT s[256];
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
sprintf(s, "** DSQL error: %s **\n", text);
|
||||
TRACE(s);
|
||||
@ -166,7 +166,7 @@ bool ERRD_post_warning(ISC_STATUS status, ...)
|
||||
|
||||
VA_START(args, status);
|
||||
|
||||
ISC_STATUS* status_vector = ((tsql*) GET_THREAD_DATA)->tsql_status;
|
||||
ISC_STATUS* status_vector = ((tsql*) DSQL_get_thread_data)->tsql_status;
|
||||
int indx = 0;
|
||||
|
||||
if (status_vector[0] != isc_arg_gds ||
|
||||
@ -264,7 +264,7 @@ void ERRD_post(ISC_STATUS status, ...)
|
||||
{
|
||||
int warning_indx = 0;
|
||||
|
||||
ISC_STATUS* status_vector = ((tsql*) GET_THREAD_DATA)->tsql_status;
|
||||
ISC_STATUS* status_vector = ((tsql*) DSQL_get_thread_data)->tsql_status;
|
||||
|
||||
// stuff the status into temp buffer
|
||||
ISC_STATUS_ARRAY tmp_status;
|
||||
@ -363,7 +363,7 @@ void ERRD_post(ISC_STATUS status, ...)
|
||||
**/
|
||||
void ERRD_punt(void)
|
||||
{
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
// Save any strings in a permanent location
|
||||
|
||||
|
@ -542,7 +542,7 @@ void GEN_expr( dsql_req* request, dsql_nod* node)
|
||||
**/
|
||||
void GEN_port( dsql_req* request, dsql_msg* message)
|
||||
{
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
// if (request->req_blr_string) {
|
||||
stuff(request, blr_message);
|
||||
|
@ -86,7 +86,7 @@ static inline bool is_date_and_time(const dsc& d1, const dsc& d2)
|
||||
**/
|
||||
dsql_nod* MAKE_constant(dsql_str* constant, dsql_constant_type numeric_flag)
|
||||
{
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_nod* node = FB_NEW_RPT(*tdsql->tsql_default,
|
||||
(numeric_flag == CONSTANT_TIMESTAMP ||
|
||||
@ -233,7 +233,7 @@ dsql_nod* MAKE_constant(dsql_str* constant, dsql_constant_type numeric_flag)
|
||||
**/
|
||||
dsql_nod* MAKE_str_constant(dsql_str* constant, SSHORT character_set)
|
||||
{
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_nod* node = FB_NEW_RPT(*tdsql->tsql_default, 1) dsql_nod;
|
||||
node->nod_type = nod_constant;
|
||||
@ -1526,7 +1526,7 @@ dsql_nod* MAKE_list(DsqlNodStack& stack)
|
||||
**/
|
||||
dsql_nod* MAKE_node(NOD_TYPE type, int count)
|
||||
{
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_nod* node = FB_NEW_RPT(*tdsql->tsql_default, count) dsql_nod;
|
||||
node->nod_type = type;
|
||||
@ -1565,7 +1565,7 @@ dsql_par* MAKE_parameter(dsql_msg* message, bool sqlda_flag, bool null_flag,
|
||||
}
|
||||
}
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_par* parameter = FB_NEW(*tdsql->tsql_default) dsql_par;
|
||||
parameter->par_message = message;
|
||||
@ -1643,7 +1643,7 @@ dsql_sym* MAKE_symbol(dsql_dbb* database,
|
||||
fb_assert(name);
|
||||
fb_assert(length > 0);
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_sym* symbol = FB_NEW_RPT(*tdsql->tsql_default, length) dsql_sym;
|
||||
symbol->sym_type = type;
|
||||
@ -1677,7 +1677,7 @@ dsql_sym* MAKE_symbol(dsql_dbb* database,
|
||||
**/
|
||||
dsql_str* MAKE_tagged_string(const char* str_, size_t length, const char* charset)
|
||||
{
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_str* string = FB_NEW_RPT(*tdsql->tsql_default, length) dsql_str;
|
||||
string->str_charset = charset;
|
||||
@ -1731,7 +1731,7 @@ dsql_nod* MAKE_variable(dsql_fld* field,
|
||||
{
|
||||
DEV_BLKCHK(field, dsql_type_fld);
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_var* variable = FB_NEW_RPT(*tdsql->tsql_default, strlen(name)) dsql_var;
|
||||
dsql_nod* node = MAKE_node(nod_variable, e_var_count);
|
||||
|
@ -1400,7 +1400,7 @@ dsql_rel* METD_get_relation(dsql_req* request, const dsql_str* name)
|
||||
dsql_sym* symbol;
|
||||
tsql* tdsql;
|
||||
|
||||
tdsql = GET_THREAD_DATA;
|
||||
tdsql = DSQL_get_thread_data;
|
||||
|
||||
metd_rec_lock();
|
||||
|
||||
|
@ -72,7 +72,7 @@ static void post_error( ISC_STATUS status, ...)
|
||||
ISC_STATUS *v, *v_end, *temp;
|
||||
ISC_STATUS_ARRAY temp_status;
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
/* copy into a temporary array any other arguments which may
|
||||
* have been handed to us, then post the error.
|
||||
|
@ -9106,7 +9106,7 @@ static dsql_fld* make_field (dsql_nod* field_name)
|
||||
* Make a field block of given name.
|
||||
*
|
||||
**************************************/
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
if (field_name == NULL)
|
||||
{
|
||||
@ -9136,7 +9136,7 @@ static dsql_fil* make_file()
|
||||
* Make a file block
|
||||
*
|
||||
**************************************/
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_fil* temp_file = FB_NEW(*tdsql->tsql_default) dsql_fil;
|
||||
|
||||
@ -9156,7 +9156,7 @@ static dsql_nod* make_list (dsql_nod* node)
|
||||
* Collapse nested list nodes into single list.
|
||||
*
|
||||
**************************************/
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
if (!node)
|
||||
return node;
|
||||
@ -9192,7 +9192,7 @@ static dsql_nod* make_parameter (void)
|
||||
* Any change should also be made to function below
|
||||
*
|
||||
**************************************/
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_nod* node = FB_NEW_RPT(*tdsql->tsql_default, 1) dsql_nod;
|
||||
node->nod_type = nod_parameter;
|
||||
@ -9220,7 +9220,7 @@ static dsql_nod* make_node (NOD_TYPE type,
|
||||
* Any change should also be made to function below
|
||||
*
|
||||
**************************************/
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_nod* node = FB_NEW_RPT(*tdsql->tsql_default, count) dsql_nod;
|
||||
node->nod_type = type;
|
||||
@ -9253,7 +9253,7 @@ static dsql_nod* make_flag_node (NOD_TYPE type,
|
||||
* Make a node of given type. Set flag field
|
||||
*
|
||||
**************************************/
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_nod* node = FB_NEW_RPT(*tdsql->tsql_default, count) dsql_nod;
|
||||
node->nod_type = type;
|
||||
|
@ -4323,7 +4323,7 @@ static dsql_fld* make_field (dsql_nod* field_name)
|
||||
* Make a field block of given name.
|
||||
*
|
||||
**************************************/
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
if (field_name == NULL)
|
||||
{
|
||||
@ -4353,7 +4353,7 @@ static dsql_fil* make_file()
|
||||
* Make a file block
|
||||
*
|
||||
**************************************/
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_fil* temp_file = FB_NEW(*tdsql->tsql_default) dsql_fil;
|
||||
|
||||
@ -4373,7 +4373,7 @@ static dsql_nod* make_list (dsql_nod* node)
|
||||
* Collapse nested list nodes into single list.
|
||||
*
|
||||
**************************************/
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
if (!node)
|
||||
return node;
|
||||
@ -4409,7 +4409,7 @@ static dsql_nod* make_parameter (void)
|
||||
* Any change should also be made to function below
|
||||
*
|
||||
**************************************/
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_nod* node = FB_NEW_RPT(*tdsql->tsql_default, 1) dsql_nod;
|
||||
node->nod_type = nod_parameter;
|
||||
@ -4437,7 +4437,7 @@ static dsql_nod* make_node (NOD_TYPE type,
|
||||
* Any change should also be made to function below
|
||||
*
|
||||
**************************************/
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_nod* node = FB_NEW_RPT(*tdsql->tsql_default, count) dsql_nod;
|
||||
node->nod_type = type;
|
||||
@ -4470,7 +4470,7 @@ static dsql_nod* make_flag_node (NOD_TYPE type,
|
||||
* Make a node of given type. Set flag field
|
||||
*
|
||||
**************************************/
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_nod* node = FB_NEW_RPT(*tdsql->tsql_default, count) dsql_nod;
|
||||
node->nod_type = type;
|
||||
|
@ -285,7 +285,7 @@ dsql_ctx* PASS1_make_context(dsql_req* request, dsql_nod* relation_node)
|
||||
DEV_BLKCHK(request, dsql_type_req);
|
||||
DEV_BLKCHK(relation_node, dsql_type_nod);
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_rel* relation = NULL;
|
||||
dsql_prc* procedure = NULL;
|
||||
@ -2981,7 +2981,7 @@ static void pass1_blob( dsql_req* request, dsql_nod* input)
|
||||
DEV_BLKCHK(request, dsql_type_req);
|
||||
DEV_BLKCHK(input, dsql_type_nod);
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
PASS1_make_context(request, input->nod_arg[e_blb_relation]);
|
||||
dsql_nod* field = pass1_field(request, input->nod_arg[e_blb_field], false);
|
||||
@ -3135,7 +3135,7 @@ static dsql_nod* pass1_collate( dsql_req* request, dsql_nod* sub1,
|
||||
DEV_BLKCHK(sub1, dsql_type_nod);
|
||||
DEV_BLKCHK(collation, dsql_type_str);
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_nod* node = MAKE_node(nod_cast, e_cast_count);
|
||||
dsql_fld* field = FB_NEW_RPT(*tdsql->tsql_default, 1) dsql_fld;
|
||||
@ -3570,7 +3570,7 @@ static dsql_nod* pass1_derived_table(dsql_req* request, dsql_nod* input, bool pr
|
||||
DEV_BLKCHK(request, dsql_type_req);
|
||||
DEV_BLKCHK(input, dsql_type_nod);
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
dsql_nod* node = MAKE_node (nod_derived_table, e_derived_table_count);
|
||||
dsql_str* alias = (dsql_str*) input->nod_arg[e_derived_table_alias];
|
||||
@ -5081,7 +5081,7 @@ static dsql_nod* pass1_alias_list(dsql_req* request, dsql_nod* alias_list)
|
||||
}
|
||||
|
||||
// make up a dummy context to hold the resultant relation.
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
dsql_ctx* new_context = FB_NEW(*tdsql->tsql_default)
|
||||
dsql_ctx(*tdsql->tsql_default);
|
||||
new_context->ctx_context = context->ctx_context;
|
||||
@ -5193,7 +5193,7 @@ static dsql_ctx* pass1_alias(dsql_req* request, DsqlContextStack& stack, dsql_st
|
||||
**/
|
||||
static dsql_str* pass1_alias_concat(const dsql_str* input1, const dsql_str* input2)
|
||||
{
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
DEV_BLKCHK(input1, dsql_type_str);
|
||||
DEV_BLKCHK(input2, dsql_type_str);
|
||||
@ -5274,7 +5274,7 @@ static dsql_nod* pass1_rse( dsql_req* request, dsql_nod* input, dsql_nod* order,
|
||||
DEV_BLKCHK(input, dsql_type_nod);
|
||||
DEV_BLKCHK(order, dsql_type_nod);
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
// Handle implicit union case first. Maybe it's not a union
|
||||
|
||||
@ -6042,7 +6042,7 @@ static dsql_nod* pass1_union( dsql_req* request, dsql_nod* input,
|
||||
DEV_BLKCHK(input, dsql_type_nod);
|
||||
DEV_BLKCHK(order_list, dsql_type_nod);
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
// set up the rse node for the union.
|
||||
dsql_nod* union_rse = MAKE_node(nod_rse, e_rse_count);
|
||||
@ -6285,7 +6285,7 @@ static void pass1_union_auto_cast(dsql_nod* input, const dsc& desc,
|
||||
cast_node = select_item;
|
||||
}
|
||||
else {
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
cast_node = MAKE_node(nod_cast, e_cast_count);
|
||||
dsql_fld* afield = FB_NEW_RPT(*tdsql->tsql_default, 0) dsql_fld;
|
||||
cast_node->nod_arg[e_cast_target] = (dsql_nod*) afield;
|
||||
@ -6611,7 +6611,7 @@ static dsql_nod* post_map( dsql_nod* node, dsql_ctx* context)
|
||||
DEV_BLKCHK(node, dsql_type_nod);
|
||||
DEV_BLKCHK(context, dsql_type_ctx);
|
||||
|
||||
tsql* tdsql = GET_THREAD_DATA;
|
||||
tsql* tdsql = DSQL_get_thread_data;
|
||||
|
||||
// Check to see if the item has already been posted
|
||||
|
||||
|
@ -139,7 +139,7 @@ TEXT* ALL_cstring(const Firebird::string& in_string)
|
||||
* return to the user or where ever.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
JrdMemoryPool* pool = tdbb->tdbb_default;
|
||||
if (!pool) {
|
||||
@ -200,7 +200,7 @@ void ALL_init(void)
|
||||
* have been locked before entry.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
JrdMemoryPool* pool = tdbb->tdbb_default = dbb->dbb_permanent;
|
||||
|
@ -33,7 +33,7 @@
|
||||
*
|
||||
*/
|
||||
/*
|
||||
$Id: blb.cpp,v 1.75 2004-05-12 00:02:05 brodsom Exp $
|
||||
$Id: blb.cpp,v 1.76 2004-05-19 18:11:09 brodsom Exp $
|
||||
*/
|
||||
|
||||
#include "firebird.h"
|
||||
@ -1676,10 +1676,10 @@ static ISC_STATUS blob_filter( USHORT action,
|
||||
*
|
||||
**************************************/
|
||||
|
||||
/* Note: Cannot remove this GET_THREAD_DATA without API change to
|
||||
/* Note: Cannot remove this JRD_get_thread_data without API change to
|
||||
blob filter routines */
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
jrd_tra* transaction = (jrd_tra*) control->ctl_internal[1];
|
||||
bid* blob_id = reinterpret_cast<bid*>(control->ctl_internal[2]);
|
||||
@ -2312,9 +2312,9 @@ static void slice_callback(array_slice* arg, ULONG count, DSC* descriptors)
|
||||
FB_ALIGN((U_IPTR) array_desc->dsc_address,
|
||||
(MIN(sizeof(USHORT), ALIGNMENT))))
|
||||
{
|
||||
/* Note: cannot remove this GET_THREAD_DATA without api change
|
||||
/* Note: cannot remove this JRD_get_thread_data without api change
|
||||
to slice callback routines */
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
Firebird::HalfStaticArray<char, 1024> tmp_buffer;
|
||||
const USHORT tmp_len = array_desc->dsc_length;
|
||||
|
@ -49,7 +49,7 @@ Bookmark* BKM_allocate(RecordSource* rsb, USHORT length)
|
||||
* Allocate and initialize a bookmark structure.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
jrd_req* request = tdbb->tdbb_request;
|
||||
irsb* impure = (irsb*) ((UCHAR *) request + rsb->rsb_impure);
|
||||
@ -125,7 +125,7 @@ Bookmark* BKM_lookup(jrd_nod* node)
|
||||
bookmark = (Bookmark*) MOV_get_long(EVL_expr(tdbb, node), 0);
|
||||
#else
|
||||
{
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Attachment* attachment = tdbb->tdbb_attachment;
|
||||
|
||||
bookmark = NULL;
|
||||
@ -158,7 +158,7 @@ void BKM_release(jrd_nod* node)
|
||||
* Release a bookmark using a user supplied value.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Attachment* attachment = tdbb->tdbb_attachment;
|
||||
|
||||
Bookmark* bookmark = BKM_lookup(node);
|
||||
|
@ -889,7 +889,7 @@ USHORT BTR_key_length(jrd_rel* relation, index_desc* idx)
|
||||
* Compute the maximum key length for an index.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
const Format* format = MET_current(tdbb, relation);
|
||||
index_desc::idx_repeat* tail = idx->idx_rpt;
|
||||
|
@ -408,7 +408,7 @@ int CCH_down_grade_dbb(void* ast_object)
|
||||
/* Since this routine will be called asynchronously, we must establish
|
||||
a thread context. */
|
||||
thread_db thd_context, *tdbb;
|
||||
SET_THREAD_DATA;
|
||||
JRD_set_thread_data;
|
||||
|
||||
ISC_STATUS_ARRAY ast_status;
|
||||
tdbb->tdbb_database = dbb;
|
||||
@ -424,14 +424,14 @@ int CCH_down_grade_dbb(void* ast_object)
|
||||
|
||||
if (SHUT_blocking_ast(dbb)) {
|
||||
dbb->dbb_ast_flags &= ~DBB_blocking;
|
||||
RESTORE_THREAD_DATA;
|
||||
JRD_restore_thread_data;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
if (dbb->dbb_use_count)
|
||||
{
|
||||
RESTORE_THREAD_DATA;
|
||||
JRD_restore_thread_data;
|
||||
return;
|
||||
}
|
||||
*/
|
||||
@ -441,21 +441,21 @@ if (dbb->dbb_use_count)
|
||||
and we can't give it anyway */
|
||||
|
||||
if ((lock->lck_logical == LCK_SW) || (lock->lck_logical == LCK_SR)) {
|
||||
RESTORE_THREAD_DATA;
|
||||
JRD_restore_thread_data;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (dbb->dbb_flags & DBB_bugcheck) {
|
||||
LCK_convert(tdbb, lock, LCK_SW, LCK_WAIT);
|
||||
dbb->dbb_ast_flags &= ~DBB_blocking;
|
||||
RESTORE_THREAD_DATA;
|
||||
JRD_restore_thread_data;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* If we are supposed to be exclusive, stay exclusive */
|
||||
|
||||
if ((dbb->dbb_flags & DBB_exclusive) || (dbb->dbb_ast_flags & DBB_shutdown_single)) {
|
||||
RESTORE_THREAD_DATA;
|
||||
JRD_restore_thread_data;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -492,7 +492,7 @@ if (dbb->dbb_use_count)
|
||||
|
||||
/* Restore the prior thread context */
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
JRD_restore_thread_data;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1866,7 +1866,7 @@ void CCH_must_write(WIN * window)
|
||||
}
|
||||
|
||||
bdb->bdb_flags |= (BDB_dirty | BDB_must_write);
|
||||
update_write_direction(GET_THREAD_DATA, bdb);
|
||||
update_write_direction(JRD_get_thread_data, bdb);
|
||||
}
|
||||
|
||||
|
||||
@ -2327,7 +2327,7 @@ void CCH_shutdown_database(Database* dbb)
|
||||
* Shutdown database physical page locks.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
bcb_repeat* tail;
|
||||
BufferControl* bcb = dbb->dbb_bcb;
|
||||
@ -2707,7 +2707,7 @@ static int blocking_ast_bdb(void* ast_object)
|
||||
/* Since this routine will be called asynchronously, we must establish
|
||||
a thread context. */
|
||||
thread_db thd_context, *tdbb;
|
||||
SET_THREAD_DATA;
|
||||
JRD_set_thread_data;
|
||||
|
||||
BLKCHK(bdb, type_bdb);
|
||||
|
||||
@ -2741,7 +2741,7 @@ static int blocking_ast_bdb(void* ast_object)
|
||||
|
||||
/* Restore the prior thread context */
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
JRD_restore_thread_data;
|
||||
|
||||
ISC_ast_exit();
|
||||
|
||||
@ -3076,7 +3076,7 @@ static void THREAD_ROUTINE cache_reader(Database* dbb)
|
||||
Once we reach the end, the thread will die, thus implicitly
|
||||
killing all its contexts. */
|
||||
thread_db thd_context, *tdbb;
|
||||
SET_THREAD_DATA;
|
||||
JRD_set_thread_data;
|
||||
|
||||
ISC_STATUS_ARRAY status_vector;
|
||||
/* Dummy attachment needed for lock owner identification. */
|
||||
@ -3245,7 +3245,7 @@ static void THREAD_ROUTINE cache_writer(Database* dbb)
|
||||
Once we reach the end, the thread will die, thus implicitly
|
||||
killing all its contexts. */
|
||||
thread_db thd_context, *tdbb;
|
||||
SET_THREAD_DATA;
|
||||
JRD_set_thread_data;
|
||||
|
||||
ISC_STATUS_ARRAY status_vector;
|
||||
/* Dummy attachment needed for lock owner identification. */
|
||||
|
@ -543,7 +543,7 @@ jrd_req* CMP_compile(USHORT blr_length, const UCHAR* blr, USHORT internal_flag)
|
||||
* 1997-Jan-20 David Schnepper
|
||||
*
|
||||
**************************************/
|
||||
return CMP_compile2(GET_THREAD_DATA, blr, internal_flag);
|
||||
return CMP_compile2(JRD_get_thread_data, blr, internal_flag);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1361,7 +1361,7 @@ void CVT_move(const dsc* from, dsc* to, FPTR_ERROR err)
|
||||
portion to the current date */
|
||||
{
|
||||
time_t clock;
|
||||
/** Cannot call GET_THREAD_DATA because that macro calls
|
||||
/** Cannot call JRD_get_thread_data because that macro calls
|
||||
BUGCHECK i.e. ERR_bugcheck() which is not part of
|
||||
client library **/
|
||||
thread_db* tdbb = PLATFORM_GET_THREAD_DATA;
|
||||
@ -1819,7 +1819,7 @@ static void datetime_to_text(const dsc* from, dsc* to, FPTR_ERROR err)
|
||||
date.timestamp_time = 0;
|
||||
break;
|
||||
case dtype_timestamp:
|
||||
/** Cannot call GET_THREAD_DATA because that macro calls
|
||||
/** Cannot call JRD_get_thread_data because that macro calls
|
||||
BUGCHECK i.e. ERR_bugcheck() which is not part of
|
||||
client library **/
|
||||
tdbb = PLATFORM_GET_THREAD_DATA;
|
||||
|
@ -858,7 +858,7 @@ USHORT CVT2_make_string2(const dsc* desc,
|
||||
return from_len;
|
||||
}
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
const USHORT cs1 = INTL_charset(tdbb, to_interp, err);
|
||||
const USHORT cs2 = INTL_charset(tdbb, from_interp, err);
|
||||
if (cs1 == cs2) {
|
||||
|
@ -256,7 +256,7 @@ USHORT DFW_assign_index_type(DeferredWork* work, SSHORT field_type, SSHORT ttype
|
||||
* on the field's type and subtype.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
if (field_type == dtype_varying || field_type == dtype_text)
|
||||
{
|
||||
@ -460,7 +460,7 @@ void DFW_perform_work(jrd_tra* transaction)
|
||||
* come.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
/* If no deferred work or it's all deferred event posting
|
||||
don't bother */
|
||||
@ -676,7 +676,7 @@ void DFW_update_index(const TEXT* name, USHORT id, const SelectivityList& select
|
||||
* of the index.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
if (dbb->dbb_ods_version >= ODS_VERSION11) {
|
||||
@ -3148,7 +3148,7 @@ static void get_procedure_dependencies(DeferredWork* work)
|
||||
* created or when it's modified.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_prc* procedure = NULL;
|
||||
@ -3211,7 +3211,7 @@ static void get_trigger_dependencies( DeferredWork* work)
|
||||
* created or when it's modified.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_rel* relation = NULL;
|
||||
@ -4068,7 +4068,7 @@ static void put_summary_blob(blb* blob, RSR_T type, bid* blob_id)
|
||||
|
||||
UCHAR temp[128];
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
/* If blob is null, don't bother */
|
||||
@ -4113,7 +4113,7 @@ static void put_summary_record(blb* blob,
|
||||
*
|
||||
**************************************/
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
UCHAR temp[129];
|
||||
|
||||
UCHAR* buffer = ((size_t) (length + 1) > sizeof(temp)) ?
|
||||
|
@ -961,7 +961,7 @@ static void dmp_root(const index_root_page* page)
|
||||
((PAG) page)->pag_checksum, ((PAG) page)->pag_generation,
|
||||
page->irt_relation, page->irt_count);
|
||||
const bool ods11plus =
|
||||
(GET_THREAD_DATA->tdbb_database->dbb_ods_version >= ODS_VERSION11);
|
||||
(JRD_get_thread_data->tdbb_database->dbb_ods_version >= ODS_VERSION11);
|
||||
USHORT i = 0;
|
||||
for (const index_root_page::irt_repeat* desc = page->irt_rpt;
|
||||
i < page->irt_count; i++, desc++)
|
||||
@ -996,7 +996,7 @@ static void dmp_transactions(const tx_inv_page* page, ULONG sequence)
|
||||
* Functional description
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
const ULONG transactions_per_tip = dbb->dbb_pcontrol->pgc_tpt;
|
||||
|
@ -105,7 +105,7 @@ void DYN_ddl(Attachment* attachment, jrd_tra* transaction, USHORT length,
|
||||
*
|
||||
**************************************/
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
#if defined(V4_THREADING) || (defined(SUPERSERVER) && defined(WIN_NT))
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
@ -211,7 +211,7 @@ void DYN_error(bool status_flag,
|
||||
* DDL failed.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
if (tdbb->tdbb_status_vector[1] == isc_no_meta_update)
|
||||
return;
|
||||
@ -713,7 +713,7 @@ USHORT DYN_put_blr_blob(Global* gbl, const UCHAR** ptr, bid* blob_id)
|
||||
* Write out a blr blob.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
const UCHAR *p = *ptr;
|
||||
USHORT length = *p++;
|
||||
@ -752,7 +752,7 @@ USHORT DYN_put_text_blob(Global* gbl, const UCHAR** ptr, bid* blob_id)
|
||||
* Write out a text blob.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
const UCHAR* p = *ptr;
|
||||
USHORT length = *p++;
|
||||
@ -801,7 +801,7 @@ void DYN_rundown_request(jrd_req* handle, SSHORT id)
|
||||
*
|
||||
**************************************/
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
#pragma FB_COMPILER_MESSAGE("TMN: FIXME! We do not have a jmp_buf anymore!")
|
||||
@ -863,7 +863,7 @@ static void grant( Global* gbl, const UCHAR** ptr)
|
||||
TEXT* ptr1;
|
||||
TEXT* ptr2;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
const USHORT major_version = dbb->dbb_ods_version;
|
||||
@ -1196,7 +1196,7 @@ static bool grantor_can_grant( Global* gbl,
|
||||
**************************************/
|
||||
USHORT err_num;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
/* Verify that the input relation exists. */
|
||||
@ -1582,7 +1582,7 @@ static void revoke_permission(Global* gbl, const UCHAR** ptr)
|
||||
SqlIdentifier revoking_user_name, dummy_name;
|
||||
TEXT* ptr1;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
const USHORT major_version = dbb->dbb_ods_version;
|
||||
@ -1838,7 +1838,7 @@ static void set_field_class_name(Global* gbl, const TEXT* relation, const TEXT*
|
||||
* field has a unique class name.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_s_f_class, DYN_REQUESTS);
|
||||
@ -1902,7 +1902,7 @@ static void store_privilege(Global* gbl,
|
||||
* routine should not.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_s_grant, DYN_REQUESTS);
|
||||
|
@ -139,7 +139,7 @@ void DYN_define_cache( Global* gbl, const UCHAR** ptr)
|
||||
jrd_req* request;
|
||||
SSHORT id = -1;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
request = NULL;
|
||||
|
||||
@ -246,7 +246,7 @@ void DYN_define_constraint(Global* gbl,
|
||||
bool primary_flag = false, foreign_flag = false;
|
||||
UCHAR ri_action = 0;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
constraint_name[0] = 0;
|
||||
@ -633,7 +633,7 @@ void DYN_define_dimension(Global* gbl,
|
||||
*
|
||||
**************************************/
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
UCHAR verb;
|
||||
@ -717,7 +717,7 @@ void DYN_define_exception( Global* gbl, const UCHAR** ptr)
|
||||
UCHAR verb;
|
||||
SqlIdentifier exception_name;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
exception_name[0] = 0;
|
||||
@ -795,7 +795,7 @@ void DYN_define_file(Global* gbl,
|
||||
USHORT man_auto;
|
||||
SSHORT id;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
request = NULL;
|
||||
@ -902,7 +902,7 @@ void DYN_define_difference(Global* gbl,
|
||||
jrd_req* request;
|
||||
SSHORT id = -1;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
request = NULL;
|
||||
|
||||
@ -985,7 +985,7 @@ void DYN_define_filter( Global* gbl, const UCHAR** ptr)
|
||||
SqlIdentifier filter_name;
|
||||
jrd_req* request;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
filter_name[0] = 0;
|
||||
@ -1080,7 +1080,7 @@ void DYN_define_function( Global* gbl, const UCHAR** ptr)
|
||||
SqlIdentifier function_name;
|
||||
jrd_req* request;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
function_name[0] = 0;
|
||||
@ -1179,7 +1179,7 @@ void DYN_define_function_arg(Global* gbl, const UCHAR** ptr, TEXT* function_name
|
||||
UCHAR verb;
|
||||
jrd_req* request = NULL;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
const USHORT major_version = dbb->dbb_ods_version;
|
||||
@ -1304,7 +1304,7 @@ void DYN_define_generator( Global* gbl, const UCHAR** ptr)
|
||||
*
|
||||
**************************************/
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request;
|
||||
@ -1371,7 +1371,7 @@ void DYN_define_global_field(Global* gbl,
|
||||
*
|
||||
**************************************/
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
UCHAR verb;
|
||||
@ -1641,7 +1641,7 @@ void DYN_define_index(Global* gbl,
|
||||
(*ri_actionP) = 0;
|
||||
}
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
index_name[0] = 0;
|
||||
@ -2195,7 +2195,7 @@ void DYN_define_local_field(Global* gbl,
|
||||
SSHORT charset_id;
|
||||
SLONG fld_pos;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
local_field_name[0] = 0;
|
||||
@ -2508,7 +2508,7 @@ void DYN_define_log_file(
|
||||
jrd_req* request;
|
||||
SSHORT id;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
request = NULL;
|
||||
@ -2646,7 +2646,7 @@ void DYN_define_parameter( Global* gbl, const UCHAR** ptr, TEXT* procedure_name)
|
||||
const UCHAR* default_value_ptr = NULL;
|
||||
const UCHAR* default_source_ptr = NULL;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
parameter_name[0] = 0;
|
||||
@ -2889,7 +2889,7 @@ void DYN_define_procedure( Global* gbl, const UCHAR** ptr)
|
||||
SqlIdentifier procedure_name;
|
||||
SqlIdentifier owner_name;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
procedure_name[0] = 0;
|
||||
@ -3046,7 +3046,7 @@ void DYN_define_relation( Global* gbl, const UCHAR** ptr)
|
||||
SSHORT id;
|
||||
SqlIdentifier relation_name, owner_name, field_name;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
relation_name[0] = 0;
|
||||
@ -3269,7 +3269,7 @@ void DYN_define_role( Global* gbl, const UCHAR** ptr)
|
||||
jrd_req* request = NULL;
|
||||
SqlIdentifier dummy_name, owner_name, role_name;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
const USHORT major_version = dbb->dbb_ods_version;
|
||||
@ -3385,7 +3385,7 @@ void DYN_define_security_class( Global* gbl, const UCHAR** ptr)
|
||||
*
|
||||
**************************************/
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request;
|
||||
@ -3464,7 +3464,7 @@ void DYN_define_sql_field(Global* gbl,
|
||||
USHORT dtype;
|
||||
SLONG fld_pos;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
sql_field_name[0] = 0;
|
||||
@ -3743,7 +3743,7 @@ void DYN_define_shadow( Global* gbl, const UCHAR** ptr)
|
||||
*
|
||||
**************************************/
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
UCHAR verb;
|
||||
@ -3821,7 +3821,7 @@ void DYN_define_trigger(Global* gbl,
|
||||
*
|
||||
**************************************/
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request;
|
||||
@ -3988,7 +3988,7 @@ void DYN_define_trigger_msg(Global* gbl, const UCHAR** ptr, const TEXT* trigger_
|
||||
*
|
||||
**************************************/
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request;
|
||||
@ -4064,7 +4064,7 @@ void DYN_define_view_relation( Global* gbl, const UCHAR** ptr, const TEXT* view)
|
||||
*
|
||||
**************************************/
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request;
|
||||
|
@ -157,7 +157,7 @@ void DYN_delete_exception( Global* gbl, const UCHAR** ptr)
|
||||
**************************************/
|
||||
SqlIdentifier t;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
GET_STRING(ptr, t);
|
||||
@ -211,7 +211,7 @@ void DYN_delete_filter( Global* gbl, const UCHAR** ptr)
|
||||
**************************************/
|
||||
SqlIdentifier f;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_e_filters, DYN_REQUESTS);
|
||||
@ -267,7 +267,7 @@ void DYN_delete_function( Global* gbl, const UCHAR** ptr)
|
||||
**************************************/
|
||||
SqlIdentifier f;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_e_func_args, DYN_REQUESTS);
|
||||
@ -346,7 +346,7 @@ void DYN_delete_generator(Global* gbl, const UCHAR**ptr)
|
||||
**************************************/
|
||||
SqlIdentifier t;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = NULL;
|
||||
@ -404,7 +404,7 @@ void DYN_delete_global_field( Global* gbl, const UCHAR** ptr)
|
||||
**************************************/
|
||||
SqlIdentifier f;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_l_fld_src, DYN_REQUESTS);
|
||||
@ -489,7 +489,7 @@ void DYN_delete_index( Global* gbl, const UCHAR** ptr)
|
||||
**************************************/
|
||||
SqlIdentifier idx_name, rel_name;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_e_indices, DYN_REQUESTS);
|
||||
@ -581,7 +581,7 @@ void DYN_delete_local_field(
|
||||
**************************************/
|
||||
SqlIdentifier tbl_nm, col_nm, constraint, index_name;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
GET_STRING(ptr, col_nm);
|
||||
@ -803,7 +803,7 @@ void DYN_delete_parameter( Global* gbl, const UCHAR** ptr, TEXT* proc_name)
|
||||
MAX_SQL_IDENTIFIER_SIZE, true);
|
||||
}
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_e_prm, DYN_REQUESTS);
|
||||
@ -893,7 +893,7 @@ void DYN_delete_procedure( Global* gbl, const UCHAR** ptr)
|
||||
SqlIdentifier name;
|
||||
|
||||
GET_STRING(ptr, name);
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
tdbb->tdbb_flags |= TDBB_prc_being_dropped;
|
||||
@ -1051,7 +1051,7 @@ void DYN_delete_relation( Global* gbl, const UCHAR** ptr, const TEXT* relation)
|
||||
USHORT id;
|
||||
SqlIdentifier relation_name;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
if (relation)
|
||||
@ -1293,7 +1293,7 @@ void DYN_delete_role( Global* gbl, const UCHAR** ptr)
|
||||
SqlIdentifier role_name, role_owner, user;
|
||||
TEXT *ptr1, *ptr2;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
const USHORT major_version = dbb->dbb_ods_version;
|
||||
@ -1446,7 +1446,7 @@ void DYN_delete_shadow( Global* gbl, const UCHAR** ptr)
|
||||
**************************************/
|
||||
int shadow_number;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
/*****
|
||||
@ -1521,7 +1521,7 @@ void DYN_delete_trigger( Global* gbl, const UCHAR** ptr)
|
||||
USHORT id;
|
||||
SqlIdentifier r, t;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_e_trg_msgs, DYN_REQUESTS);
|
||||
@ -1658,7 +1658,7 @@ void DYN_delete_trigger_msg( Global* gbl, const UCHAR** ptr, TEXT* trigger_name)
|
||||
int number;
|
||||
SqlIdentifier t;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
number = DYN_get_number(ptr);
|
||||
@ -1726,7 +1726,7 @@ static bool delete_constraint_records(Global* gbl,
|
||||
* based on a constraint name.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_e_rel_con, DYN_REQUESTS);
|
||||
@ -1776,7 +1776,7 @@ static bool delete_dimension_records(Global* gbl, const TEXT* field_name)
|
||||
* pertaining to a field.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_e_dims, DYN_REQUESTS);
|
||||
@ -1900,7 +1900,7 @@ static void delete_gfield_for_lfield( Global* gbl, const TEXT* lfield_name)
|
||||
* deletes a global field for a given local field.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_e_l_gfld, DYN_REQUESTS);
|
||||
|
||||
@ -1941,7 +1941,7 @@ static bool delete_index_segment_records( Global* gbl, const TEXT* index_name)
|
||||
* pertaining to an index.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_e_idx_segs, DYN_REQUESTS);
|
||||
@ -1989,7 +1989,7 @@ static bool delete_security_class2( Global* gbl, const TEXT* security_class)
|
||||
*
|
||||
**************************************/
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_e_class, DYN_REQUESTS);
|
||||
|
@ -119,7 +119,7 @@ void DYN_modify_database( Global* gbl, const UCHAR** ptr)
|
||||
**************************************/
|
||||
UCHAR verb, s[128];
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = NULL;
|
||||
@ -267,7 +267,7 @@ void DYN_modify_exception( Global* gbl, const UCHAR** ptr)
|
||||
UCHAR verb;
|
||||
SqlIdentifier t;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_m_xcp, DYN_REQUESTS);
|
||||
@ -341,7 +341,7 @@ void DYN_modify_global_field(
|
||||
const TEXT* err_one_type_change_only =
|
||||
"Only one data type change to the domain allowed at a time";
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_m_gfield, DYN_REQUESTS);
|
||||
@ -886,7 +886,7 @@ void DYN_modify_index( Global* gbl, const UCHAR** ptr)
|
||||
UCHAR verb;
|
||||
SqlIdentifier name;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_m_index, DYN_REQUESTS);
|
||||
@ -978,7 +978,7 @@ void DYN_modify_local_field(
|
||||
|
||||
const UCHAR *query_header, *description;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
GET_STRING(ptr, f);
|
||||
@ -1168,7 +1168,7 @@ void DYN_modify_procedure( Global* gbl, const UCHAR** ptr)
|
||||
|
||||
GET_STRING(ptr, procedure_name);
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = NULL;
|
||||
@ -1274,7 +1274,7 @@ void DYN_modify_relation( Global* gbl, const UCHAR** ptr)
|
||||
UCHAR verb;
|
||||
SqlIdentifier name, field_name;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
field_name[0] = 0;
|
||||
@ -1373,7 +1373,7 @@ void DYN_modify_trigger( Global* gbl, const UCHAR** ptr)
|
||||
UCHAR verb;
|
||||
SqlIdentifier trigger_name;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_m_trigger, DYN_REQUESTS);
|
||||
@ -1507,7 +1507,7 @@ void DYN_modify_trigger_msg( Global* gbl, const UCHAR** ptr, TEXT* trigger_name)
|
||||
UCHAR verb;
|
||||
SqlIdentifier t;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_m_trg_msg, DYN_REQUESTS);
|
||||
@ -1577,7 +1577,7 @@ void DYN_modify_view( Global* gbl, const UCHAR** ptr)
|
||||
UCHAR verb;
|
||||
SqlIdentifier view_name;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
view_name[0] = 0;
|
||||
@ -1672,7 +1672,7 @@ static void drop_cache( Global* gbl)
|
||||
* Drop the database cache
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_d_cache, DYN_REQUESTS);
|
||||
@ -1723,7 +1723,7 @@ static void change_backup_mode( Global* gbl, UCHAR verb)
|
||||
**************************************/
|
||||
bool invalid_state = false;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_d_difference, DYN_REQUESTS);
|
||||
@ -1838,7 +1838,7 @@ static void drop_log( Global* gbl)
|
||||
* Delete all log files
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, drq_d_log, DYN_REQUESTS);
|
||||
@ -2213,7 +2213,7 @@ void DYN_modify_sql_field(Global* gbl,
|
||||
const TEXT* err_one_type_change_only =
|
||||
"Only one data type change to the field allowed at a time";
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
dyn_fld* orig_fld = 0;
|
||||
|
@ -174,7 +174,7 @@ void ERR_duplicate_error(IDX_E code,
|
||||
const TEXT* index_name;
|
||||
const TEXT* constraint_name;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
MET_lookup_index(tdbb, index, relation->rel_name, index_number + 1);
|
||||
if (index[0]) {
|
||||
@ -276,7 +276,7 @@ void ERR_log(int facility, int number, const TEXT* message)
|
||||
*
|
||||
**************************************/
|
||||
TEXT errmsg[MAX_ERRMSG_LEN + 1];
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
DEBUG;
|
||||
if (message)
|
||||
@ -315,7 +315,7 @@ bool ERR_post_warning(ISC_STATUS status, ...)
|
||||
ISC_STATUS* status_vector;
|
||||
|
||||
VA_START(args, status);
|
||||
status_vector = ((thread_db*) GET_THREAD_DATA)->tdbb_status_vector;
|
||||
status_vector = ((thread_db*) JRD_get_thread_data)->tdbb_status_vector;
|
||||
|
||||
if (status_vector[0] != isc_arg_gds ||
|
||||
(status_vector[0] == isc_arg_gds && status_vector[1] == 0 &&
|
||||
@ -404,7 +404,7 @@ void ERR_post(ISC_STATUS status, ...)
|
||||
int i, tmp_status_len = 0, status_len = 0, err_status_len = 0;
|
||||
int warning_count = 0, warning_indx = 0;
|
||||
|
||||
ISC_STATUS* status_vector = ((thread_db*) GET_THREAD_DATA)->tdbb_status_vector;
|
||||
ISC_STATUS* status_vector = ((thread_db*) JRD_get_thread_data)->tdbb_status_vector;
|
||||
|
||||
/* stuff the status into temp buffer */
|
||||
MOVE_CLEAR(tmp_status, sizeof(tmp_status));
|
||||
@ -491,7 +491,7 @@ void ERR_punt(void)
|
||||
*
|
||||
**************************************/
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
if (dbb && (dbb->dbb_flags & DBB_bugcheck))
|
||||
@ -546,7 +546,7 @@ void ERR_warning(ISC_STATUS status, ...)
|
||||
* that subsequent errors can supersede this one.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
STUFF_STATUS(tdbb->tdbb_status_vector, status);
|
||||
DEBUG;
|
||||
|
@ -1719,7 +1719,7 @@ static Lock* implicit_record_lock(jrd_tra* transaction, record_param* rpb)
|
||||
*
|
||||
**************************************/
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
DEV_BLKCHK(transaction, type_tra);
|
||||
|
||||
|
@ -234,7 +234,7 @@ bool EXT_get(RecordSource* rsb)
|
||||
* Get a record from an external file.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
jrd_rel* relation = rsb->rsb_relation;
|
||||
ExternalFile* file = relation->rel_file;
|
||||
@ -327,7 +327,7 @@ void EXT_open(RecordSource* rsb)
|
||||
* Open a record stream for an external file.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
jrd_rel* relation = rsb->rsb_relation;
|
||||
jrd_req* request = tdbb->tdbb_request;
|
||||
@ -363,7 +363,7 @@ OptimizerBlk::opt_repeat *tail, *opt_end;
|
||||
SSHORT i, size;
|
||||
*/
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
CompilerScratch* csb = opt->opt_csb;
|
||||
CompilerScratch::csb_repeat* csb_tail = &csb->csb_rpt[stream];
|
||||
|
@ -30,7 +30,7 @@
|
||||
* 2003.08.10 Claudio Valderrama: Fix SF Bugs #544132 and #728839.
|
||||
*/
|
||||
/*
|
||||
$Id: fun.epp,v 1.56 2004-05-18 01:20:04 brodsom Exp $
|
||||
$Id: fun.epp,v 1.57 2004-05-19 18:11:17 brodsom Exp $
|
||||
*/
|
||||
|
||||
#include "firebird.h"
|
||||
@ -129,7 +129,7 @@ void FUN_evaluate(UserFunction* function, jrd_nod* node, impure_value* value)
|
||||
UDF_ARG args[MAX_UDF_ARGUMENTS + 1];
|
||||
UCHAR temp[800];
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
// Start by constructing argument list
|
||||
str* temp_string;
|
||||
@ -587,7 +587,7 @@ UserFunction* FUN_lookup_function(const Firebird::string& name, bool ShowAccessE
|
||||
* Lookup function by name.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
/* Start by looking for already defined symbol */
|
||||
@ -745,7 +745,7 @@ UserFunction* FUN_resolve(CompilerScratch* csb, UserFunction* function, jrd_nod*
|
||||
**************************************/
|
||||
DSC arg;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
UserFunction* best = NULL;
|
||||
int best_score = 0;
|
||||
@ -819,7 +819,7 @@ static void blob_put_segment( blb* blob, const UCHAR* buffer, USHORT length)
|
||||
engine mutex */
|
||||
|
||||
THREAD_ENTER();
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
BLB_put_segment(tdbb, blob, buffer, length);
|
||||
THREAD_EXIT();
|
||||
}
|
||||
@ -846,7 +846,7 @@ static SSHORT blob_get_segment(
|
||||
**************************************/
|
||||
/* add thread enter and thread_exit wrappers */
|
||||
THREAD_ENTER();
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
*return_length = BLB_get_segment(tdbb, blob, buffer, length);
|
||||
THREAD_EXIT();
|
||||
|
||||
@ -877,7 +877,7 @@ static SLONG get_scalar_array(fun_repeat* arg,
|
||||
* Return length of array desc.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
/* Get first the array descriptor, then the array */
|
||||
|
||||
@ -954,7 +954,7 @@ static void invoke(UserFunction* function,
|
||||
* use CHECK_FOR_EXCEPTIONS macros without conflicts with destructors
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
START_CHECK_FOR_EXCEPTIONS(function->fun_exception_message.c_str());
|
||||
if (function->fun_return_arg)
|
||||
|
@ -686,7 +686,7 @@ static void purge_default_class( TEXT * object_name, SSHORT obj_type)
|
||||
* default security class for this relation.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
jrd_req* request = CMP_find_request(tdbb, irq_grant8, IRQ_REQUESTS);
|
||||
|
@ -1222,7 +1222,7 @@ static int index_block_flush(void* ast_object)
|
||||
/* Since this routine will be called asynchronously, we must establish
|
||||
a thread context. */
|
||||
|
||||
SET_THREAD_DATA;
|
||||
JRD_set_thread_data;
|
||||
|
||||
Lock* lock = index_block->idb_lock;
|
||||
|
||||
@ -1249,7 +1249,7 @@ static int index_block_flush(void* ast_object)
|
||||
|
||||
/* Restore the prior thread context */
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
JRD_restore_thread_data;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -204,7 +204,7 @@ int INF_database_info(const SCHAR* items,
|
||||
SLONG err_val;
|
||||
bool header_refreshed = false;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -1022,7 +1022,7 @@ static USHORT get_counts(USHORT count_id, SCHAR* buffer, USHORT length)
|
||||
* Return operation counts for relation.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
vcl* vector = tdbb->tdbb_attachment->att_counts[count_id];
|
||||
if (!vector)
|
||||
|
@ -258,7 +258,7 @@ void INI_format(const TEXT* owner, const TEXT* charset)
|
||||
* stored here.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
/* Uppercase owner name */
|
||||
@ -498,7 +498,7 @@ void INI_init(void)
|
||||
* format descriptor.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -568,7 +568,7 @@ void INI_init2(void)
|
||||
* the database when it was created.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
const USHORT major_version = dbb->dbb_ods_version;
|
||||
@ -731,7 +731,7 @@ void INI_update_database()
|
||||
* %% Note %% Update the switch() statement to reflect new major ODS
|
||||
* addition
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -832,7 +832,7 @@ static void add_generator(TEXT* generator_name, jrd_req** handle)
|
||||
**************************************/
|
||||
const gen* generator = generators;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
/* find the new generator to be stored; assume it exists in the table */
|
||||
/* TMN: If it doesn't exist in the table, we will CRASH here! */
|
||||
@ -861,7 +861,7 @@ static void add_global_fields( USHORT minor_version)
|
||||
* ODS change.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
/* add desired global fields to system relations */
|
||||
|
||||
@ -902,7 +902,7 @@ static void add_index_set(Database* dbb,
|
||||
SqlIdentifier string;
|
||||
index_desc idx;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
jrd_req* handle1 = NULL;
|
||||
jrd_req* handle2 = NULL;
|
||||
|
||||
@ -991,7 +991,7 @@ static void add_new_triggers(USHORT major_version, USHORT minor_version)
|
||||
* This routine is used to upgrade ODS versions.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
jrd_req* handle1 = NULL;
|
||||
|
||||
@ -1040,7 +1040,7 @@ static void add_relation_fields( USHORT minor_version)
|
||||
* ODS change.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
/* add desired fields to system relations, forcing a new format version */
|
||||
@ -1238,7 +1238,7 @@ static void add_trigger(TEXT* trigger_name, jrd_req** handle1, jrd_req** handle2
|
||||
* now, since it will be used when we go to 8.1.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
/* Find the new trigger to be stored; assume it exists in the table */
|
||||
|
||||
|
@ -1045,8 +1045,8 @@ int INTL_convert_string(dsc* to, const dsc* from, FPTR_ERROR err)
|
||||
**************************************/
|
||||
|
||||
/* Note: This function is called from outside the engine as
|
||||
well as inside - we likely can't get rid of GET_THREAD_DATA here */
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
well as inside - we likely can't get rid of JRD_get_thread_data here */
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
if (tdbb == NULL) /* are we in the Engine? */
|
||||
return (1); /* no, then can't access intl gah */
|
||||
|
||||
|
@ -1514,7 +1514,7 @@ ULONG ISC_exception_post(ULONG except_code, const TEXT* err_msg)
|
||||
THREAD_ENTER();
|
||||
}
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
if (!err_msg)
|
||||
{
|
||||
@ -4116,7 +4116,7 @@ void longjmp_sig_handler(int sig_num)
|
||||
actually hang the sigsetjmp menber off of THDD, and
|
||||
make sure that it is set properly for all sub-systems. */
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
siglongjmp(tdbb->tdbb_sigsetjmp, sig_num);
|
||||
}
|
||||
|
@ -435,7 +435,7 @@ inline static thread_db* set_thread_data(thread_db& thd_context)
|
||||
}
|
||||
|
||||
|
||||
#undef GET_THREAD_DATA
|
||||
#undef JRD_get_thread_data
|
||||
#undef CHECK_DBB
|
||||
#undef GET_DBB
|
||||
#undef SET_TDBB
|
||||
@ -4098,7 +4098,7 @@ bool JRD_getdir(Firebird::PathName& buf)
|
||||
{
|
||||
thread_db* tdbb = get_thread_data();
|
||||
|
||||
/** If the server has not done a SET_THREAD_DATA prior to this call
|
||||
/** If the server has not done a JRD_set_thread_data prior to this call
|
||||
(which will be the case when connecting via IPC), thread_db will
|
||||
be NULL so do not attempt to get the attachment handle from
|
||||
thread_db. Just return false as described below.
|
||||
@ -4106,7 +4106,7 @@ bool JRD_getdir(Firebird::PathName& buf)
|
||||
this code is entered via IPC is if the database name = "".
|
||||
**/
|
||||
|
||||
/** In case of backup/restore APIs, SET_THREAD_DATA has been done but
|
||||
/** In case of backup/restore APIs, JRD_set_thread_data has been done but
|
||||
the thread's context is a 'gbak' specific, so don't try extract
|
||||
attachment from there.
|
||||
**/
|
||||
|
@ -974,10 +974,6 @@ typedef str *STR;
|
||||
|
||||
/* Threading macros */
|
||||
|
||||
#ifdef GET_THREAD_DATA
|
||||
#undef GET_THREAD_DATA
|
||||
#endif
|
||||
|
||||
#ifdef V4_THREADING
|
||||
#define PLATFORM_GET_THREAD_DATA ((thread_db*) THD_get_specific())
|
||||
#endif
|
||||
@ -997,7 +993,7 @@ extern Jrd::thread_db* gdbb;
|
||||
#define PLATFORM_GET_THREAD_DATA (gdbb)
|
||||
#endif
|
||||
|
||||
/* Define GET_THREAD_DATA off the platform specific version.
|
||||
/* Define JRD_get_thread_data off the platform specific version.
|
||||
* If we're in DEV mode, also do consistancy checks on the
|
||||
* retrieved memory structure. This was originally done to
|
||||
* track down cases of no "PUT_THREAD_DATA" on the NLM.
|
||||
@ -1012,7 +1008,7 @@ extern Jrd::thread_db* gdbb;
|
||||
* there is no tdbb_database set up.
|
||||
*/
|
||||
#ifdef DEV_BUILD
|
||||
#define GET_THREAD_DATA (((PLATFORM_GET_THREAD_DATA) && \
|
||||
#define JRD_get_thread_data (((PLATFORM_GET_THREAD_DATA) && \
|
||||
(((THDD)(PLATFORM_GET_THREAD_DATA))->thdd_type == THDD_TYPE_TDBB) && \
|
||||
(((thread_db*)(PLATFORM_GET_THREAD_DATA))->tdbb_database)) \
|
||||
? ((MemoryPool::blk_type(((thread_db*)(PLATFORM_GET_THREAD_DATA))->tdbb_database) == type_dbb) \
|
||||
@ -1026,18 +1022,18 @@ extern Jrd::thread_db* gdbb;
|
||||
((!(tdbb)->tdbb_database)||MemoryPool::blk_type((tdbb)->tdbb_database) == type_dbb))
|
||||
#else
|
||||
/* PROD_BUILD */
|
||||
#define GET_THREAD_DATA (PLATFORM_GET_THREAD_DATA)
|
||||
#define JRD_get_thread_data (PLATFORM_GET_THREAD_DATA)
|
||||
#define CHECK_TDBB(tdbb) /* nothing */
|
||||
#define CHECK_DBB(dbb) /* nothing */
|
||||
#endif
|
||||
|
||||
#define GET_DBB (((thread_db*) (GET_THREAD_DATA))->tdbb_database)
|
||||
#define GET_DBB (((thread_db*) (JRD_get_thread_data))->tdbb_database)
|
||||
|
||||
/*-------------------------------------------------------------------------*
|
||||
* macros used to set thread_db and Database pointers when there are not set already *
|
||||
*-------------------------------------------------------------------------*/
|
||||
|
||||
#define SET_TDBB(tdbb) if ((tdbb) == NULL) { (tdbb) = GET_THREAD_DATA; }; CHECK_TDBB (tdbb)
|
||||
#define SET_TDBB(tdbb) if ((tdbb) == NULL) { (tdbb) = JRD_get_thread_data; }; CHECK_TDBB (tdbb)
|
||||
#define SET_DBB(dbb) if ((dbb) == NULL) { (dbb) = GET_DBB; }; CHECK_DBB(dbb);
|
||||
|
||||
#ifdef V4_THREADING
|
||||
@ -1079,12 +1075,12 @@ extern int debug;
|
||||
so in this case we define the macro as calling that function. */
|
||||
#ifndef JRD_MAIN
|
||||
|
||||
#define SET_THREAD_DATA tdbb = &thd_context;\
|
||||
#define JRD_set_thread_data tdbb = &thd_context;\
|
||||
MOVE_CLEAR (tdbb, sizeof (*tdbb));\
|
||||
THD_put_specific (reinterpret_cast<struct thdd*>(tdbb));\
|
||||
tdbb->tdbb_thd_data.thdd_type = THDD_TYPE_TDBB
|
||||
|
||||
#define RESTORE_THREAD_DATA THD_restore_specific()
|
||||
#define JRD_restore_thread_data THD_restore_specific()
|
||||
|
||||
#endif /* !JRD_MAIN */
|
||||
|
||||
|
@ -37,7 +37,7 @@
|
||||
* 2004.01.16 Vlad Horsun: added support for default parameters
|
||||
*/
|
||||
/*
|
||||
$Id: met.epp,v 1.121 2004-05-18 16:40:20 brodsom Exp $
|
||||
$Id: met.epp,v 1.122 2004-05-19 18:12:32 brodsom Exp $
|
||||
*/
|
||||
// This MUST be at the top of the file
|
||||
#ifdef DARWIN
|
||||
@ -3666,7 +3666,7 @@ static int blocking_ast_procedure(void* ast_object)
|
||||
/* Since this routine will be called asynchronously, we must establish
|
||||
a thread context. */
|
||||
|
||||
SET_THREAD_DATA;
|
||||
JRD_set_thread_data;
|
||||
|
||||
tdbb->tdbb_database = procedure->prc_existence_lock->lck_dbb;
|
||||
tdbb->tdbb_attachment = procedure->prc_existence_lock->lck_attachment;
|
||||
@ -3682,7 +3682,7 @@ static int blocking_ast_procedure(void* ast_object)
|
||||
|
||||
/* Restore the prior thread context */
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
JRD_restore_thread_data;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -3709,7 +3709,7 @@ static int blocking_ast_relation(void* ast_object)
|
||||
/* Since this routine will be called asynchronously, we must establish
|
||||
a thread context. */
|
||||
|
||||
SET_THREAD_DATA;
|
||||
JRD_set_thread_data;
|
||||
|
||||
tdbb->tdbb_database = relation->rel_existence_lock->lck_dbb;
|
||||
tdbb->tdbb_attachment = relation->rel_existence_lock->lck_attachment;
|
||||
@ -3730,7 +3730,7 @@ static int blocking_ast_relation(void* ast_object)
|
||||
|
||||
/* Restore the prior thread context */
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
JRD_restore_thread_data;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -179,7 +179,7 @@ bool NAV_find_record(RecordSource* rsb,
|
||||
search_flags = 0;
|
||||
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
jrd_req* request = tdbb->tdbb_request;
|
||||
irsb_nav* impure = (IRSB_NAV) ((UCHAR *) request + rsb->rsb_impure);
|
||||
WIN window(-1);
|
||||
@ -804,7 +804,7 @@ bool NAV_reset_position(RecordSource* rsb, record_param* new_rpb)
|
||||
* rsb to the record indicated by the passed rpb.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
jrd_req* request = tdbb->tdbb_request;
|
||||
irsb_nav* impure = (IRSB_NAV) ((UCHAR *) request + rsb->rsb_impure);
|
||||
WIN window(-1);
|
||||
@ -1080,7 +1080,7 @@ static bool find_dbkey(RecordSource* rsb, ULONG record_number)
|
||||
* record within a set of equivalent keys.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
jrd_req* request = tdbb->tdbb_request;
|
||||
irsb_nav* impure = (IRSB_NAV) ((UCHAR *) request + rsb->rsb_impure);
|
||||
record_param* rpb = request->req_rpb + rsb->rsb_stream;
|
||||
@ -1164,7 +1164,7 @@ static bool find_record(
|
||||
* must handle CRACK semantics.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
jrd_req* request = tdbb->tdbb_request;
|
||||
irsb_nav* impure = (IRSB_NAV) ((UCHAR *) request + rsb->rsb_impure);
|
||||
record_param* rpb = request->req_rpb + rsb->rsb_stream;
|
||||
@ -1362,7 +1362,7 @@ static bool find_saved_node(RecordSource* rsb, IRSB_NAV impure,
|
||||
* the actual node, return TRUE.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
index_desc* idx = (index_desc*) ((SCHAR*) impure + (IPTR) rsb->rsb_arg[RSB_NAV_idx_offset]);
|
||||
Ods::btree_page* page = (Ods::btree_page*) CCH_FETCH(tdbb, window, LCK_read, pag_index);
|
||||
@ -1573,7 +1573,7 @@ static bool get_record(
|
||||
* This routine must set or clear the CRACK flag.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
jrd_req* request = tdbb->tdbb_request;
|
||||
index_desc* idx = (index_desc*) ((SCHAR*) impure + (IPTR) rsb->rsb_arg[RSB_NAV_idx_offset]);
|
||||
|
||||
@ -1875,7 +1875,7 @@ static void setup_bitmaps(RecordSource* rsb, IRSB_NAV impure)
|
||||
* with a stream.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
// Start a bitmap which tells us we have already visited
|
||||
// this record; this is to handle the case where there is more
|
||||
|
@ -32,7 +32,7 @@
|
||||
* Contributor(s):
|
||||
*
|
||||
*
|
||||
* $Id: nbak.cpp,v 1.33 2004-05-17 22:27:56 brodsom Exp $
|
||||
* $Id: nbak.cpp,v 1.34 2004-05-19 18:12:32 brodsom Exp $
|
||||
*
|
||||
*/
|
||||
|
||||
@ -99,7 +99,7 @@ bool BackupManager::get_sw_database_lock(bool enable_signals) throw()
|
||||
return true;
|
||||
#else
|
||||
NBAK_TRACE(("get_sw_database_lock %d", database_use_count));
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
database_use_count++;
|
||||
if (enable_signals)
|
||||
LCK_ast_enable();
|
||||
@ -125,7 +125,7 @@ void BackupManager::release_sw_database_lock() throw()
|
||||
#else
|
||||
NBAK_TRACE(("release_sw_database_lock %d", database_use_count));
|
||||
fb_assert(database_use_count > 0);
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
database_use_count--;
|
||||
if (ast_flags & NBAK_database_blocking) {
|
||||
LCK_release(tdbb, database_lock);
|
||||
@ -144,7 +144,7 @@ void BackupManager::lock_state_write(bool thread_exit)
|
||||
THREAD_ENTER();
|
||||
#else
|
||||
fb_assert(!(flags & NBAK_state_in_use));
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
flags |= NBAK_state_in_use;
|
||||
bool locked = false;
|
||||
// Release shared lock to prevent possible deadlocks
|
||||
@ -177,7 +177,7 @@ bool BackupManager::try_lock_state_write()
|
||||
return false;
|
||||
#else
|
||||
fb_assert(!(flags & NBAK_state_in_use));
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
flags |= NBAK_state_in_use;
|
||||
bool result;
|
||||
if (state_lock->lck_physical == LCK_none)
|
||||
@ -209,7 +209,7 @@ void BackupManager::unlock_state_write() throw()
|
||||
state_lock->endWrite();
|
||||
#else
|
||||
fb_assert(flags & NBAK_state_in_use);
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
// ASTs are going to be reposted after CONVERT
|
||||
ast_flags &= ~NBAK_state_blocking;
|
||||
LCK_convert(tdbb, state_lock, LCK_SR, LCK_WAIT);
|
||||
@ -232,7 +232,7 @@ bool BackupManager::lock_alloc_write(bool thread_exit) throw()
|
||||
THREAD_ENTER();
|
||||
#else
|
||||
fb_assert(!(flags & NBAK_alloc_in_use));
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
flags |= NBAK_alloc_in_use;
|
||||
// Release shared lock to prevent possible deadlocks
|
||||
bool locked = false;
|
||||
@ -264,7 +264,7 @@ void BackupManager::unlock_alloc_write() throw()
|
||||
alloc_lock->endWrite();
|
||||
#else
|
||||
fb_assert(flags & NBAK_alloc_in_use);
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
// ASTs are going to be reposted after CONVERT
|
||||
ast_flags &= ~NBAK_alloc_blocking;
|
||||
LCK_convert(tdbb, alloc_lock, LCK_SR, LCK_WAIT);
|
||||
@ -279,7 +279,7 @@ void BackupManager::unlock_alloc_write() throw()
|
||||
|
||||
bool BackupManager::lock_state(bool thread_exit) throw()
|
||||
{
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
// If we own exlock here no need to do anything else
|
||||
if (tdbb->tdbb_flags & TDBB_set_backup_state)
|
||||
return true;
|
||||
@ -309,7 +309,7 @@ bool BackupManager::lock_state(bool thread_exit) throw()
|
||||
|
||||
void BackupManager::unlock_state() throw()
|
||||
{
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
// If we own exlock here no need to do anything else
|
||||
if (tdbb->tdbb_flags & TDBB_set_backup_state)
|
||||
return;
|
||||
@ -335,7 +335,7 @@ bool BackupManager::lock_alloc(bool thread_exit) throw() {
|
||||
THREAD_ENTER();
|
||||
#else
|
||||
fb_assert(!(flags & NBAK_alloc_in_use));
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
flags |= NBAK_alloc_in_use;
|
||||
if (alloc_lock->lck_physical < LCK_SR) {
|
||||
if (!LCK_lock(tdbb, alloc_lock, LCK_SR, LCK_WAIT)) {
|
||||
@ -357,7 +357,7 @@ void BackupManager::unlock_alloc() throw() {
|
||||
alloc_lock->endRead();
|
||||
#else
|
||||
fb_assert(flags & NBAK_alloc_in_use);
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
flags &= ~NBAK_alloc_in_use;
|
||||
if (ast_flags & NBAK_alloc_blocking) {
|
||||
LCK_release(tdbb, alloc_lock);
|
||||
@ -396,7 +396,7 @@ int BackupManager::backup_state_ast(void *ast_object) throw()
|
||||
a thread context. */
|
||||
|
||||
thread_db thd_context, *tdbb;
|
||||
SET_THREAD_DATA;
|
||||
JRD_set_thread_data;
|
||||
|
||||
tdbb->tdbb_database = new_dbb;
|
||||
tdbb->tdbb_attachment = lock->lck_attachment;
|
||||
@ -416,7 +416,7 @@ int BackupManager::backup_state_ast(void *ast_object) throw()
|
||||
|
||||
/* Restore the prior thread context */
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
JRD_restore_thread_data;
|
||||
|
||||
ISC_ast_exit();
|
||||
return 0;
|
||||
@ -447,7 +447,7 @@ int BackupManager::alloc_table_ast(void *ast_object) throw()
|
||||
a thread context. */
|
||||
|
||||
thread_db thd_context, *tdbb;
|
||||
SET_THREAD_DATA;
|
||||
JRD_set_thread_data;
|
||||
|
||||
tdbb->tdbb_database = new_dbb;
|
||||
tdbb->tdbb_attachment = lock->lck_attachment;
|
||||
@ -466,7 +466,7 @@ int BackupManager::alloc_table_ast(void *ast_object) throw()
|
||||
|
||||
/* Restore the prior thread context */
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
JRD_restore_thread_data;
|
||||
|
||||
ISC_ast_exit();
|
||||
return 0;
|
||||
@ -499,7 +499,7 @@ int BackupManager::backup_database_ast(void *ast_object) throw()
|
||||
a thread context. */
|
||||
|
||||
thread_db thd_context, *tdbb;
|
||||
SET_THREAD_DATA;
|
||||
JRD_set_thread_data;
|
||||
|
||||
tdbb->tdbb_database = new_dbb;
|
||||
tdbb->tdbb_attachment = lock->lck_attachment;
|
||||
@ -520,7 +520,7 @@ int BackupManager::backup_database_ast(void *ast_object) throw()
|
||||
|
||||
/* Restore the prior thread context */
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
JRD_restore_thread_data;
|
||||
|
||||
ISC_ast_exit();
|
||||
return 0;
|
||||
@ -540,7 +540,7 @@ void BackupManager::generate_filename() throw()
|
||||
void BackupManager::begin_backup()
|
||||
{
|
||||
NBAK_TRACE(("begin_backup"));
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
// Lock header page first to prevent possible deadlock
|
||||
WIN window(HEADER_PAGE);
|
||||
@ -635,7 +635,7 @@ void BackupManager::begin_backup()
|
||||
// does nothing (so it can be used for recovery on database startup).
|
||||
void BackupManager::end_backup(bool recover) {
|
||||
NBAK_TRACE(("end_backup"));
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
ULONG adjusted_scn; // We use this value to prevent race conditions.
|
||||
// They are possible because we release state lock
|
||||
// for some instants and anything is possible at
|
||||
@ -804,7 +804,7 @@ bool BackupManager::actualize_alloc() throw()
|
||||
&& !(ast_flags & NBAK_alloc_dirty)
|
||||
#endif
|
||||
) return true;
|
||||
ISC_STATUS *status_vector = GET_THREAD_DATA->tdbb_status_vector;
|
||||
ISC_STATUS *status_vector = JRD_get_thread_data->tdbb_status_vector;
|
||||
try {
|
||||
NBAK_TRACE(("actualize_alloc last_allocated_page=%d alloc_table=%p",
|
||||
last_allocated_page, alloc_table));
|
||||
@ -877,7 +877,7 @@ ULONG BackupManager::get_page_index(ULONG db_page) const throw()
|
||||
ULONG BackupManager::allocate_difference_page(ULONG db_page) throw() {
|
||||
fb_assert(last_allocated_page % (database->dbb_page_size / sizeof(ULONG)) == alloc_buffer[0]);
|
||||
|
||||
ISC_STATUS* status_vector = GET_THREAD_DATA->tdbb_status_vector;
|
||||
ISC_STATUS* status_vector = JRD_get_thread_data->tdbb_status_vector;
|
||||
// Grow file first. This is done in such order to keep difference
|
||||
// file consistent in case of write error. We should always be able
|
||||
// to read next alloc page when previous one is full.
|
||||
@ -944,7 +944,7 @@ bool BackupManager::read_difference(ULONG diff_page, Ods::pag* page) throw()
|
||||
temp_bdb.bdb_page = diff_page;
|
||||
temp_bdb.bdb_dbb = database;
|
||||
temp_bdb.bdb_buffer = page;
|
||||
if (!PIO_read(diff_file, &temp_bdb, page, GET_THREAD_DATA->tdbb_status_vector))
|
||||
if (!PIO_read(diff_file, &temp_bdb, page, JRD_get_thread_data->tdbb_status_vector))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
@ -954,7 +954,7 @@ BackupManager::BackupManager(Database* _database, int ini_state) :
|
||||
backup_state(ini_state), last_allocated_page(0),
|
||||
current_scn(0), backup_pages(0), diff_pending_close(false)
|
||||
{
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
diff_name[0] = 0;
|
||||
|
||||
// Allocate various database page buffers needed for operation
|
||||
@ -1013,7 +1013,7 @@ BackupManager::BackupManager(Database* _database, int ini_state) :
|
||||
void BackupManager::shutdown_locks() throw()
|
||||
{
|
||||
#ifndef SUPERSERVER
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
if (state_lock)
|
||||
LCK_release(tdbb, state_lock);
|
||||
if (alloc_lock)
|
||||
@ -1040,7 +1040,7 @@ BackupManager::~BackupManager()
|
||||
}
|
||||
|
||||
void BackupManager::set_difference(const char* filename) {
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
if (filename) {
|
||||
WIN window(HEADER_PAGE);
|
||||
@ -1066,7 +1066,7 @@ bool BackupManager::actualize_state() throw() {
|
||||
// We cannot use CCH for this because of likely recursion.
|
||||
NBAK_TRACE(("actualize_state"));
|
||||
|
||||
ISC_STATUS *status = GET_THREAD_DATA->tdbb_status_vector;
|
||||
ISC_STATUS *status = JRD_get_thread_data->tdbb_status_vector;
|
||||
|
||||
// Read original page from database file or shadows.
|
||||
SSHORT retryCount = 0;
|
||||
|
@ -847,7 +847,7 @@ jrd_nod* OPT_make_dbkey(OptimizerBlk* opt, jrd_nod* boolean, USHORT stream)
|
||||
* concatenations of primitive dbkeys.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
DEV_BLKCHK(opt, type_opt);
|
||||
DEV_BLKCHK(boolean, type_nod);
|
||||
@ -1019,7 +1019,7 @@ int OPT_match_index(OptimizerBlk* opt, USHORT stream, index_desc* idx)
|
||||
* Return the number of matching items.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
DEV_BLKCHK(opt, type_opt);
|
||||
|
||||
/* If there are not conjunctions, don't waste our time */
|
||||
@ -1268,7 +1268,7 @@ static UINT64 calculate_priority_level(const OptimizerBlk* opt, const index_desc
|
||||
|
||||
// Note: dbb->dbb_max_idx = 1022 for the largest supported page of 16K and
|
||||
// 62 for the smallest page of 1K
|
||||
const UINT64 max_idx = GET_THREAD_DATA->tdbb_database->dbb_max_idx + 1;
|
||||
const UINT64 max_idx = JRD_get_thread_data->tdbb_database->dbb_max_idx + 1;
|
||||
UINT64 unique_prefix = 0;
|
||||
if ((idx->idx_flags & idx_unique) && (idx_eql_count == idx->idx_count)) {
|
||||
unique_prefix = (max_idx - idx->idx_count) * max_idx * max_idx * max_idx;
|
||||
@ -1297,7 +1297,7 @@ static void check_indices(const CompilerScratch::csb_repeat* csb_tail)
|
||||
* indices were actually utilized by the optimizer.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
const jrd_nod* plan = csb_tail->csb_plan;
|
||||
if (!plan) {
|
||||
@ -2262,7 +2262,7 @@ static bool dump_index(const jrd_nod* node,
|
||||
* an info buffer.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
DEV_BLKCHK(node, type_nod);
|
||||
|
||||
@ -5831,7 +5831,7 @@ static jrd_nod* make_binary_node(NOD_T type, jrd_nod* arg1, jrd_nod* arg2, bool
|
||||
* Make a binary node.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
DEV_BLKCHK(arg1, type_nod);
|
||||
DEV_BLKCHK(arg2, type_nod);
|
||||
jrd_nod* node = PAR_make_node(tdbb, 2);
|
||||
@ -5957,7 +5957,7 @@ static jrd_nod* make_inference_node(CompilerScratch* csb, jrd_nod* boolean,
|
||||
*
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
DEV_BLKCHK(csb, type_csb);
|
||||
DEV_BLKCHK(boolean, type_nod);
|
||||
DEV_BLKCHK(arg1, type_nod);
|
||||
@ -7180,7 +7180,7 @@ static void sort_indices_by_selectivity(CompilerScratch::csb_repeat* csb_tail)
|
||||
|
||||
index_desc* selected_idx = NULL;
|
||||
USHORT i, j;
|
||||
Firebird::Array<index_desc> idx_sort(*GET_THREAD_DATA->tdbb_default, csb_tail->csb_indices);
|
||||
Firebird::Array<index_desc> idx_sort(*JRD_get_thread_data->tdbb_default, csb_tail->csb_indices);
|
||||
bool same_selectivity = false;
|
||||
|
||||
// Walk through the indices and sort them into into idx_sort
|
||||
@ -7249,7 +7249,7 @@ static SSHORT sort_indices_by_priority(CompilerScratch::csb_repeat* csb_tail,
|
||||
* Sort indices based on the priority level.
|
||||
*
|
||||
***************************************************/
|
||||
Firebird::HalfStaticArray<index_desc*, OPT_STATIC_ITEMS> idx_csb(*GET_THREAD_DATA->tdbb_default);
|
||||
Firebird::HalfStaticArray<index_desc*, OPT_STATIC_ITEMS> idx_csb(*JRD_get_thread_data->tdbb_default);
|
||||
idx_csb.grow(csb_tail->csb_indices);
|
||||
memcpy(idx_csb.begin(), idx_walk, csb_tail->csb_indices * sizeof(index_desc*));
|
||||
|
||||
|
@ -1022,7 +1022,7 @@ static jrd_file* setup_file(Database* dbb, const TEXT* file_name, USHORT file_le
|
||||
dbb->dbb_flags |= DBB_exclusive;
|
||||
if (!LCK_lock(NULL, lock, LCK_EX, LCK_NO_WAIT)) {
|
||||
dbb->dbb_flags &= ~DBB_exclusive;
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
while (!LCK_lock(tdbb, lock, LCK_SW, -1)) {
|
||||
tdbb->tdbb_status_vector[0] = 0; // Clean status vector from lock manager error code
|
||||
|
@ -79,7 +79,7 @@ void EXT_close(RecordSource* rsb)
|
||||
* Close a record stream for an external file.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
jrd_rel* relation = rsb->rsb_relation;
|
||||
ExternalFile* file = relation->rel_file;
|
||||
@ -141,7 +141,7 @@ ExternalFile* EXT_file(jrd_rel* relation, TEXT* file_name, bid* description)
|
||||
**************************************/
|
||||
UCHAR index_buffer[MAX_KEYS * sizeof(index_desc)];
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
/* Allocate and fill out an external file block. Get the
|
||||
@ -289,7 +289,7 @@ bool EXT_get(RecordSource* rsb)
|
||||
* Get a record from an external file.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
if (tdbb->tdbb_request->req_flags & req_abort)
|
||||
return false;
|
||||
@ -360,7 +360,7 @@ EXT_open(RecordSource* rsb)
|
||||
* Open a record stream for an external file.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
jrd_rel* relation = rsb->rsb_relation;
|
||||
jrd_req* request = tdbb->tdbb_request;
|
||||
@ -406,7 +406,7 @@ RecordSource* EXT_optimize(OptimizerBlk* opt, SSHORT stream, jrd_nod** sort_ptr)
|
||||
* set of record source blocks (rsb's).
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
/* Start by chasing around finding pointers to the various
|
||||
data structures */
|
||||
@ -838,7 +838,7 @@ static bool get_dbkey(RecordSource* rsb)
|
||||
* Get a record from an external file.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
/* Chase down misc pointers */
|
||||
|
||||
@ -899,7 +899,7 @@ static bool get_indexed(RecordSource* rsb)
|
||||
**************************************/
|
||||
UCHAR key_buffer[256];
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
/* Start by finding the signficant data structures for the stream. These
|
||||
are mainly used to initialize the stream at some particular key value */
|
||||
@ -1016,7 +1016,7 @@ static bool get_sequential(RecordSource* rsb)
|
||||
* Get a record from an external file.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
jrd_rel* relation = rsb->rsb_relation;
|
||||
ExternalFile* file = relation->rel_file;
|
||||
@ -1118,7 +1118,7 @@ static open_indexed(RecordSource* rsb)
|
||||
* Open a record stream for an external file.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
jrd_rel* relation = rsb->rsb_relation;
|
||||
ExternalFile* file = relation->rel_file;
|
||||
@ -1148,7 +1148,7 @@ static open_sequential(RecordSource* rsb)
|
||||
* Open a record stream for an external file.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
jrd_rel* relation = rsb->rsb_relation;
|
||||
ExternalFile* file = relation->rel_file;
|
||||
|
@ -1097,7 +1097,7 @@ static jrd_file* setup_file(Database* dbb,
|
||||
dbb->dbb_flags |= DBB_exclusive;
|
||||
if (!LCK_lock(NULL, lock, LCK_EX, LCK_NO_WAIT)) {
|
||||
dbb->dbb_flags &= ~DBB_exclusive;
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
while (!LCK_lock(tdbb, lock, LCK_SW, -1)) {
|
||||
tdbb->tdbb_status_vector[0] = 0; // Clean status vector from lock manager error code
|
||||
|
@ -222,7 +222,7 @@ void PAG_add_clump(
|
||||
* false - nothing done => nobody checks this function's result.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -343,7 +343,7 @@ USHORT PAG_add_file(const TEXT* file_name, SLONG start)
|
||||
* number for the new file.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -460,7 +460,7 @@ int PAG_add_header_entry(header_page* header, USHORT type, SSHORT len, const UCH
|
||||
* FALSE - nothing done
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -529,7 +529,7 @@ int PAG_replace_entry_first(header_page* header, USHORT type, SSHORT len, const
|
||||
* FALSE - nothing done
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -583,7 +583,7 @@ PAG PAG_allocate(WIN * window)
|
||||
* the universal sequence when allocating pages.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -682,7 +682,7 @@ SLONG PAG_attachment_id(void)
|
||||
* effect, get a lock on it as well.
|
||||
*
|
||||
******************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
Attachment* attachment = tdbb->tdbb_attachment;
|
||||
@ -735,7 +735,7 @@ int PAG_delete_clump_entry(SLONG page_num, USHORT type)
|
||||
* Gets rid on the entry 'type' from page.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -800,7 +800,7 @@ void PAG_format_header(void)
|
||||
* Create the header page for a new file.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -852,7 +852,7 @@ void PAG_format_log(void)
|
||||
* Set all parameters to 0
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
WIN window(LOG_PAGE);
|
||||
log_info_page* logp = (log_info_page*) CCH_fake(tdbb, &window, 1);
|
||||
@ -876,7 +876,7 @@ void PAG_format_pip(void)
|
||||
* into a rudimentary database.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -918,7 +918,7 @@ bool PAG_get_clump(SLONG page_num, USHORT type, USHORT* len, UCHAR* entry)
|
||||
* length in len
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
*len = 0;
|
||||
WIN window(page_num);
|
||||
@ -965,7 +965,7 @@ void PAG_header(const TEXT* file_name, USHORT file_length)
|
||||
* Checkout database header page.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
/* allocate a spare buffer which is large enough,
|
||||
@ -1135,7 +1135,7 @@ void PAG_init(void)
|
||||
* Initialize stuff for page handling.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -1205,7 +1205,7 @@ void PAG_init2(USHORT shadow_number)
|
||||
* search for additional files.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
ISC_STATUS* status = tdbb->tdbb_status_vector;
|
||||
|
||||
@ -1363,7 +1363,7 @@ SLONG PAG_last_page(void)
|
||||
* shadow stuff to dump a database.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -1409,7 +1409,7 @@ void PAG_release_page(SLONG number, SLONG prior_page)
|
||||
* Release a page to the free page page.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -1451,7 +1451,7 @@ void PAG_set_force_write(Database* dbb, SSHORT flag)
|
||||
* The value 2 for flag means set to default.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
ERR_POST_IF_DATABASE_IS_READONLY(dbb);
|
||||
|
||||
@ -1501,7 +1501,7 @@ void PAG_set_no_reserve(Database* dbb, USHORT flag)
|
||||
* Turn on/off reserving space for versions
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
ERR_POST_IF_DATABASE_IS_READONLY(dbb);
|
||||
|
||||
@ -1534,7 +1534,7 @@ void PAG_set_db_readonly(Database* dbb, bool flag)
|
||||
* Set database access mode to readonly OR readwrite
|
||||
*
|
||||
*********************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
WIN window(HEADER_PAGE);
|
||||
header_page* header = (header_page*) CCH_FETCH(tdbb, &window, LCK_write, pag_header);
|
||||
@ -1572,7 +1572,7 @@ void PAG_set_db_SQL_dialect(Database* dbb, SSHORT flag)
|
||||
* Set database SQL dialect to SQL_DIALECT_V5 or SQL_DIALECT_V6
|
||||
*
|
||||
*********************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
const USHORT major_version = dbb->dbb_ods_version;
|
||||
const USHORT minor_original = dbb->dbb_minor_original;
|
||||
@ -1627,7 +1627,7 @@ void PAG_set_page_buffers(ULONG buffers)
|
||||
* Set database-specific page buffer cache
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -1672,7 +1672,7 @@ int PAG_unlicensed(void)
|
||||
* sort of non-sense.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
WIN window(HEADER_PAGE);
|
||||
CCH_FETCH(tdbb, &window, LCK_write, pag_header);
|
||||
@ -1715,7 +1715,7 @@ static void find_clump_space(
|
||||
* Allocate a new page if required.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -1862,7 +1862,7 @@ static bool find_type(
|
||||
* false - Not present
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
while (true) {
|
||||
header_page* header = 0;
|
||||
|
@ -603,7 +603,7 @@ static void error(CompilerScratch* csb, ...)
|
||||
va_list args;
|
||||
|
||||
/* Don't bother to pass tdbb for error handling */
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
VA_START(args, csb);
|
||||
|
||||
@ -2995,7 +2995,7 @@ static void warning(CompilerScratch* csb, ...)
|
||||
int type;
|
||||
va_list args;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
VA_START(args, csb);
|
||||
|
||||
|
@ -214,7 +214,7 @@ void PCMET_lookup_index( jrd_rel* relation, index_desc* idx)
|
||||
**************************************/
|
||||
CompilerScratch* csb = NULL;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
/* check the index blocks for the relation to see if we
|
||||
|
@ -154,7 +154,7 @@ int QATEST_entrypoint(ULONG * function, void *arg1, void *arg2, void *arg3)
|
||||
/* Parameters: NONE */
|
||||
/* Close current database file & delete */
|
||||
|
||||
tdbb = GET_THREAD_DATA;
|
||||
tdbb = JRD_get_thread_data;
|
||||
if (!(file = tdbb->tdbb_attachment->att_database->dbb_file))
|
||||
return -1;
|
||||
|
||||
@ -183,7 +183,7 @@ int QATEST_entrypoint(ULONG * function, void *arg1, void *arg2, void *arg3)
|
||||
/* Parameter 1: ULONG *shadow_number */
|
||||
/* Close & delete specified shadow file */
|
||||
|
||||
tdbb = GET_THREAD_DATA;
|
||||
tdbb = JRD_get_thread_data;
|
||||
if (!(shadow = tdbb->tdbb_attachment->att_database->dbb_shadow))
|
||||
return -1;
|
||||
for (; shadow; shadow = shadow->sdw_next)
|
||||
|
@ -82,7 +82,7 @@ Lock* RLCK_lock_record(record_param* rpb,
|
||||
if (!lock)
|
||||
return NULL;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
/*
|
||||
if the record is trying to be locked, check
|
||||
@ -243,7 +243,7 @@ Lock* RLCK_range_relation(jrd_tra* transaction,
|
||||
* Lock a relation for a refresh range.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Attachment* attachment = tdbb->tdbb_attachment;
|
||||
|
||||
if (transaction->tra_flags & TRA_system)
|
||||
@ -289,7 +289,7 @@ Lock* RLCK_record_locking(jrd_rel* relation)
|
||||
if (relation->rel_record_locking)
|
||||
return relation->rel_record_locking;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = GET_DBB;
|
||||
|
||||
Lock* lock = FB_NEW_RPT(*dbb->dbb_permanent, sizeof(SLONG)) Lock();
|
||||
@ -470,7 +470,7 @@ void RLCK_shutdown_attachment(Attachment* attachment)
|
||||
* and relation locks. This runs at AST level.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
/* Release child record locks before parent relation locks */
|
||||
for (Lock* record_lock = attachment->att_record_locks;
|
||||
record_lock;
|
||||
@ -505,7 +505,7 @@ void RLCK_shutdown_database(Database* dbb)
|
||||
* at AST level.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
vec* vector = dbb->dbb_relations;
|
||||
if (!vector)
|
||||
return;
|
||||
@ -542,7 +542,7 @@ void RLCK_signal_refresh(jrd_tra* transaction)
|
||||
* lock to signal possible refresh range users.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
/* for each relation, take out a range relation lock and then release it */
|
||||
vec* vector = transaction->tra_relation_locks;
|
||||
@ -640,7 +640,7 @@ void RLCK_unlock_record(Lock* lock, record_param* rpb)
|
||||
relation = NULL; /* theoretically impossible */
|
||||
|
||||
RLCK_unlock_record_implicit(lock, rpb);
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Attachment* attachment = tdbb->tdbb_attachment;
|
||||
if (attachment->att_flags & ATT_shutdown)
|
||||
return;
|
||||
@ -671,7 +671,7 @@ void RLCK_unlock_record_implicit(Lock* lock, record_param* rpb)
|
||||
* Unlock a record-level lock.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
if (!lock)
|
||||
lock = find_record_lock(rpb);
|
||||
const USHORT lock_level = lock->lck_logical;
|
||||
@ -725,7 +725,7 @@ void RLCK_unlock_relation(Lock* lock, jrd_rel* relation)
|
||||
* on the specified relation.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Attachment* attachment = tdbb->tdbb_attachment;
|
||||
vec* vector = attachment->att_relation_locks;
|
||||
if (!vector)
|
||||
@ -774,7 +774,7 @@ static Lock* allocate_record_lock(jrd_tra* transaction, record_param* rpb)
|
||||
* transaction used only for implicit record locks.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
Attachment* attachment = tdbb->tdbb_attachment;
|
||||
if (!rpb->rpb_record)
|
||||
@ -827,7 +827,7 @@ static Lock* allocate_relation_lock(MemoryPool* pool, jrd_rel* relation)
|
||||
* Allocate a lock block for a relation lock.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
Lock* lock = FB_NEW_RPT(*pool, sizeof(SLONG)) Lock();
|
||||
lock->lck_dbb = dbb;
|
||||
@ -859,7 +859,7 @@ static Lock* attachment_relation_lock(jrd_rel* relation)
|
||||
* attachment level.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
Attachment* attachment = tdbb->tdbb_attachment;
|
||||
|
||||
@ -901,7 +901,7 @@ static void drop_record_lock(Lock* record_lock)
|
||||
* the attachment block, and drop it from the list.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
/* look through all the record locks taken out by this attachment
|
||||
looking for one with the same record number and relation id */
|
||||
Attachment* attachment = tdbb->tdbb_attachment;
|
||||
@ -931,7 +931,7 @@ static Lock* find_record_lock(record_param* rpb)
|
||||
* defined for a record.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
/* look through all the record locks taken out by this attachment
|
||||
looking for one with the same record number and relation */
|
||||
Attachment* attachment = tdbb->tdbb_attachment;
|
||||
|
@ -74,7 +74,7 @@ void RNG_add_page(ULONG page_number)
|
||||
* currently being defined.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
jrd_req* request = tdbb->tdbb_request;
|
||||
|
||||
RefreshRange* next_refresh_range;
|
||||
@ -145,7 +145,7 @@ void RNG_add_record(record_param* rpb)
|
||||
* currently being defined.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
jrd_req* request = tdbb->tdbb_request;
|
||||
|
||||
RefreshRange* next_refresh_range;
|
||||
@ -214,7 +214,7 @@ jrd_nod* RNG_add_relation(jrd_nod* node)
|
||||
* currently being defined.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
jrd_req* request = tdbb->tdbb_request;
|
||||
|
||||
if (request->req_operation == req_evaluate) {
|
||||
@ -284,7 +284,7 @@ void RNG_add_uncommitted_record(record_param* rpb)
|
||||
* registering interest in the transaction that created it.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
jrd_req* request = tdbb->tdbb_request;
|
||||
|
||||
RefreshRange* next_refresh_range;
|
||||
@ -360,7 +360,7 @@ DSC *RNG_begin(jrd_nod* node, impure_value* impure)
|
||||
* Initialize a refresh range.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
jrd_req* request = tdbb->tdbb_request;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
jrd_tra* transaction = request->req_transaction;
|
||||
@ -460,7 +460,7 @@ jrd_nod* RNG_delete(jrd_nod* node)
|
||||
* Delete a previously created refresh range.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
jrd_req* request = tdbb->tdbb_request;
|
||||
|
||||
if (request->req_operation == req_evaluate) {
|
||||
@ -531,7 +531,7 @@ jrd_nod* RNG_end(jrd_nod* node)
|
||||
* Stop adding records to refresh range.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
jrd_req* request = tdbb->tdbb_request;
|
||||
|
||||
if (request->req_operation == req_evaluate) {
|
||||
@ -575,7 +575,7 @@ void RNG_release_locks(RefreshRange* refresh_range)
|
||||
* Release all locks held by a refresh range.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
/* release all the relation locks */
|
||||
|
||||
@ -678,7 +678,7 @@ void RNG_shutdown_attachment(Attachment* attachment)
|
||||
* This may be called at AST level, don't release memory.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
for (jrd_req* request = attachment->att_requests; request;
|
||||
request = request->req_request)
|
||||
@ -736,7 +736,7 @@ static void delete_range(RefreshRange* refresh_range)
|
||||
* a refresh range.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
jrd_req* request = tdbb->tdbb_request;
|
||||
|
||||
@ -809,7 +809,7 @@ static int post_event_ast(void* refresh_range_void)
|
||||
/* Since this routine will be called asynchronously, we must establish
|
||||
a thread context. */
|
||||
|
||||
SET_THREAD_DATA;
|
||||
JRD_set_thread_data;
|
||||
|
||||
RefreshRange* refresh_range = static_cast<RefreshRange*>(refresh_range_void);
|
||||
tdbb->tdbb_database = refresh_range->rng_attachment->att_database;
|
||||
@ -823,7 +823,7 @@ static int post_event_ast(void* refresh_range_void)
|
||||
|
||||
/* Restore the prior thread context */
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
JRD_restore_thread_data;
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
@ -843,7 +843,7 @@ static void stop_creating(RefreshRange* refresh_range)
|
||||
* those being created.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
jrd_req* request = tdbb->tdbb_request;
|
||||
|
||||
/* delete from the list of ranges being created */
|
||||
|
@ -142,7 +142,7 @@ void SCL_check_access(const SecurityClass* s_class,
|
||||
* object in question.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
if (s_class && (s_class->scl_flags & SCL_corrupt))
|
||||
{
|
||||
@ -344,7 +344,7 @@ void SCL_check_procedure(const dsc* dsc_name, USHORT mask)
|
||||
**************************************/
|
||||
SqlIdentifier name;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
// Get the name in CSTRING format, ending on NULL or SPACE
|
||||
|
||||
@ -401,7 +401,7 @@ void SCL_check_relation(const dsc* dsc_name, USHORT mask)
|
||||
**************************************/
|
||||
SqlIdentifier name;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
// Get the name in CSTRING format, ending on NULL or SPACE
|
||||
|
||||
@ -456,7 +456,7 @@ SecurityClass* SCL_get_class(const TEXT* _string)
|
||||
* class block.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
// Name may be absent or terminated with NULL or blank. Clean up name.
|
||||
@ -521,7 +521,7 @@ int SCL_get_mask(const TEXT* relation_name, const TEXT* field_name)
|
||||
* access for database.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Attachment* attachment = tdbb->tdbb_attachment;
|
||||
|
||||
// Start with database security class
|
||||
@ -874,7 +874,7 @@ void SCL_release(SecurityClass* s_class)
|
||||
* Release an unneeded and unloved security class.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Attachment* attachment = tdbb->tdbb_attachment;
|
||||
|
||||
for (SecurityClass** next = &attachment->att_security_classes; *next;
|
||||
@ -980,7 +980,7 @@ static bool check_user_group(const UCHAR* acl,
|
||||
* If they don't match, return true.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
SLONG n = 0;
|
||||
|
@ -79,7 +79,7 @@ void SDW_add(const TEXT* file_name, USHORT shadow_number, USHORT file_flags)
|
||||
* Add a brand new shadowing file to the database.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = GET_DBB;
|
||||
|
||||
// Verify database file path against DatabaseAccess entry of firebird.conf
|
||||
@ -126,7 +126,7 @@ int SDW_add_file(const TEXT* file_name, SLONG start, USHORT shadow_number)
|
||||
* Return the sequence number for the new file.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
/* Find the file to be extended */
|
||||
@ -298,7 +298,7 @@ void SDW_check(void)
|
||||
*
|
||||
**************************************/
|
||||
Database* dbb = GET_DBB;
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
/* first get rid of any shadows that need to be
|
||||
deleted or shutdown; deleted shadows must also
|
||||
@ -363,7 +363,7 @@ bool SDW_check_conditional(void)
|
||||
* if so update meta data and return true
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -449,7 +449,7 @@ void SDW_dump_pages(void)
|
||||
* to all unwritten shadow files.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
gds__log("conditional shadow dumped for database %s",
|
||||
dbb->dbb_file->fil_string);
|
||||
@ -530,7 +530,7 @@ void SDW_get_shadows(void)
|
||||
* defined.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -577,7 +577,7 @@ void SDW_init(bool activate, bool delete_)
|
||||
* to use as a shadow.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -677,7 +677,7 @@ void SDW_notify(void)
|
||||
* a shadow added.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -728,7 +728,7 @@ bool SDW_rollover_to_shadow(jrd_file* file, const bool inAst)
|
||||
* Functional description
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = GET_DBB;
|
||||
|
||||
if (file != dbb->dbb_file)
|
||||
@ -895,7 +895,7 @@ void SDW_start(
|
||||
SCHAR expanded_name[MAXPATHLEN];
|
||||
USHORT header_fetched = 0;
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
/* check that this shadow has not already been started,
|
||||
@ -1095,7 +1095,7 @@ int SDW_start_shadowing(void* ast_object)
|
||||
/* Since this routine will be called asynchronously, we must establish
|
||||
a thread context. */
|
||||
thread_db thd_context, *tdbb;
|
||||
SET_THREAD_DATA;
|
||||
JRD_set_thread_data;
|
||||
|
||||
tdbb->tdbb_database = new_dbb;
|
||||
tdbb->tdbb_quantum = QUANTUM;
|
||||
@ -1110,7 +1110,7 @@ int SDW_start_shadowing(void* ast_object)
|
||||
|
||||
/* Restore the prior thread context */
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
JRD_restore_thread_data;
|
||||
|
||||
ISC_ast_exit();
|
||||
return 0;
|
||||
@ -1129,7 +1129,7 @@ static void activate_shadow(void)
|
||||
* Change a shadow into a database.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -1210,7 +1210,7 @@ static bool check_for_file(const SCHAR* name, USHORT length)
|
||||
*
|
||||
**************************************/
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
|
||||
try {
|
||||
@ -1242,7 +1242,7 @@ static void check_if_got_ast(jrd_file* file)
|
||||
* a shadow update
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
@ -1274,7 +1274,7 @@ static void copy_header(void)
|
||||
* the name of the extend file.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Database* dbb = tdbb->tdbb_database;
|
||||
CHECK_DBB(dbb);
|
||||
|
||||
|
@ -138,7 +138,7 @@ bool SHUT_database(Database* dbb, SSHORT flag, SSHORT delay)
|
||||
* Schedule database for shutdown
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Attachment* attachment = tdbb->tdbb_attachment;
|
||||
|
||||
/* Only platform's user locksmith can shutdown or bring online
|
||||
@ -307,7 +307,7 @@ bool SHUT_online(Database* dbb, SSHORT flag)
|
||||
*
|
||||
**************************************/
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
Attachment* attachment = tdbb->tdbb_attachment;
|
||||
|
||||
/* Only platform's user locksmith can shutdown or bring online
|
||||
@ -396,7 +396,7 @@ bool SHUT_online(Database* dbb, SSHORT flag)
|
||||
|
||||
static bool bad_mode(bool ignore) {
|
||||
if (!ignore) {
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
ISC_STATUS* status = tdbb->tdbb_status_vector;
|
||||
*status++ = isc_arg_gds;
|
||||
@ -426,7 +426,7 @@ static bool notify_shutdown(Database* dbb, SSHORT flag, SSHORT delay)
|
||||
*
|
||||
**************************************/
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
shutdown_data data;
|
||||
|
||||
data.data_items.flag = flag;
|
||||
@ -465,7 +465,7 @@ static bool shutdown_locks(Database* dbb, SSHORT flag)
|
||||
* locks if database is quiet.
|
||||
*
|
||||
**************************************/
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
/* Mark database and all active attachments as shutdown. */
|
||||
|
||||
|
@ -370,7 +370,7 @@ Service* SVC_attach(USHORT service_length,
|
||||
*
|
||||
**************************************/
|
||||
/* If the service name begins with a slash, ignore it. */
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
if (*service_name == '/' || *service_name == '\\') {
|
||||
service_name++;
|
||||
@ -403,7 +403,7 @@ Service* SVC_attach(USHORT service_length,
|
||||
0);
|
||||
#endif
|
||||
|
||||
GET_THREAD_DATA;
|
||||
JRD_get_thread_data;
|
||||
|
||||
/* If anything goes wrong, we want to be able to free any memory
|
||||
that may have been allocated. */
|
||||
@ -1780,7 +1780,7 @@ void* SVC_start(Service* service, USHORT spb_length, const SCHAR* spb)
|
||||
}
|
||||
THD_MUTEX_UNLOCK(thd_mutex);
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
try {
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
||||
*
|
||||
*/
|
||||
/*
|
||||
$Id: thd.h,v 1.25 2004-05-17 22:27:56 brodsom Exp $
|
||||
$Id: thd.h,v 1.26 2004-05-19 18:12:33 brodsom Exp $
|
||||
*/
|
||||
|
||||
#ifndef JRD_THD_H
|
||||
@ -119,11 +119,6 @@ struct IB_RTL_CRITICAL_SECTION
|
||||
#define THD_COND_STRUCT SCHAR
|
||||
#endif
|
||||
|
||||
#ifdef ANY_THREADING
|
||||
#define GET_THREAD_DATA ((THDD) THD_get_specific())
|
||||
#else
|
||||
#define GET_THREAD_DATA gdbb
|
||||
#endif
|
||||
|
||||
/* Thread priorities (may be ignored) */
|
||||
|
||||
|
@ -2231,7 +2231,7 @@ static int downgrade_lock(void* transaction_void)
|
||||
a thread context. */
|
||||
|
||||
thread_db thd_context, *tdbb;
|
||||
SET_THREAD_DATA;
|
||||
JRD_set_thread_data;
|
||||
|
||||
/* Ignore the request if the transaction or lock block does not appear
|
||||
to be valid or if the lock is not a write lock. */
|
||||
@ -2255,7 +2255,7 @@ static int downgrade_lock(void* transaction_void)
|
||||
|
||||
/* Restore the prior thread context */
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
JRD_restore_thread_data;
|
||||
|
||||
ISC_ast_exit();
|
||||
return 0;
|
||||
@ -2276,7 +2276,7 @@ static void expand_view_lock(jrd_tra* transaction, jrd_rel* relation, SCHAR lock
|
||||
*
|
||||
**************************************/
|
||||
|
||||
thread_db* tdbb = GET_THREAD_DATA;
|
||||
thread_db* tdbb = JRD_get_thread_data;
|
||||
|
||||
/* set up the lock on the relation/view */
|
||||
|
||||
|
@ -3552,7 +3552,7 @@ static void THREAD_ROUTINE garbage_collector(Database* dbb)
|
||||
Once we reach the end, the thread will die, thus implicitly
|
||||
killing all its contexts. */
|
||||
thread_db thd_context, *tdbb;
|
||||
SET_THREAD_DATA;
|
||||
JRD_set_thread_data;
|
||||
tdbb->tdbb_database = dbb;
|
||||
tdbb->tdbb_default = dbb->dbb_permanent;
|
||||
tdbb->tdbb_status_vector = status_vector;
|
||||
@ -3803,7 +3803,7 @@ gc_exit:
|
||||
ISC_event_post(dbb->dbb_gc_event_fini);
|
||||
ISC_event_fini(gc_event);
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
JRD_restore_thread_data;
|
||||
THREAD_EXIT();
|
||||
|
||||
} // try
|
||||
|
@ -112,7 +112,7 @@ BLK ALLR_block(UCHAR type, ULONG count)
|
||||
{
|
||||
if (type <= (UCHAR) type_MIN || type >= (UCHAR) type_MAX)
|
||||
{
|
||||
TRDB trdb = GET_THREAD_DATA;
|
||||
TRDB trdb = REM_get_thread_data;
|
||||
ISC_STATUS* status_vector = trdb->trdb_status_vector;
|
||||
|
||||
if (status_vector)
|
||||
|
@ -183,12 +183,6 @@ static ULONG remote_event_id = 0;
|
||||
|
||||
#define SET_OBJECT(rdb,object,id) REMOTE_set_object (rdb->rdb_port, (struct blk *) object, id)
|
||||
|
||||
#define SET_THREAD_DATA trdb = &thd_context;\
|
||||
trdb->trdb_status_vector = NULL;\
|
||||
THD_put_specific ((THDD) trdb);\
|
||||
trdb->trdb_thd_data.thdd_type = THDD_TYPE_TRDB
|
||||
#define RESTORE_THREAD_DATA THD_restore_specific()
|
||||
|
||||
#define GDS_ATTACH_DATABASE REM_attach_database
|
||||
#define GDS_BLOB_INFO REM_blob_info
|
||||
#define GDS_CANCEL_BLOB REM_cancel_blob
|
||||
@ -283,7 +277,7 @@ ISC_STATUS GDS_ATTACH_DATABASE(ISC_STATUS* user_status,
|
||||
}
|
||||
#endif
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
NULL_CHECK(handle, isc_bad_db_handle);
|
||||
|
||||
@ -382,7 +376,7 @@ ISC_STATUS GDS_BLOB_INFO(ISC_STATUS* user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
RBL blob = *blob_handle;
|
||||
CHECK_HANDLE(blob, type_rbl, isc_bad_segstr_handle);
|
||||
@ -398,7 +392,7 @@ ISC_STATUS GDS_BLOB_INFO(ISC_STATUS* user_status,
|
||||
{
|
||||
status = info(user_status, rdb, op_info_blob, blob->rbl_id, 0,
|
||||
item_length, items, 0, 0, buffer_length, buffer);
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
}
|
||||
catch (const std::exception& ex)
|
||||
{
|
||||
@ -433,7 +427,7 @@ ISC_STATUS GDS_CANCEL_BLOB(ISC_STATUS * user_status, RBL * blob_handle)
|
||||
return FB_SUCCESS;
|
||||
}
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
CHECK_HANDLE(blob, type_rbl, isc_bad_segstr_handle);
|
||||
RDB rdb = blob->rbl_rdb;
|
||||
@ -474,7 +468,7 @@ ISC_STATUS GDS_CANCEL_EVENTS(ISC_STATUS * user_status, RDB * handle, SLONG * id)
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
RDB rdb = *handle;
|
||||
CHECK_HANDLE(rdb, type_rdb, isc_bad_db_handle);
|
||||
@ -523,7 +517,7 @@ ISC_STATUS GDS_CLOSE_BLOB(ISC_STATUS * user_status, RBL * blob_handle)
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
RBL blob = *blob_handle;
|
||||
CHECK_HANDLE(blob, type_rbl, isc_bad_segstr_handle);
|
||||
@ -574,7 +568,7 @@ ISC_STATUS GDS_COMMIT(ISC_STATUS * user_status, RTR * rtr_handle)
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
RTR transaction = *rtr_handle;
|
||||
CHECK_HANDLE(transaction, type_rtr, isc_bad_trans_handle);
|
||||
@ -617,7 +611,7 @@ ISC_STATUS GDS_COMMIT_RETAINING(ISC_STATUS * user_status, RTR * rtr_handle)
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
RTR transaction = *rtr_handle;
|
||||
CHECK_HANDLE(transaction, type_rtr, isc_bad_trans_handle);
|
||||
@ -664,7 +658,7 @@ ISC_STATUS GDS_COMPILE(ISC_STATUS* user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
/* Check and validate handles, etc. */
|
||||
|
||||
@ -777,7 +771,7 @@ ISC_STATUS GDS_CREATE_BLOB2(ISC_STATUS* user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
NULL_CHECK(blob_handle, isc_bad_segstr_handle);
|
||||
RDB rdb = *db_handle;
|
||||
@ -874,7 +868,7 @@ ISC_STATUS GDS_CREATE_DATABASE(ISC_STATUS* user_status,
|
||||
return isc_unavailable;
|
||||
#endif
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
NULL_CHECK(handle, isc_bad_db_handle);
|
||||
|
||||
@ -974,7 +968,7 @@ ISC_STATUS GDS_DATABASE_INFO(ISC_STATUS* user_status,
|
||||
UCHAR temp[1024];
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
RDB rdb = *handle;
|
||||
CHECK_HANDLE(rdb, type_rdb, isc_bad_db_handle);
|
||||
@ -1017,7 +1011,7 @@ ISC_STATUS GDS_DATABASE_INFO(ISC_STATUS* user_status,
|
||||
ALLR_free(temp_buffer);
|
||||
}
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
}
|
||||
catch (const std::exception& ex)
|
||||
{
|
||||
@ -1046,7 +1040,7 @@ ISC_STATUS GDS_DDL(ISC_STATUS* user_status,
|
||||
ISC_STATUS status;
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
/* Check and validate handles, etc. */
|
||||
|
||||
@ -1082,7 +1076,7 @@ ISC_STATUS GDS_DDL(ISC_STATUS* user_status,
|
||||
return error(user_status, ex);
|
||||
}
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
|
||||
return status;
|
||||
}
|
||||
@ -1102,7 +1096,7 @@ ISC_STATUS GDS_DETACH(ISC_STATUS* user_status, RDB* handle)
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
RDB rdb = *handle;
|
||||
CHECK_HANDLE(rdb, type_rdb, isc_bad_db_handle);
|
||||
@ -1162,7 +1156,7 @@ ISC_STATUS GDS_DETACH(ISC_STATUS* user_status, RDB* handle)
|
||||
return error(user_status, ex);
|
||||
}
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
|
||||
*user_status++ = isc_arg_gds;
|
||||
*user_status++ = FB_SUCCESS;
|
||||
@ -1187,7 +1181,7 @@ ISC_STATUS GDS_DROP_DATABASE(ISC_STATUS* user_status, RDB* handle)
|
||||
ISC_STATUS_ARRAY local_status;
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
RDB rdb = *handle;
|
||||
CHECK_HANDLE(rdb, type_rdb, isc_bad_db_handle);
|
||||
@ -1233,7 +1227,7 @@ ISC_STATUS GDS_DROP_DATABASE(ISC_STATUS* user_status, RDB* handle)
|
||||
return error(user_status, ex);
|
||||
}
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
|
||||
return user_status[1];
|
||||
}
|
||||
@ -1255,7 +1249,7 @@ ISC_STATUS GDS_DSQL_ALLOCATE(ISC_STATUS* user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
NULL_CHECK(stmt_handle, isc_bad_req_handle);
|
||||
RDB rdb = *db_handle;
|
||||
@ -1354,7 +1348,7 @@ ISC_STATUS GDS_DSQL_EXECUTE2(ISC_STATUS* user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
/* Check and validate handles, etc. */
|
||||
|
||||
@ -1566,7 +1560,7 @@ ISC_STATUS GDS_DSQL_EXECUTE_IMMED2(ISC_STATUS* user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
/* Check and validate handles, etc. */
|
||||
|
||||
@ -1746,7 +1740,7 @@ ISC_STATUS GDS_DSQL_FETCH(ISC_STATUS* user_status,
|
||||
ISC_STATUS status;
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
/* Check and validate handles, etc. */
|
||||
|
||||
@ -1814,7 +1808,7 @@ ISC_STATUS GDS_DSQL_FETCH(ISC_STATUS* user_status,
|
||||
if (statement->rsr_flags & RSR_blob) {
|
||||
status = fetch_blob(user_status, statement, blr_length, blr,
|
||||
msg_type, msg_length, msg);
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
return status;
|
||||
}
|
||||
|
||||
@ -1937,7 +1931,7 @@ ISC_STATUS GDS_DSQL_FETCH(ISC_STATUS* user_status,
|
||||
{
|
||||
statement->rsr_flags &= ~RSR_eof;
|
||||
|
||||
/* Set up status vector and RESTORE_THREAD_DATA in common return_success */
|
||||
/* Set up status vector and REM_restore_thread_data in common return_success */
|
||||
|
||||
return_success(rdb);
|
||||
return 100;
|
||||
@ -2007,7 +2001,7 @@ ISC_STATUS GDS_DSQL_FREE(ISC_STATUS * user_status, RSR * stmt_handle, USHORT opt
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
/* Check and validate handles, etc. */
|
||||
|
||||
@ -2079,7 +2073,7 @@ ISC_STATUS GDS_DSQL_INSERT(ISC_STATUS * user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
/* Check and validate handles, etc. */
|
||||
|
||||
@ -2181,7 +2175,7 @@ ISC_STATUS GDS_DSQL_PREPARE(ISC_STATUS * user_status, RTR * rtr_handle, RSR * st
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
/* Check and validate handles, etc. */
|
||||
|
||||
@ -2285,7 +2279,7 @@ ISC_STATUS GDS_DSQL_SET_CURSOR(ISC_STATUS* user_status,
|
||||
*****************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
/* Check and validate handles, etc. */
|
||||
|
||||
@ -2355,7 +2349,7 @@ ISC_STATUS GDS_DSQL_SQL_INFO(ISC_STATUS* user_status,
|
||||
ISC_STATUS status;
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
/* Check and validate handles, etc. */
|
||||
|
||||
@ -2382,7 +2376,7 @@ ISC_STATUS GDS_DSQL_SQL_INFO(ISC_STATUS* user_status,
|
||||
return error(user_status, ex);
|
||||
}
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
|
||||
return status;
|
||||
}
|
||||
@ -2405,7 +2399,7 @@ ISC_STATUS GDS_GET_SEGMENT(ISC_STATUS * user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
/* Sniff out handles, etc, and find the various blocks. */
|
||||
|
||||
@ -2449,7 +2443,7 @@ ISC_STATUS GDS_GET_SEGMENT(ISC_STATUS * user_status,
|
||||
|
||||
*length = response->p_resp_data.cstr_length;
|
||||
response->p_resp_data = temp;
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
return user_status[1];
|
||||
}
|
||||
|
||||
@ -2471,7 +2465,7 @@ ISC_STATUS GDS_GET_SEGMENT(ISC_STATUS * user_status,
|
||||
|
||||
if (blob->rbl_flags & RBL_eof) {
|
||||
*v++ = isc_segstr_eof;
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
return user_status[1];
|
||||
}
|
||||
|
||||
@ -2613,7 +2607,7 @@ ISC_STATUS GDS_GET_SEGMENT(ISC_STATUS * user_status,
|
||||
return error(user_status, ex);
|
||||
}
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
|
||||
return user_status[1];
|
||||
}
|
||||
@ -2641,7 +2635,7 @@ ISC_STATUS GDS_GET_SLICE(ISC_STATUS* user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
RDB rdb = *db_handle;
|
||||
CHECK_HANDLE(rdb, type_rdb, isc_bad_db_handle);
|
||||
@ -2745,7 +2739,7 @@ ISC_STATUS GDS_OPEN_BLOB2(ISC_STATUS* user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
NULL_CHECK(blob_handle, isc_bad_segstr_handle);
|
||||
RDB rdb = *db_handle;
|
||||
@ -2821,7 +2815,7 @@ ISC_STATUS GDS_PREPARE(ISC_STATUS * user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
RTR transaction = *rtr_handle;
|
||||
CHECK_HANDLE(transaction, type_rtr, isc_bad_trans_handle);
|
||||
@ -2884,7 +2878,7 @@ ISC_STATUS GDS_PUT_SEGMENT(ISC_STATUS* user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
/* Sniff out handles, etc, and find the various blocks. */
|
||||
|
||||
@ -2906,7 +2900,7 @@ ISC_STATUS GDS_PUT_SEGMENT(ISC_STATUS* user_status,
|
||||
if ((port->port_flags & PORT_rpc) || !(blob->rbl_flags & RBL_create))
|
||||
{
|
||||
send_blob(user_status, blob, segment_length, segment);
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
return user_status[1];
|
||||
}
|
||||
|
||||
@ -2920,13 +2914,13 @@ ISC_STATUS GDS_PUT_SEGMENT(ISC_STATUS* user_status,
|
||||
if ((ULONG) segment_length + 2 > l) {
|
||||
if (blob->rbl_ptr > blob->rbl_buffer) {
|
||||
if (send_blob(user_status, blob, 0, NULL)) {
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
return user_status[1];
|
||||
}
|
||||
}
|
||||
if ((ULONG) segment_length + 2 > blob->rbl_buffer_length) {
|
||||
send_blob(user_status, blob, segment_length, segment);
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
return user_status[1];
|
||||
}
|
||||
p = blob->rbl_buffer;
|
||||
@ -2981,7 +2975,7 @@ ISC_STATUS GDS_PUT_SLICE(ISC_STATUS* user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
RDB rdb = *db_handle;
|
||||
CHECK_HANDLE(rdb, type_rdb, isc_bad_db_handle);
|
||||
@ -3075,7 +3069,7 @@ ISC_STATUS GDS_QUE_EVENTS(ISC_STATUS* user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
RDB rdb = *handle;
|
||||
CHECK_HANDLE(rdb, type_rdb, isc_bad_db_handle);
|
||||
@ -3189,7 +3183,7 @@ ISC_STATUS GDS_RECEIVE(ISC_STATUS * user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
/* Check handles and environment, then set up error handling */
|
||||
|
||||
@ -3380,7 +3374,7 @@ ISC_STATUS GDS_RECEIVE(ISC_STATUS * user_status,
|
||||
memset(request->rrq_status_vector, 0,
|
||||
sizeof(request->rrq_status_vector));
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
return user_status[1];
|
||||
};
|
||||
|
||||
@ -3429,7 +3423,7 @@ ISC_STATUS GDS_RECONNECT(ISC_STATUS* user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
NULL_CHECK(rtr_handle, isc_bad_trans_handle);
|
||||
RDB rdb = *db_handle;
|
||||
@ -3476,7 +3470,7 @@ ISC_STATUS GDS_RELEASE_REQUEST(ISC_STATUS * user_status, rrq** req_handle)
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
rrq* request = *req_handle;
|
||||
CHECK_HANDLE(request, type_rrq, isc_bad_req_handle);
|
||||
@ -3523,7 +3517,7 @@ ISC_STATUS GDS_REQUEST_INFO(ISC_STATUS* user_status,
|
||||
ISC_STATUS status;
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
rrq* request = REMOTE_find_request(*req_handle, level);
|
||||
CHECK_HANDLE(request, type_rrq, isc_bad_req_handle);
|
||||
@ -3601,7 +3595,7 @@ punt:
|
||||
return error(user_status, ex);
|
||||
}
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
|
||||
return status;
|
||||
}
|
||||
@ -3621,7 +3615,7 @@ ISC_STATUS GDS_ROLLBACK_RETAINING(ISC_STATUS * user_status, RTR * rtr_handle)
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
RTR transaction = *rtr_handle;
|
||||
CHECK_HANDLE(transaction, type_rtr, isc_bad_trans_handle);
|
||||
@ -3666,7 +3660,7 @@ ISC_STATUS GDS_ROLLBACK(ISC_STATUS * user_status, RTR * rtr_handle)
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
RTR transaction = *rtr_handle;
|
||||
CHECK_HANDLE(transaction, type_rtr, isc_bad_trans_handle);
|
||||
@ -3711,7 +3705,7 @@ ISC_STATUS GDS_SEEK_BLOB(ISC_STATUS * user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
RBL blob = *blob_handle;
|
||||
CHECK_HANDLE(blob, type_rbl, isc_bad_segstr_handle);
|
||||
@ -3773,7 +3767,7 @@ ISC_STATUS GDS_SEND(ISC_STATUS * user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
CHECK_HANDLE((*req_handle), type_rrq, isc_bad_req_handle);
|
||||
rrq* request = REMOTE_find_request(*req_handle, level);
|
||||
@ -3839,7 +3833,7 @@ ISC_STATUS GDS_SERVICE_ATTACH(ISC_STATUS* user_status,
|
||||
UCHAR expanded_name[MAXPATHLEN];
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
NULL_CHECK(handle, isc_bad_svc_handle);
|
||||
|
||||
@ -3950,7 +3944,7 @@ ISC_STATUS GDS_SERVICE_DETACH(ISC_STATUS * user_status, RDB * handle)
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
/* Check and validate handles, etc. */
|
||||
|
||||
@ -3983,7 +3977,7 @@ ISC_STATUS GDS_SERVICE_DETACH(ISC_STATUS * user_status, RDB * handle)
|
||||
|
||||
/* Note: Can't return_success(rdb) here as we've torn down memory already */
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
|
||||
*user_status++ = isc_arg_gds;
|
||||
*user_status++ = FB_SUCCESS;
|
||||
@ -4020,7 +4014,7 @@ ISC_STATUS GDS_SERVICE_QUERY(ISC_STATUS* user_status,
|
||||
ISC_STATUS status;
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
/* Check and validate handles, etc. */
|
||||
|
||||
@ -4047,7 +4041,7 @@ ISC_STATUS GDS_SERVICE_QUERY(ISC_STATUS* user_status,
|
||||
status = error(user_status, ex);
|
||||
}
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
|
||||
return status;
|
||||
}
|
||||
@ -4075,7 +4069,7 @@ ISC_STATUS GDS_SERVICE_START(ISC_STATUS * user_status,
|
||||
ISC_STATUS status;
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
/* Check and validate handles, etc. */
|
||||
|
||||
@ -4102,7 +4096,7 @@ ISC_STATUS GDS_SERVICE_START(ISC_STATUS * user_status,
|
||||
return error(user_status, ex);
|
||||
}
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
|
||||
return status;
|
||||
}
|
||||
@ -4126,7 +4120,7 @@ ISC_STATUS GDS_START_AND_SEND(ISC_STATUS * user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
CHECK_HANDLE((*req_handle), type_rrq, isc_bad_req_handle);
|
||||
CHECK_HANDLE((*rtr_handle), type_rtr, isc_bad_trans_handle);
|
||||
@ -4213,7 +4207,7 @@ ISC_STATUS GDS_START(ISC_STATUS * user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
CHECK_HANDLE((*req_handle), type_rrq, isc_bad_req_handle);
|
||||
CHECK_HANDLE((*rtr_handle), type_rtr, isc_bad_trans_handle);
|
||||
@ -4287,7 +4281,7 @@ ISC_STATUS GDS_START_TRANSACTION(ISC_STATUS * user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
NULL_CHECK(rtr_handle, isc_bad_trans_handle);
|
||||
RDB rdb = *db_handle;
|
||||
@ -4341,7 +4335,7 @@ ISC_STATUS GDS_TRANSACT_REQUEST(ISC_STATUS* user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
RDB rdb = *db_handle;
|
||||
CHECK_HANDLE(rdb, type_rdb, isc_bad_db_handle);
|
||||
@ -4476,7 +4470,7 @@ ISC_STATUS GDS_TRANSACTION_INFO(ISC_STATUS* user_status,
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
RTR transaction = *tra_handle;
|
||||
CHECK_HANDLE(transaction, type_rtr, isc_bad_trans_handle);
|
||||
@ -4499,7 +4493,7 @@ ISC_STATUS GDS_TRANSACTION_INFO(ISC_STATUS* user_status,
|
||||
return error(user_status, ex);
|
||||
}
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
|
||||
return status;
|
||||
}
|
||||
@ -4519,7 +4513,7 @@ ISC_STATUS GDS_UNWIND(ISC_STATUS* user_status, rrq** req_handle, USHORT level)
|
||||
**************************************/
|
||||
struct trdb thd_context, *trdb;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
|
||||
rrq* request = REMOTE_find_request(*req_handle, level);
|
||||
CHECK_HANDLE(request, type_rrq, isc_bad_req_handle);
|
||||
@ -5315,7 +5309,7 @@ static bool clear_queue(rem_port* port,
|
||||
|
||||
if (port->port_receive_rmtque) {
|
||||
struct trdb *trdb;
|
||||
trdb = GET_THREAD_DATA;
|
||||
trdb = REM_get_thread_data;
|
||||
while (port->port_receive_rmtque)
|
||||
if (!receive_queued_packet(trdb, port, user_status, (USHORT) - 1))
|
||||
return false;
|
||||
@ -5427,7 +5421,7 @@ static ISC_STATUS error( ISC_STATUS * user_status)
|
||||
*
|
||||
**************************************/
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
|
||||
return user_status[1];
|
||||
}
|
||||
@ -5445,7 +5439,7 @@ static ISC_STATUS error(ISC_STATUS* user_status, const std::exception& ex)
|
||||
*
|
||||
**************************************/
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
|
||||
return Firebird::stuff_exception(user_status, ex);
|
||||
}
|
||||
@ -5874,7 +5868,7 @@ static ISC_STATUS handle_error( ISC_STATUS * user_status, ISC_STATUS code)
|
||||
*
|
||||
**************************************/
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
|
||||
*user_status++ = isc_arg_gds;
|
||||
*user_status++ = code;
|
||||
@ -6043,7 +6037,7 @@ static ISC_STATUS mov_dsql_message(const UCHAR* from_msg,
|
||||
/* Set up in case we get a conversion error.
|
||||
NOTE: The code below is not amenable to multi-threading. */
|
||||
|
||||
TRDB trdb = GET_THREAD_DATA;
|
||||
TRDB trdb = REM_get_thread_data;
|
||||
|
||||
try {
|
||||
|
||||
@ -6139,7 +6133,7 @@ static void move_error( ISC_STATUS status, ...)
|
||||
|
||||
VA_START(ap, status);
|
||||
|
||||
trdb = GET_THREAD_DATA;
|
||||
trdb = REM_get_thread_data;
|
||||
p_args = trdb->trdb_status_vector;
|
||||
end_args = p_args + ISC_STATUS_LENGTH;
|
||||
|
||||
@ -6645,7 +6639,7 @@ static ISC_STATUS return_success( RDB rdb)
|
||||
* Set up status vector to reflect successful execution.
|
||||
*
|
||||
**************************************/
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
|
||||
ISC_STATUS* p = rdb->rdb_status_vector;
|
||||
|
||||
@ -7193,7 +7187,7 @@ static ISC_STATUS unsupported(ISC_STATUS* user_status)
|
||||
*
|
||||
**************************************/
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
|
||||
*user_status++ = isc_arg_gds;
|
||||
*user_status++ = isc_wish_list;
|
||||
|
@ -512,11 +512,12 @@ typedef struct trdb
|
||||
} *TRDB;
|
||||
|
||||
|
||||
#ifdef GET_THREAD_DATA
|
||||
#undef GET_THREAD_DATA
|
||||
#endif
|
||||
|
||||
#define GET_THREAD_DATA ((TRDB) THD_get_specific())
|
||||
#define REM_get_thread_data ((TRDB) THD_get_specific())
|
||||
#define REM_set_thread_data trdb = &thd_context;\
|
||||
trdb->trdb_status_vector = NULL;\
|
||||
THD_put_specific ((THDD) trdb);\
|
||||
trdb->trdb_thd_data.thdd_type = THDD_TYPE_TRDB
|
||||
#define REM_restore_thread_data THD_restore_specific()
|
||||
|
||||
/* Queuing structure for Client batch fetches */
|
||||
|
||||
|
@ -63,12 +63,6 @@
|
||||
#endif
|
||||
#include "../remote/proto_proto.h" // xdr_protocol_overhead()
|
||||
|
||||
#define SET_THREAD_DATA trdb = &thd_context;\
|
||||
trdb->trdb_status_vector = NULL;\
|
||||
THD_put_specific ((THDD) trdb);\
|
||||
trdb->trdb_thd_data.thdd_type = THDD_TYPE_TRDB
|
||||
#define RESTORE_THREAD_DATA THD_restore_specific()
|
||||
|
||||
/** CHECK_HANDLE checks -
|
||||
if the id passwd is within the vector bounds,
|
||||
that the port_object corresponding to the id is not null,
|
||||
@ -279,7 +273,7 @@ void SRVR_multi_thread( rem_port* main_port, USHORT flags)
|
||||
|
||||
THREAD_ENTER();
|
||||
|
||||
SET_THREAD_DATA;
|
||||
REM_set_thread_data;
|
||||
trdb->trdb_status_vector = status_vector;
|
||||
|
||||
try {
|
||||
@ -354,7 +348,7 @@ void SRVR_multi_thread( rem_port* main_port, USHORT flags)
|
||||
{
|
||||
gds__log("SRVR_multi_thread/RECEIVE: error on main_port, shutting down");
|
||||
THREAD_EXIT();
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -535,14 +529,14 @@ void SRVR_multi_thread( rem_port* main_port, USHORT flags)
|
||||
*/
|
||||
gds__log("SRVR_multi_thread: error during startup, shutting down");
|
||||
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
THREAD_EXIT();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/* Why isn't this inside the #endif above? */
|
||||
RESTORE_THREAD_DATA;
|
||||
REM_restore_thread_data;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -172,7 +172,7 @@ int common_main(int argc,
|
||||
gsec_exit(FINI_ERROR, tdsec);
|
||||
}
|
||||
|
||||
SET_THREAD_DATA;
|
||||
GSEC_set_thread_data;
|
||||
SVC_PUTSPECIFIC_DATA;
|
||||
memset((void *) tdsec, 0, sizeof(*tdsec));
|
||||
|
||||
@ -380,7 +380,7 @@ static void data_print(void* arg, const internal_user_data* data, bool first)
|
||||
* if first is TRUE print the header then the data
|
||||
*
|
||||
**************************************/
|
||||
tsec* tdsec = GET_THREAD_DATA;
|
||||
tsec* tdsec = GSEC_get_thread_data;
|
||||
|
||||
#ifdef SUPERSERVER
|
||||
#define STUFF_USER(item) SVC_putc(tdsec->tsec_service_blk, item)
|
||||
@ -1131,7 +1131,7 @@ void GSEC_print_status(const ISC_STATUS* status_vector)
|
||||
if (status_vector) {
|
||||
const ISC_STATUS* vector = status_vector;
|
||||
#ifdef SUPERSERVER
|
||||
TSEC tdsec = GET_THREAD_DATA;
|
||||
TSEC tdsec = GSEC_get_thread_data;
|
||||
ISC_STATUS* status = tdsec->tsec_service_blk->svc_status;
|
||||
if (status != status_vector) {
|
||||
int i = 0, j;
|
||||
@ -1168,7 +1168,7 @@ static void util_output( const SCHAR* format, ...)
|
||||
**************************************/
|
||||
int exit_code;
|
||||
|
||||
tsec* tdsec = GET_THREAD_DATA;
|
||||
tsec* tdsec = GSEC_get_thread_data;
|
||||
|
||||
if (format[0] == '\0') {
|
||||
exit_code = tdsec->tsec_output_proc(tdsec->tsec_output_data,
|
||||
@ -1222,7 +1222,7 @@ void GSEC_error(
|
||||
*
|
||||
**************************************/
|
||||
#ifdef SUPERSERVER
|
||||
tsec* tdsec = GET_THREAD_DATA;
|
||||
tsec* tdsec = GSEC_get_thread_data;
|
||||
ISC_STATUS* status = tdsec->tsec_service_blk->svc_status;
|
||||
|
||||
CMD_UTIL_put_svc_status(status, GSEC_MSG_FAC, errcode,
|
||||
@ -1232,7 +1232,7 @@ void GSEC_error(
|
||||
isc_arg_string, arg4, isc_arg_string, arg5);
|
||||
tdsec->tsec_service_blk->svc_started();
|
||||
#else
|
||||
tsec* tdsec = GET_THREAD_DATA;
|
||||
tsec* tdsec = GSEC_get_thread_data;
|
||||
#endif
|
||||
|
||||
GSEC_print(errcode, arg1, arg2, arg3, arg4, arg5);
|
||||
|
@ -57,27 +57,6 @@ const int NAME_LEN = 33;
|
||||
#include "../jrd/svc.h"
|
||||
#include "../jrd/svc_proto.h"
|
||||
|
||||
#ifdef GET_THREAD_DATA
|
||||
#undef GET_THREAD_DATA
|
||||
#endif
|
||||
#ifdef SET_THREAD_DATA
|
||||
#undef SET_THREAD_DATA
|
||||
#endif
|
||||
#ifdef RESTORE_THREAD_DATA
|
||||
#undef RESTORE_THREAD_DATA
|
||||
#endif
|
||||
#ifdef SUPERSERVER
|
||||
#define GET_THREAD_DATA ((TSEC) THD_get_specific())
|
||||
#define SET_THREAD_DATA THD_put_specific ((THDD) tdsec); \
|
||||
tdsec->tsec_thd_data.thdd_type = THDD_TYPE_TSEC
|
||||
#define RESTORE_THREAD_DATA THD_restore_specific();
|
||||
#else
|
||||
#define GET_THREAD_DATA (gdsec)
|
||||
#define SET_THREAD_DATA gdsec = tdsec; \
|
||||
tdsec->tsec_thd_data.thdd_type = THDD_TYPE_TSEC
|
||||
#define RESTORE_THREAD_DATA
|
||||
#endif
|
||||
|
||||
struct internal_user_data {
|
||||
int operation; /* what's to be done */
|
||||
TEXT user_name [USER_NAME_LEN]; /* the user's name */
|
||||
@ -138,6 +117,21 @@ typedef struct tsec {
|
||||
Jrd::Service* tsec_service_blk;
|
||||
} *TSEC;
|
||||
|
||||
#ifdef SUPERSERVER
|
||||
#define GSEC_get_thread_data ((TSEC) THD_get_specific())
|
||||
#define GSEC_set_thread_data THD_put_specific ((THDD) tdsec); \
|
||||
tdsec->tsec_thd_data.thdd_type = THDD_TYPE_TSEC
|
||||
#define GSEC_restore_thread_data THD_restore_specific();
|
||||
#else
|
||||
extern struct tsec *gdsec;
|
||||
|
||||
#define GSEC_get_thread_data (gdsec)
|
||||
#define GSEC_set_thread_data gdsec = tdsec; \
|
||||
tdsec->tsec_thd_data.thdd_type = THDD_TYPE_TSEC
|
||||
#define GSEC_restore_thread_data
|
||||
#endif
|
||||
|
||||
|
||||
const USHORT GsecMsg0 = 0; /* empty message */
|
||||
const USHORT GsecMsg1 = 1; /* "GSEC> " (the prompt) */
|
||||
const USHORT GsecMsg2 = 2; /* gsec (lower case version of the prompt for help display) */
|
||||
|
@ -214,23 +214,23 @@ struct tdba {
|
||||
ISC_STATUS_ARRAY dba_status_vector;
|
||||
};
|
||||
|
||||
#ifdef GET_THREAD_DATA
|
||||
#undef GET_THREAD_DATA
|
||||
#ifdef DBA_get_thread_data
|
||||
#undef DBA_get_thread_data
|
||||
#endif
|
||||
|
||||
#ifdef SUPERSERVER
|
||||
#define GET_THREAD_DATA ((tdba*) THD_get_specific())
|
||||
#define SET_THREAD_DATA { tddba = &thd_context; \
|
||||
#define DBA_get_thread_data ((tdba*) THD_get_specific())
|
||||
#define DBA_set_thread_data { tddba = &thd_context; \
|
||||
THD_put_specific ((THDD) tddba);\
|
||||
tddba->tdba_thd_data.thdd_type = THDD_TYPE_TDBA; }
|
||||
#define RESTORE_THREAD_DATA THD_restore_specific()
|
||||
#define DBA_restore_thread_data THD_restore_specific()
|
||||
#else
|
||||
static struct tdba* gddba;
|
||||
|
||||
#define GET_THREAD_DATA (gddba)
|
||||
#define SET_THREAD_DATA gddba = tddba = &thd_context; \
|
||||
#define DBA_get_thread_data (gddba)
|
||||
#define DBA_set_thread_data gddba = tddba = &thd_context; \
|
||||
tddba->tdba_thd_data.thdd_type = THDD_TYPE_TDBA
|
||||
#define RESTORE_THREAD_DATA
|
||||
#define DBA_restore_thread_data
|
||||
#endif
|
||||
|
||||
void inline dba_exit(int code, tdba* tddba)
|
||||
@ -290,7 +290,7 @@ int CLIB_ROUTINE main(int argc, char** argv)
|
||||
BOOL fAnsiCP;
|
||||
#endif
|
||||
|
||||
SET_THREAD_DATA;
|
||||
DBA_set_thread_data;
|
||||
SVC_PUTSPECIFIC_DATA;
|
||||
memset(tddba, 0, sizeof(*tddba));
|
||||
tddba->dba_env = (UCHAR *) env;
|
||||
@ -923,7 +923,7 @@ int CLIB_ROUTINE main(int argc, char** argv)
|
||||
#endif
|
||||
|
||||
int exit_code = tddba->exit_code;
|
||||
RESTORE_THREAD_DATA;
|
||||
DBA_restore_thread_data;
|
||||
|
||||
#ifdef SUPERSERVER
|
||||
return exit_code;
|
||||
@ -949,7 +949,7 @@ static char* alloc(size_t size)
|
||||
*
|
||||
**************************************/
|
||||
#ifdef SUPERSERVER
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
char* const block = FB_NEW(*getDefaultMemoryPool()) SCHAR[size];
|
||||
#else
|
||||
char* const block = (char*) gds__alloc(size);
|
||||
@ -997,7 +997,7 @@ static void analyze_data( dba_rel* relation, bool sw_record)
|
||||
* Analyze data pages associated with relation.
|
||||
*
|
||||
**************************************/
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
|
||||
pointer_page* ptr_page = (pointer_page*) tddba->buffer1;
|
||||
|
||||
@ -1035,7 +1035,7 @@ static bool analyze_data_page( dba_rel* relation, const data_page* page, bool sw
|
||||
* Analyze space utilization for data page.
|
||||
*
|
||||
**************************************/
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
|
||||
if (page->pag_type != pag_data)
|
||||
return false;
|
||||
@ -1102,7 +1102,7 @@ static ULONG analyze_fragments(const dba_rel* relation, const rhdf* header)
|
||||
* Analyze space used by a record's fragments.
|
||||
*
|
||||
**************************************/
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
ULONG space = 0;
|
||||
|
||||
while (header->rhdf_flags & rhd_incomplete) {
|
||||
@ -1138,7 +1138,7 @@ static void analyze_index( dba_rel* relation, dba_idx* index)
|
||||
* Functional description
|
||||
*
|
||||
**************************************/
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
|
||||
const index_root_page* index_root =
|
||||
(const index_root_page*) db_read(relation->rel_index_root);
|
||||
@ -1262,7 +1262,7 @@ static ULONG analyze_versions( dba_rel* relation, const rhdf* header)
|
||||
* Analyze space used by a record's back versions.
|
||||
*
|
||||
**************************************/
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
ULONG space = 0, versions = 0;
|
||||
SLONG b_page = header->rhdf_b_page;
|
||||
USHORT b_line = header->rhdf_b_line;
|
||||
@ -1330,7 +1330,7 @@ static void db_error( SLONG status)
|
||||
**************************************/
|
||||
TEXT s[128];
|
||||
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
tddba->page_number = -1;
|
||||
|
||||
if (!FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,
|
||||
@ -1362,7 +1362,7 @@ static dba_fil* db_open(const char* file_name, USHORT file_length)
|
||||
* Open a database file.
|
||||
*
|
||||
**************************************/
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
|
||||
dba_fil* fil;
|
||||
|
||||
@ -1440,7 +1440,7 @@ static const pag* db_read( SLONG page_number)
|
||||
* Read a database page.
|
||||
*
|
||||
**************************************/
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
|
||||
if (tddba->page_number == page_number)
|
||||
return tddba->global_buffer;
|
||||
@ -1531,7 +1531,7 @@ static void db_error( int status)
|
||||
* Functional description
|
||||
*
|
||||
**************************************/
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
tddba->page_number = -1;
|
||||
|
||||
/* FIXME: The strerror() function returns the appropriate description
|
||||
@ -1571,7 +1571,7 @@ static dba_fil* db_open(const char* file_name, USHORT file_length)
|
||||
* Put the file on an ordered list.
|
||||
*
|
||||
**************************************/
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
|
||||
dba_fil* fil;
|
||||
if (tddba->files) {
|
||||
@ -1639,7 +1639,7 @@ static const pag* db_read( SLONG page_number)
|
||||
* Read a database page.
|
||||
*
|
||||
**************************************/
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
|
||||
if (tddba->page_number == page_number)
|
||||
return tddba->global_buffer;
|
||||
@ -1713,7 +1713,7 @@ static void dba_error(
|
||||
* Format and print an error message, then punt.
|
||||
*
|
||||
**************************************/
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
tddba->page_number = -1;
|
||||
|
||||
dba_print(errcode, arg1, arg2, arg3, arg4, arg5);
|
||||
@ -1738,7 +1738,7 @@ static void dba_print(
|
||||
*
|
||||
**************************************/
|
||||
TEXT buffer[256];
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
|
||||
gds__msg_format(NULL, GSTAT_MSG_FAC, number, sizeof(buffer), buffer,
|
||||
arg1, arg2, arg3, arg4, arg5);
|
||||
@ -1776,7 +1776,7 @@ static void print_distribution(const SCHAR* prefix, const SLONG* vector)
|
||||
* Print distribution as percentages.
|
||||
*
|
||||
**************************************/
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
|
||||
for (SSHORT n = 0; n < BUCKETS; n++) {
|
||||
FPRINTF(tddba->sw_outfile, "%s%2d - %2d%% = %ld\n",
|
||||
|
@ -148,16 +148,12 @@ struct tdba {
|
||||
FILE* sw_outfile;
|
||||
};
|
||||
|
||||
#ifdef GET_THREAD_DATA
|
||||
#undef GET_THREAD_DATA
|
||||
#endif
|
||||
|
||||
static tdba* gddba;
|
||||
|
||||
#define GET_THREAD_DATA (gddba)
|
||||
#define SET_THREAD_DATA gddba = tddba = &thd_context; \
|
||||
#define DBA_get_thread_data (gddba)
|
||||
#define DBA_set_thread_data gddba = tddba = &thd_context; \
|
||||
tddba->tdba_thd_data.thdd_type = THDD_TYPE_TDBA
|
||||
#define RESTORE_THREAD_DATA
|
||||
#define DBA_restore_thread_data
|
||||
|
||||
void inline dba_full_exit(int code, tdba* tddba)
|
||||
{
|
||||
@ -183,7 +179,7 @@ int CLIB_ROUTINE main( int argc, char** argv)
|
||||
JMP_BUF env;
|
||||
ISC_STATUS_ARRAY status_vector;
|
||||
|
||||
SET_THREAD_DATA;
|
||||
DBA_set_thread_data;
|
||||
memset(tddba, 0, sizeof(*tddba));
|
||||
memset(&status_vector, 0, sizeof(status_vector));
|
||||
tddba->dba_env = (UCHAR*) env;
|
||||
@ -203,7 +199,7 @@ int CLIB_ROUTINE main( int argc, char** argv)
|
||||
}
|
||||
|
||||
const int exit_code = tddba->exit_code;
|
||||
RESTORE_THREAD_DATA;
|
||||
DBA_restore_thread_data;
|
||||
exit(exit_code);
|
||||
}
|
||||
FILE* sw_outfile = tddba->sw_outfile = stderr;
|
||||
@ -621,7 +617,7 @@ static void analyze_data( dba_rel* relation)
|
||||
* Analyze data pages associated with relation.
|
||||
*
|
||||
**************************************/
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
|
||||
pointer_page* ptr_page = (pointer_page*) tddba->buffer1;
|
||||
|
||||
@ -657,7 +653,7 @@ static bool analyze_data_page( dba_rel* relation, const data_page* page)
|
||||
* Analyze space utilization for data page.
|
||||
*
|
||||
**************************************/
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
|
||||
if (page->pag_type != pag_data)
|
||||
return false;
|
||||
@ -699,7 +695,7 @@ static void analyze_index( dba_rel* relation, idx* index)
|
||||
UCHAR key[256], *p, *q;
|
||||
SLONG number, page, prior_page, node_count;
|
||||
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
|
||||
index_root_page* index_root =
|
||||
(const index_root_page*) db_read(relation->rel_index_root);
|
||||
@ -972,7 +968,7 @@ static void db_error( SLONG status)
|
||||
**************************************/
|
||||
TEXT s[128];
|
||||
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
|
||||
if (!FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,
|
||||
NULL,
|
||||
@ -1005,7 +1001,7 @@ static dba_fil* db_open(const char* file_name, USHORT file_length)
|
||||
**************************************/
|
||||
dba_fil* fil;
|
||||
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
|
||||
if (tddba->files) {
|
||||
for (fil = tddba->files; fil->fil_next; fil = fil->fil_next);
|
||||
@ -1053,7 +1049,7 @@ static const pag* db_read( SLONG page_number)
|
||||
* Read a database page.
|
||||
*
|
||||
**************************************/
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
|
||||
dba_fil* fil;
|
||||
for (fil = tddba->files;
|
||||
@ -1102,7 +1098,7 @@ static void db_error( int status)
|
||||
* Functional description
|
||||
*
|
||||
**************************************/
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
|
||||
/* FIXME: The strerror() function returns the appropriate description
|
||||
string, or an unknown error message if the error code is unknown.
|
||||
@ -1141,7 +1137,7 @@ static dba_fil* db_open(const char* file_name, USHORT file_length)
|
||||
*
|
||||
**************************************/
|
||||
dba_fil* fil;
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
|
||||
if (tddba->files) {
|
||||
for (fil = tddba->files; fil->fil_next; fil = fil->fil_next);
|
||||
@ -1182,7 +1178,7 @@ static const pag* db_read( SLONG page_number)
|
||||
* Read a database page.
|
||||
*
|
||||
**************************************/
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
|
||||
dba_fil* fil;
|
||||
for (fil = tddba->files;
|
||||
@ -1277,7 +1273,7 @@ static void print_distribution( const SCHAR* prefix, const SLONG* vector)
|
||||
* Print distribution as percentages.
|
||||
*
|
||||
**************************************/
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
|
||||
for (SSHORT n = 0; n < BUCKETS; n++) {
|
||||
FPRINTF(tddba->sw_outfile, "%s%2d - %2d%% = %ld\n",
|
||||
@ -1299,7 +1295,7 @@ static void print_header( const header_page* header)
|
||||
* Print database header page.
|
||||
*
|
||||
**************************************/
|
||||
tdba* tddba = GET_THREAD_DATA;
|
||||
tdba* tddba = DBA_get_thread_data;
|
||||
FILE* sw_outfile = tddba->sw_outfile;
|
||||
|
||||
FPRINTF(sw_outfile, "Database header page information:\n");
|
||||
|
Loading…
Reference in New Issue
Block a user