mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-02-02 10:40:38 +01:00
1) Fix Linux build
2) Misc
This commit is contained in:
parent
9376155d0f
commit
6e59d736df
@ -27,10 +27,10 @@ JRD_ServerFiles= blob_filter.cpp dpm.epp dyn.epp dyn_def.epp \
|
|||||||
all.cpp blb.cpp btn.cpp btr.cpp builtin.cpp \
|
all.cpp blb.cpp btn.cpp btr.cpp builtin.cpp \
|
||||||
GlobalRWLock.cpp cch.cpp cmp.cpp cvt2.cpp \
|
GlobalRWLock.cpp cch.cpp cmp.cpp cvt2.cpp \
|
||||||
DataTypeUtil.cpp dfw.cpp divorce.cpp \
|
DataTypeUtil.cpp dfw.cpp divorce.cpp \
|
||||||
err.cpp iberr.cpp \
|
err.cpp event.cpp evl.cpp exe.cpp ext.cpp \
|
||||||
event.cpp evl.cpp exe.cpp ext.cpp \
|
|
||||||
execute_statement.cpp filters.cpp flu.cpp functions.cpp \
|
execute_statement.cpp filters.cpp flu.cpp functions.cpp \
|
||||||
idx.cpp inf.cpp intl.cpp intl_builtin.cpp IntlManager.cpp IntlUtil.cpp \
|
iberr.cpp idx.cpp inf.cpp intl.cpp intl_builtin.cpp IntlManager.cpp \
|
||||||
|
IntlUtil.cpp \
|
||||||
jrd.cpp Database.cpp lck.cpp \
|
jrd.cpp Database.cpp lck.cpp \
|
||||||
mov.cpp nav.cpp opt.cpp Optimizer.cpp pag.cpp par.cpp \
|
mov.cpp nav.cpp opt.cpp Optimizer.cpp pag.cpp par.cpp \
|
||||||
ods.cpp plugin_manager.cpp pwd.cpp PreparedStatement.cpp RandomGenerator.cpp \
|
ods.cpp plugin_manager.cpp pwd.cpp PreparedStatement.cpp RandomGenerator.cpp \
|
||||||
@ -38,8 +38,8 @@ JRD_ServerFiles= blob_filter.cpp dpm.epp dyn.epp dyn_def.epp \
|
|||||||
sdw.cpp shut.cpp sort.cpp sqz.cpp \
|
sdw.cpp shut.cpp sort.cpp sqz.cpp \
|
||||||
svc.cpp SysFunction.cpp TempSpace.cpp tpc.cpp tra.cpp validation.cpp vio.cpp \
|
svc.cpp SysFunction.cpp TempSpace.cpp tpc.cpp tra.cpp validation.cpp vio.cpp \
|
||||||
nodebug.cpp nbak.cpp sha.cpp $(Physical_IO_Module) TextType.cpp \
|
nodebug.cpp nbak.cpp sha.cpp $(Physical_IO_Module) TextType.cpp \
|
||||||
unicode_util.cpp RuntimeStatistics.cpp \
|
unicode_util.cpp RuntimeStatistics.cpp DebugInterface.cpp \
|
||||||
DebugInterface.cpp
|
extds/ExtDS.cpp extds/InternalDS.cpp extds/IscDS.cpp
|
||||||
|
|
||||||
|
|
||||||
JRD_Files = $(JRD_ClientFiles) $(JRD_ServerFiles)
|
JRD_Files = $(JRD_ClientFiles) $(JRD_ServerFiles)
|
||||||
|
@ -832,6 +832,7 @@ mkdir -p gen/gpre
|
|||||||
mkdir -p gen/iscguard
|
mkdir -p gen/iscguard
|
||||||
mkdir -p gen/isql
|
mkdir -p gen/isql
|
||||||
mkdir -p gen/jrd
|
mkdir -p gen/jrd
|
||||||
|
mkdir -p gen/jrd/extds
|
||||||
mkdir -p gen/msgs
|
mkdir -p gen/msgs
|
||||||
mkdir -p gen/qli
|
mkdir -p gen/qli
|
||||||
mkdir -p gen/utilities
|
mkdir -p gen/utilities
|
||||||
@ -878,6 +879,7 @@ mkdir -p temp/boot/ipserver
|
|||||||
mkdir -p temp/boot/iscguard
|
mkdir -p temp/boot/iscguard
|
||||||
mkdir -p temp/boot/isql
|
mkdir -p temp/boot/isql
|
||||||
mkdir -p temp/boot/jrd
|
mkdir -p temp/boot/jrd
|
||||||
|
mkdir -p temp/boot/jrd/extds
|
||||||
mkdir -p temp/boot/jrd/os/posix
|
mkdir -p temp/boot/jrd/os/posix
|
||||||
mkdir -p temp/boot/jrd/os/win32
|
mkdir -p temp/boot/jrd/os/win32
|
||||||
mkdir -p temp/boot/jrd/os/darwin
|
mkdir -p temp/boot/jrd/os/darwin
|
||||||
@ -914,6 +916,7 @@ mkdir -p temp/std/ipserver
|
|||||||
mkdir -p temp/std/iscguard
|
mkdir -p temp/std/iscguard
|
||||||
mkdir -p temp/std/isql
|
mkdir -p temp/std/isql
|
||||||
mkdir -p temp/std/jrd
|
mkdir -p temp/std/jrd
|
||||||
|
mkdir -p temp/std/jrd/extds
|
||||||
mkdir -p temp/std/jrd/os/posix
|
mkdir -p temp/std/jrd/os/posix
|
||||||
mkdir -p temp/std/jrd/os/win32
|
mkdir -p temp/std/jrd/os/win32
|
||||||
mkdir -p temp/std/jrd/os/darwin
|
mkdir -p temp/std/jrd/os/darwin
|
||||||
@ -950,6 +953,7 @@ mkdir -p temp/superclient/ipserver
|
|||||||
mkdir -p temp/superclient/iscguard
|
mkdir -p temp/superclient/iscguard
|
||||||
mkdir -p temp/superclient/isql
|
mkdir -p temp/superclient/isql
|
||||||
mkdir -p temp/superclient/jrd
|
mkdir -p temp/superclient/jrd
|
||||||
|
mkdir -p temp/superclient/jrd/extds
|
||||||
mkdir -p temp/superclient/jrd/os/posix
|
mkdir -p temp/superclient/jrd/os/posix
|
||||||
mkdir -p temp/superclient/jrd/os/win32
|
mkdir -p temp/superclient/jrd/os/win32
|
||||||
mkdir -p temp/superclient/jrd/os/darwin
|
mkdir -p temp/superclient/jrd/os/darwin
|
||||||
@ -986,6 +990,7 @@ mkdir -p temp/superserver/ipserver
|
|||||||
mkdir -p temp/superserver/iscguard
|
mkdir -p temp/superserver/iscguard
|
||||||
mkdir -p temp/superserver/isql
|
mkdir -p temp/superserver/isql
|
||||||
mkdir -p temp/superserver/jrd
|
mkdir -p temp/superserver/jrd
|
||||||
|
mkdir -p temp/superserver/jrd/extds
|
||||||
mkdir -p temp/superserver/jrd/os/posix
|
mkdir -p temp/superserver/jrd/os/posix
|
||||||
mkdir -p temp/superserver/jrd/os/win32
|
mkdir -p temp/superserver/jrd/os/win32
|
||||||
mkdir -p temp/superserver/jrd/os/darwin
|
mkdir -p temp/superserver/jrd/os/darwin
|
||||||
|
@ -1150,7 +1150,7 @@ void GEN_statement( dsql_req* request, dsql_nod* node)
|
|||||||
{
|
{
|
||||||
if (haveNames)
|
if (haveNames)
|
||||||
{
|
{
|
||||||
dsql_str* name = (dsql_str*)(*ptr)->nod_arg[e_named_param_name];
|
dsql_str* name = (dsql_str*) (*ptr)->nod_arg[e_named_param_name];
|
||||||
stuff_cstring(request, name->str_data);
|
stuff_cstring(request, name->str_data);
|
||||||
}
|
}
|
||||||
GEN_expr(request, (*ptr)->nod_arg[e_named_param_expr]);
|
GEN_expr(request, (*ptr)->nod_arg[e_named_param_expr]);
|
||||||
|
@ -1621,8 +1621,8 @@ static jrd_nod* execute_statement(thread_db* tdbb, jrd_req* request, jrd_nod* no
|
|||||||
EDS::Statement** stmt_ptr = (EDS::Statement**) ((char*) request + node->nod_impure);
|
EDS::Statement** stmt_ptr = (EDS::Statement**) ((char*) request + node->nod_impure);
|
||||||
EDS::Statement* stmt = *stmt_ptr;
|
EDS::Statement* stmt = *stmt_ptr;
|
||||||
|
|
||||||
int inputs = (SHORT)(IPTR) node->nod_arg[node->nod_count + e_exec_stmt_extra_inputs];
|
int inputs = (SSHORT)(IPTR) node->nod_arg[node->nod_count + e_exec_stmt_extra_inputs];
|
||||||
int outputs = (SHORT)(IPTR) node->nod_arg[node->nod_count + e_exec_stmt_extra_outputs];
|
int outputs = (SSHORT)(IPTR) node->nod_arg[node->nod_count + e_exec_stmt_extra_outputs];
|
||||||
jrd_nod** node_inputs = node->nod_arg + e_exec_stmt_fixed_count + e_exec_stmt_extra_inputs;
|
jrd_nod** node_inputs = node->nod_arg + e_exec_stmt_fixed_count + e_exec_stmt_extra_inputs;
|
||||||
jrd_nod** node_outputs = node->nod_arg + e_exec_stmt_fixed_count + inputs;
|
jrd_nod** node_outputs = node->nod_arg + e_exec_stmt_fixed_count + inputs;
|
||||||
jrd_nod* node_proc_block = node->nod_arg[e_exec_stmt_proc_block];
|
jrd_nod* node_proc_block = node->nod_arg[e_exec_stmt_proc_block];
|
||||||
|
@ -1125,7 +1125,7 @@ void Statement::getOutParams(thread_db *tdbb, int count, jrd_nod **params)
|
|||||||
void Statement::getExtBlob(thread_db *tdbb, const dsc &src, dsc &dst)
|
void Statement::getExtBlob(thread_db *tdbb, const dsc &src, dsc &dst)
|
||||||
{
|
{
|
||||||
blb *destBlob = NULL;
|
blb *destBlob = NULL;
|
||||||
AutoPtr<Blob> extBlob = m_connection.createBlob();
|
AutoPtr<Blob> extBlob(m_connection.createBlob());
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
extBlob->open(tdbb, *m_transaction, src, NULL);
|
extBlob->open(tdbb, *m_transaction, src, NULL);
|
||||||
@ -1169,7 +1169,7 @@ void Statement::getExtBlob(thread_db *tdbb, const dsc &src, dsc &dst)
|
|||||||
void Statement::putExtBlob(thread_db *tdbb, const dsc &src, dsc &dst)
|
void Statement::putExtBlob(thread_db *tdbb, const dsc &src, dsc &dst)
|
||||||
{
|
{
|
||||||
blb* srcBlob = NULL;
|
blb* srcBlob = NULL;
|
||||||
AutoPtr<Blob> extBlob = m_connection.createBlob();
|
AutoPtr<Blob> extBlob(m_connection.createBlob());
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
extBlob->create(tdbb, *m_transaction, dst, NULL);
|
extBlob->create(tdbb, *m_transaction, dst, NULL);
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#include "../../common/classes/array.h"
|
#include "../../common/classes/array.h"
|
||||||
#include "../../common/classes/ClumpletWriter.h"
|
#include "../../common/classes/ClumpletWriter.h"
|
||||||
#include "../../common/classes/locks.h"
|
#include "../../common/classes/locks.h"
|
||||||
|
#include "../../common/utils_proto.h"
|
||||||
|
|
||||||
|
|
||||||
namespace Jrd {
|
namespace Jrd {
|
||||||
@ -75,7 +76,7 @@ private:
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static bool greaterThan(const Firebird::string* s1, const Firebird::string* s2) {
|
static bool greaterThan(const Firebird::string* s1, const Firebird::string* s2) {
|
||||||
return stricmp(s1->c_str(), s2->c_str()) > 0;
|
return fb_utils::stricmp(s1->c_str(), s2->c_str()) > 0;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -452,4 +453,4 @@ private:
|
|||||||
|
|
||||||
} // namespace EDS
|
} // namespace EDS
|
||||||
|
|
||||||
#endif // EXTDS_H
|
#endif // EXTDS_H
|
||||||
|
@ -69,6 +69,7 @@ void InternalProvider::jrdAttachmentEnd(thread_db *tdbb, Attachment* att)
|
|||||||
|
|
||||||
Connection **ptr = m_connections.end();
|
Connection **ptr = m_connections.end();
|
||||||
Connection **begin = m_connections.begin();
|
Connection **begin = m_connections.begin();
|
||||||
|
|
||||||
for (ptr--; ptr >= begin; ptr--)
|
for (ptr--; ptr >= begin; ptr--)
|
||||||
{
|
{
|
||||||
InternalConnection *conn = (InternalConnection*) *ptr;
|
InternalConnection *conn = (InternalConnection*) *ptr;
|
||||||
@ -82,7 +83,9 @@ void InternalProvider::getRemoteError(ISC_STATUS* status, string &err)
|
|||||||
err = "";
|
err = "";
|
||||||
|
|
||||||
char buff[512];
|
char buff[512];
|
||||||
const ISC_STATUS* p = status, *end = status + ISC_STATUS_LENGTH;
|
const ISC_STATUS* p = status;
|
||||||
|
const ISC_STATUS* end = status + ISC_STATUS_LENGTH;
|
||||||
|
|
||||||
while (p < end)
|
while (p < end)
|
||||||
{
|
{
|
||||||
const ISC_STATUS code = *p ? p[1] : 0;
|
const ISC_STATUS code = *p ? p[1] : 0;
|
||||||
@ -302,11 +305,18 @@ void InternalStatement::doPrepare(thread_db *tdbb, const string &sql)
|
|||||||
// forbidden ?
|
// forbidden ?
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case REQ_INSERT: case REQ_DELETE: case REQ_UPDATE:
|
case REQ_INSERT:
|
||||||
case REQ_UPDATE_CURSOR: case REQ_DELETE_CURSOR: case REQ_DDL:
|
case REQ_DELETE:
|
||||||
case REQ_GET_SEGMENT: case REQ_PUT_SEGMENT:
|
case REQ_UPDATE:
|
||||||
case REQ_EXEC_PROCEDURE: case REQ_SET_GENERATOR:
|
case REQ_UPDATE_CURSOR:
|
||||||
case REQ_SAVEPOINT: case REQ_EXEC_BLOCK:
|
case REQ_DELETE_CURSOR:
|
||||||
|
case REQ_DDL:
|
||||||
|
case REQ_GET_SEGMENT:
|
||||||
|
case REQ_PUT_SEGMENT:
|
||||||
|
case REQ_EXEC_PROCEDURE:
|
||||||
|
case REQ_SET_GENERATOR:
|
||||||
|
case REQ_SAVEPOINT:
|
||||||
|
case REQ_EXEC_BLOCK:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -382,7 +392,7 @@ void InternalStatement::doClose(thread_db *tdbb, bool drop)
|
|||||||
void InternalStatement::putExtBlob(thread_db *tdbb, const dsc &src, dsc &dst)
|
void InternalStatement::putExtBlob(thread_db *tdbb, const dsc &src, dsc &dst)
|
||||||
{
|
{
|
||||||
if (m_transaction->getScope() == traCommon)
|
if (m_transaction->getScope() == traCommon)
|
||||||
MOV_move(tdbb, (dsc*)&src, &dst);
|
MOV_move(tdbb, (dsc*) &src, &dst);
|
||||||
else
|
else
|
||||||
Statement::putExtBlob(tdbb, src, dst);
|
Statement::putExtBlob(tdbb, src, dst);
|
||||||
}
|
}
|
||||||
@ -534,4 +544,4 @@ void InternalBlob::cancel(thread_db *tdbb)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}; // namespace EDS
|
} // namespace EDS
|
||||||
|
@ -3324,6 +3324,7 @@ static void blr_print_verb(gds_ctl* control, SSHORT level)
|
|||||||
blr_print_verb(control, level);
|
blr_print_verb(control, level);
|
||||||
offset = blr_print_line(control, offset);
|
offset = blr_print_line(control, offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool named = false;
|
bool named = false;
|
||||||
if (inputs)
|
if (inputs)
|
||||||
{
|
{
|
||||||
@ -3331,6 +3332,7 @@ static void blr_print_verb(gds_ctl* control, SSHORT level)
|
|||||||
named = (blr_print_byte(control) != 0); // named parameters flag
|
named = (blr_print_byte(control) != 0); // named parameters flag
|
||||||
offset = blr_print_line(control, offset);
|
offset = blr_print_line(control, offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (inputs + outputs)
|
while (inputs + outputs)
|
||||||
{
|
{
|
||||||
if (inputs)
|
if (inputs)
|
||||||
|
@ -84,13 +84,13 @@ public:
|
|||||||
DACL_SECURITY_INFORMATION,
|
DACL_SECURITY_INFORMATION,
|
||||||
NULL, NULL, &pOldACL, NULL, &pOldSD);
|
NULL, NULL, &pOldACL, NULL, &pOldSD);
|
||||||
|
|
||||||
// NULL pOldACL means all privileges. If we assign pNewACL in this case
|
// NULL pOldACL means all privileges. If we assign pNewACL in this case
|
||||||
// we'll lost all privileges except assigned SYNCHRONIZE
|
// we'll lost all privileges except assigned SYNCHRONIZE
|
||||||
if (pOldACL)
|
if (pOldACL)
|
||||||
{
|
{
|
||||||
SID_IDENTIFIER_AUTHORITY SIDAuth = SECURITY_WORLD_SID_AUTHORITY;
|
SID_IDENTIFIER_AUTHORITY sidAuth = SECURITY_WORLD_SID_AUTHORITY;
|
||||||
PSID pSID = NULL;
|
PSID pSID = NULL;
|
||||||
AllocateAndInitializeSid(&SIDAuth, 1, SECURITY_WORLD_RID,
|
AllocateAndInitializeSid(&sidAuth, 1, SECURITY_WORLD_RID,
|
||||||
0, 0, 0, 0, 0, 0, 0, &pSID);
|
0, 0, 0, 0, 0, 0, 0, &pSID);
|
||||||
|
|
||||||
EXPLICIT_ACCESS ea;
|
EXPLICIT_ACCESS ea;
|
||||||
|
@ -67,9 +67,14 @@
|
|||||||
#include "../jrd/err_proto.h"
|
#include "../jrd/err_proto.h"
|
||||||
#include "../jrd/thread_proto.h"
|
#include "../jrd/thread_proto.h"
|
||||||
#include "../jrd/jrd_pwd.h"
|
#include "../jrd/jrd_pwd.h"
|
||||||
|
#include "../common/classes/fb_tls.h"
|
||||||
#include "../common/config/config.h"
|
#include "../common/config/config.h"
|
||||||
#include "../common/utils_proto.h"
|
#include "../common/utils_proto.h"
|
||||||
|
|
||||||
|
#ifdef UNIX
|
||||||
|
#include <setjmp.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
static int process_id;
|
static int process_id;
|
||||||
#ifdef UNIX
|
#ifdef UNIX
|
||||||
static UCHAR *next_shared_memory;
|
static UCHAR *next_shared_memory;
|
||||||
|
@ -2848,6 +2848,7 @@ static jrd_nod* parse(thread_db* tdbb, CompilerScratch* csb, USHORT expected,
|
|||||||
// input parameters and its names
|
// input parameters and its names
|
||||||
const bool haveNames = (inputs && (BLR_BYTE == 1));
|
const bool haveNames = (inputs && (BLR_BYTE == 1));
|
||||||
EDS::ParamNames* paramNames = NULL;
|
EDS::ParamNames* paramNames = NULL;
|
||||||
|
|
||||||
for (n = e_exec_stmt_fixed_count; n < e_exec_stmt_fixed_count + inputs; n++)
|
for (n = e_exec_stmt_fixed_count; n < e_exec_stmt_fixed_count + inputs; n++)
|
||||||
{
|
{
|
||||||
if (haveNames)
|
if (haveNames)
|
||||||
@ -2855,11 +2856,11 @@ static jrd_nod* parse(thread_db* tdbb, CompilerScratch* csb, USHORT expected,
|
|||||||
Firebird::string name;
|
Firebird::string name;
|
||||||
if (par_name(csb, name))
|
if (par_name(csb, name))
|
||||||
{
|
{
|
||||||
Firebird::MemoryPool &pool = csb->csb_pool;
|
Firebird::MemoryPool& pool = csb->csb_pool;
|
||||||
if (!paramNames) {
|
if (!paramNames) {
|
||||||
paramNames = FB_NEW (pool) EDS::ParamNames(pool);
|
paramNames = FB_NEW (pool) EDS::ParamNames(pool);
|
||||||
}
|
}
|
||||||
Firebird::string *newName = FB_NEW (pool) Firebird::string(pool, name);
|
Firebird::string* newName = FB_NEW (pool) Firebird::string(pool, name);
|
||||||
paramNames->add(newName);
|
paramNames->add(newName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2871,10 +2872,10 @@ static jrd_nod* parse(thread_db* tdbb, CompilerScratch* csb, USHORT expected,
|
|||||||
*arg++ = parse(tdbb, csb, VALUE);
|
*arg++ = parse(tdbb, csb, VALUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
*arg++ = (jrd_nod*) (IPTR) inputs; // e_exec_stmt_extra_inputs
|
*arg++ = (jrd_nod*)(IPTR) inputs; // e_exec_stmt_extra_inputs
|
||||||
*arg++ = (jrd_nod*) paramNames; // e_exec_stmt_extra_input_names
|
*arg++ = (jrd_nod*) paramNames; // e_exec_stmt_extra_input_names
|
||||||
*arg++ = (jrd_nod*) (IPTR) outputs; // e_exec_stmt_extra_outputs
|
*arg++ = (jrd_nod*)(IPTR) outputs; // e_exec_stmt_extra_outputs
|
||||||
*arg++ = (jrd_nod*) (IPTR) tra_mode; // e_exec_stmt_extra_tran
|
*arg++ = (jrd_nod*)(IPTR) tra_mode; // e_exec_stmt_extra_tran
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user