|
From: <ale...@us...> - 2013-02-17 12:08:59
|
Revision: 57663
http://sourceforge.net/p/firebird/code/57663
Author: alexpeshkoff
Date: 2013-02-17 12:08:53 +0000 (Sun, 17 Feb 2013)
Log Message:
-----------
Modified IStatement interface in our API:
1. Never allocate empty statement - always use att->prepare() to create statement interface
2. Separated IStatement into 2 parts - statement itself and resultset.
3. Added stmt->openCursor() (and att->openCursor() for unprepared statements) to create IResultSet.
4. Always use IMessageMetadata (former IParametersMetadata) to pass message fromat info from client,
therefore avoiding need in BLR generation in client applications.
Modified Paths:
--------------
firebird/trunk/builds/posix/Makefile.in.plugins_examples
firebird/trunk/lang_helpers/gds_codes.ftn
firebird/trunk/lang_helpers/gds_codes.pas
firebird/trunk/src/auth/SecureRemotePassword/Message.h
firebird/trunk/src/auth/SecureRemotePassword/manage/SrpManagement.cpp
firebird/trunk/src/auth/SecureRemotePassword/server/SrpServer.cpp
firebird/trunk/src/common/StatementMetadata.cpp
firebird/trunk/src/common/StatementMetadata.h
firebird/trunk/src/common/classes/ImplementHelper.cpp
firebird/trunk/src/common/classes/ImplementHelper.h
firebird/trunk/src/common/classes/RefMutex.h
firebird/trunk/src/common/classes/objects_array.h
firebird/trunk/src/common/utils.cpp
firebird/trunk/src/common/utils_proto.h
firebird/trunk/src/dsql/DdlNodes.epp
firebird/trunk/src/dsql/DdlNodes.h
firebird/trunk/src/dsql/DsqlCompilerScratch.h
firebird/trunk/src/dsql/Nodes.h
firebird/trunk/src/dsql/StmtNodes.cpp
firebird/trunk/src/dsql/dsql.cpp
firebird/trunk/src/dsql/dsql.h
firebird/trunk/src/dsql/dsql_proto.h
firebird/trunk/src/include/firebird/ExternalEngine.h
firebird/trunk/src/include/firebird/Provider.h
firebird/trunk/src/include/gen/codetext.h
firebird/trunk/src/include/gen/iberror.h
firebird/trunk/src/include/gen/msgs.h
firebird/trunk/src/include/gen/sql_code.h
firebird/trunk/src/include/gen/sql_state.h
firebird/trunk/src/include/types_pub.h
firebird/trunk/src/jrd/Database.h
firebird/trunk/src/jrd/EngineInterface.h
firebird/trunk/src/jrd/ExtEngineManager.cpp
firebird/trunk/src/jrd/ExtEngineManager.h
firebird/trunk/src/jrd/PreparedStatement.cpp
firebird/trunk/src/jrd/PreparedStatement.h
firebird/trunk/src/jrd/ResultSet.cpp
firebird/trunk/src/jrd/cch.cpp
firebird/trunk/src/jrd/constants.h
firebird/trunk/src/jrd/exe.h
firebird/trunk/src/jrd/extds/InternalDS.cpp
firebird/trunk/src/jrd/extds/InternalDS.h
firebird/trunk/src/jrd/jrd.cpp
firebird/trunk/src/jrd/met.epp
firebird/trunk/src/jrd/par.cpp
firebird/trunk/src/jrd/par_proto.h
firebird/trunk/src/jrd/val.h
firebird/trunk/src/msgs/facilities2.sql
firebird/trunk/src/msgs/messages2.sql
firebird/trunk/src/msgs/system_errors2.sql
firebird/trunk/src/remote/client/interface.cpp
firebird/trunk/src/remote/protocol.h
firebird/trunk/src/remote/remote.h
firebird/trunk/src/remote/server/server.cpp
firebird/trunk/src/yvalve/YObjects.h
firebird/trunk/src/yvalve/gds.cpp
firebird/trunk/src/yvalve/why.cpp
Added Paths:
-----------
firebird/trunk/src/common/MsgMetadata.cpp
firebird/trunk/src/common/MsgMetadata.h
firebird/trunk/src/common/classes/BlrReader.h
firebird/trunk/src/common/classes/BlrWriter.cpp
firebird/trunk/src/common/classes/BlrWriter.h
firebird/trunk/src/common/classes/InternalMessageBuffer.cpp
firebird/trunk/src/common/classes/InternalMessageBuffer.h
firebird/trunk/src/dsql/BlrDebugWriter.cpp
firebird/trunk/src/dsql/BlrDebugWriter.h
firebird/trunk/src/remote/client/BlrFromMessage.cpp
firebird/trunk/src/remote/client/BlrFromMessage.h
Removed Paths:
-------------
firebird/trunk/src/dsql/BlrWriter.cpp
firebird/trunk/src/dsql/BlrWriter.h
firebird/trunk/src/jrd/BlrReader.h
Modified: firebird/trunk/builds/posix/Makefile.in.plugins_examples
===================================================================
--- firebird/trunk/builds/posix/Makefile.in.plugins_examples 2013-02-16 02:34:05 UTC (rev 57662)
+++ firebird/trunk/builds/posix/Makefile.in.plugins_examples 2013-02-17 12:08:53 UTC (rev 57663)
@@ -52,7 +52,8 @@
.PHONY: all udrcpp_example dc_example kh_example
-all: udrcpp_example dc_example kh_example
+#all: udrcpp_example dc_example kh_example
+all: dc_example kh_example
UDR_Objects = $(call makeObjects,../examples/udr,UdrCppExample.cpp)
Modified: firebird/trunk/lang_helpers/gds_codes.ftn
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.ftn 2013-02-16 02:34:05 UTC (rev 57662)
+++ firebird/trunk/lang_helpers/gds_codes.ftn 2013-02-17 12:08:53 UTC (rev 57663)
@@ -1508,6 +1508,12 @@
PARAMETER (GDS__ee_blr_mismatch_names_count = 335545047)
INTEGER*4 GDS__ee_blr_mismatch_name_not_found
PARAMETER (GDS__ee_blr_mismatch_name_not_found = 335545048)
+ INTEGER*4 GDS__bad_result_set
+ PARAMETER (GDS__bad_result_set = 335545049)
+ INTEGER*4 GDS__wrong_message_length
+ PARAMETER (GDS__wrong_message_length = 335545050)
+ INTEGER*4 GDS__no_output_format
+ PARAMETER (GDS__no_output_format = 335545051)
INTEGER*4 GDS__gfix_db_name
PARAMETER (GDS__gfix_db_name = 335740929)
INTEGER*4 GDS__gfix_invalid_sw
Modified: firebird/trunk/lang_helpers/gds_codes.pas
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.pas 2013-02-16 02:34:05 UTC (rev 57662)
+++ firebird/trunk/lang_helpers/gds_codes.pas 2013-02-17 12:08:53 UTC (rev 57663)
@@ -761,6 +761,9 @@
gds_max_args_exceeded = 335545046;
gds_ee_blr_mismatch_names_count = 335545047;
gds_ee_blr_mismatch_name_not_found = 335545048;
+ gds_bad_result_set = 335545049;
+ gds_wrong_message_length = 335545050;
+ gds_no_output_format = 335545051;
gds_gfix_db_name = 335740929;
gds_gfix_invalid_sw = 335740930;
gds_gfix_incmp_sw = 335740932;
Modified: firebird/trunk/src/auth/SecureRemotePassword/Message.h
===================================================================
--- firebird/trunk/src/auth/SecureRemotePassword/Message.h 2013-02-16 02:34:05 UTC (rev 57662)
+++ firebird/trunk/src/auth/SecureRemotePassword/Message.h 2013-02-17 12:08:53 UTC (rev 57663)
@@ -1,157 +1,265 @@
-#include "../jrd/align.h"
#include "../common/classes/alloc.h"
+#include "../common/classes/auto.h"
+#include "../common/StatusHolder.h"
+#include "../common/MsgMetadata.h"
+
+// This class helps to work with metadata iface
+class Meta : public Firebird::RefPtr<Firebird::IMessageMetadata>
+{
+public:
+ explicit Meta(Firebird::IStatement* stmt, bool out)
+ {
+ Firebird::LocalStatus s;
+ Firebird::IMessageMetadata* m = out ? stmt->getOutputMetadata(&s) : stmt->getInputMetadata(&s);
+ if (!s.isSuccess())
+ {
+ Firebird::status_exception::raise(s.get());
+ }
+ *((Firebird::RefPtr<Firebird::IMessageMetadata>*)this) = m;
+ m->release(); // reference added by function returning iface
+ }
+};
+
+
// This class helps to fill FbMessage with correct values
class Message : public Firebird::FbMessage, public Firebird::GlobalStorage
{
public:
- Message()
- : blrBuf(getPool()), dataBuf(getPool())
+ Message(Firebird::IMessageMetadata* aMeta)
+ : dataBuf(getPool()), fieldCount(0)
{
- blrLength = 0;
- blr = NULL;
- bufferLength = 0;
- buffer = NULL;
+ Firebird::LocalStatus st;
+ metadata = aMeta;
+ buffer = dataBuf.getBuffer(metadata->getMessageLength(&st));
+ check(&st);
+ metadata->addRef();
+ }
- // start message BLR
- blrBuf.add(blr_version5);
- blrBuf.add(blr_begin);
- blrBuf.add(blr_message);
- blrBuf.add(0);
- countOffset = blrBuf.getCount();
- blrBuf.add(0);
- blrBuf.add(0);
-
- varCount = 0;
+ ~Message()
+ {
+ metadata->release();
}
template <typename T>
- unsigned genBlr()
+ static bool checkType(unsigned t, unsigned sz)
{
- // for special types call type-specific BLR generator
- // for generic types use specialization of whole call
- return T::genBlr(blrBuf);
+ return T::unknownDataType();
}
template <typename T>
- void add(unsigned& pos, unsigned& null)
+ unsigned add(unsigned& t, unsigned& sz)
{
- if (blr)
- {
- (Firebird::Arg::Gds(isc_random) << "This is already constructed message").raise();
- }
+ Firebird::LocalStatus st;
- // generate code for variable
- unsigned align = genBlr<T>();
- if (align)
+ unsigned l = metadata->getCount(&st);
+ check(&st);
+ if (fieldCount >= metadata->getMessageLength(&st))
{
- bufferLength = FB_ALIGN(bufferLength, align);
+ (Firebird::Arg::Gds(isc_random) <<
+ "Attempt to add to the message more variables then possible").raise();
}
- pos = bufferLength;
- bufferLength += sizeof(T);
- // generate code for null flag
- blrBuf.add(blr_short);
- blrBuf.add(0);
- align = type_alignments[dtype_short];
- if (align)
+ t = metadata->getType(&st, fieldCount);
+ check(&st);
+ sz = metadata->getLength(&st, fieldCount);
+ check(&st);
+ if (!checkType<T>(t, sz))
{
- bufferLength = FB_ALIGN(bufferLength, align);
+ (Firebird::Arg::Gds(isc_random) << "Incompatible data type").raise();
}
- null = bufferLength;
- bufferLength += sizeof(short);
- ++varCount;
+ return fieldCount++;
}
- void ready()
+ static void check(Firebird::IStatus* status)
{
- if (blr)
- return;
-
- // Adjust number of variables
- blrBuf[countOffset] = (varCount * 2) & 0xFF;
- blrBuf[countOffset + 1] = ((varCount * 2) >> 8) & 0xFF;
-
- // Complete blr
- blrBuf.add(blr_end);
- blrBuf.add(blr_eoc);
- blrLength = blrBuf.getCount();
- blr = blrBuf.begin();
-
- // Allocate buffer
- buffer = dataBuf.getBuffer(bufferLength);
+ if (!status->isSuccess())
+ {
+ Firebird::status_exception::raise(status->get());
+ }
}
- Firebird::UCharBuffer blrBuf, dataBuf;
- unsigned countOffset, varCount;
+private:
+ Firebird::UCharBuffer dataBuf;
+ unsigned fieldCount;
};
template <>
-unsigned Message::genBlr<SLONG>()
+bool Message::checkType<SLONG>(unsigned t, unsigned sz)
{
- blrBuf.add(blr_long);
- blrBuf.add(0); // scale
- return type_alignments[dtype_long];
+ return t == SQL_LONG && sz == sizeof(SLONG);
}
+
// With template magic, we make the fields strongly-typed.
-template <class T>
+template <typename T>
class Field
{
public:
+ class Null
+ {
+ public:
+ Null()
+ : ptr(NULL)
+ { }
+
+ void linkMessage(short* p)
+ {
+ ptr = p;
+ *ptr = -1; // mark as null initially
+ }
+
+ operator FB_BOOLEAN() const
+ {
+ return (*ptr) ? FB_TRUE : FB_FALSE;
+ }
+
+ FB_BOOLEAN operator=(FB_BOOLEAN val)
+ {
+ *ptr = val ? -1 : 0;
+ return val;
+ }
+
+ private:
+ short* ptr;
+ };
+
explicit Field(Message& m)
- : msg(m), pos(~0), nullPos(~0)
+ : ptr(NULL), type(0), size(0)
{
- msg.add<T>(pos, nullPos);
+ unsigned ind = m.add<T>(type, size);
+
+ Firebird::LocalStatus st;
+ unsigned tmp = m.metadata->getOffset(&st, ind);
+ Message::check(&st);
+ ptr = (T*)(m.buffer + tmp);
+
+ tmp = m.metadata->getNullOffset(&st, ind);
+ Message::check(&st);
+ null.linkMessage((short*)(m.buffer + tmp));
}
- T& operator()()
+ operator T()
{
- msg.ready();
- return *(T*) (msg.buffer + pos);
+ return *ptr;
}
- short& null()
+ T operator= (T newVal)
{
- msg.ready();
- return *(short*) (msg.buffer + nullPos);
+ *ptr = newVal;
+ null = FB_FALSE;
+ return newVal;
}
-private:
- Message& msg;
- unsigned pos, nullPos;
-};
+ operator const char*()
+ {
+ if (!charBuffer)
+ {
+ charBuffer.reset(FB_NEW(*getDefaultMemoryPool()) char[size + 1]);
+ }
-template <short N>
-class VarChar
-{
-public:
- short len;
- char data[N]; // This guarantees N > 0
+ getStrValue(charBuffer);
+ return charBuffer;
+ }
- static unsigned genBlr(Firebird::UCharBuffer& blr)
+ const char* operator= (const char* newVal)
{
- blr.add(blr_varying);
- blr.add(N & 0xFF);
- blr.add((N >> 8) & 0xFF);
- return type_alignments[dtype_varying];
+ setStrValue(newVal, strlen(newVal));
+ null = FB_FALSE;
+ return newVal;
}
- const VarChar& operator=(const char* str)
+ void set(unsigned length, const void* newVal)
{
- strncpy(data, str, N);
- len = strlen(str);
- if (len > N)
- len = N;
- return *this;
+ setStrValue(newVal, length);
+ null = FB_FALSE;
}
- void set(unsigned short l, void* bytes)
+private:
+ void getStrValue(char* to)
{
- if (l > (unsigned short) N)
- l = N;
- memcpy(data, bytes, l);
- len = l;
+ T::incompatibleDataType();
+ //(Firebird::Arg::Gds(isc_random) << "Incompatible data type").raise();
}
+
+ void setStrValue(const void* from, unsigned len)
+ {
+ T::incompatibleDataType();
+ //(Firebird::Arg::Gds(isc_random) << "Incompatible data type").raise();
+ }
+
+ T* ptr;
+ Firebird::AutoPtr<char, Firebird::ArrayDelete<char> > charBuffer;
+
+public:
+ Null null;
+ unsigned type, size;
};
+
+struct Varying
+{
+ short len;
+ char data[1];
+};
+
+template <>
+bool Message::checkType<Varying>(unsigned t, unsigned /*sz*/)
+{
+ return t == SQL_VARYING;
+}
+
+template<>
+void Field<Varying>::getStrValue(char* to)
+{
+ unsigned len = ptr->len;
+ if (len > size)
+ len = size;
+ memcpy(to, ptr->data, len);
+ to[len] = 0;
+}
+
+template<>
+void Field<Varying>::setStrValue(const void* from, unsigned len)
+{
+ if (len > size)
+ len = size;
+ memcpy(ptr->data, from, len);
+ ptr->len = len;
+}
+
+struct Text
+{
+ char data[1];
+};
+
+template <>
+bool Message::checkType<Text>(unsigned t, unsigned /*sz*/)
+{
+ return t == SQL_TEXT;
+}
+
+template<>
+void Field<Text>::getStrValue(char* to)
+{
+ memcpy(to, ptr->data, size);
+ to[size] = 0;
+ unsigned len = size;
+ while(len--)
+ {
+ if (to[len] == ' ')
+ to[len] = 0;
+ else
+ break;
+ }
+}
+
+template<>
+void Field<Text>::setStrValue(const void* from, unsigned len)
+{
+ if (len > size)
+ len = size;
+ memcpy(ptr->data, from, len);
+ if (len < size)
+ memset(&ptr->data[len], ' ', size - len);
+}
Modified: firebird/trunk/src/auth/SecureRemotePassword/manage/SrpManagement.cpp
===================================================================
--- firebird/trunk/src/auth/SecureRemotePassword/manage/SrpManagement.cpp 2013-02-16 02:34:05 UTC (rev 57662)
+++ firebird/trunk/src/auth/SecureRemotePassword/manage/SrpManagement.cpp 2013-02-17 12:08:53 UTC (rev 57663)
@@ -44,60 +44,64 @@
const unsigned int SZ_LOGIN = 31;
const unsigned int SZ_NAME = 31;
+typedef Field<Varying> Varfield;
+typedef Field<Text> Name;
-template <short N>
-void setField(Field<VarChar<N> >& to, Auth::ICharUserField* from)
+void setField(Name& to, Auth::ICharUserField* from)
{
if (from->entered())
{
- to() = from->get();
- to.null() = 0;
+ to = from->get();
}
else
{
- to.null() = -1;
+ to.null = FB_TRUE;
}
}
-// Domains
-typedef Field<VarChar<SZ_LOGIN> > Login;
-typedef Field<VarChar<Auth::RemotePassword::SRP_VERIFIER_SIZE> > Verifier;
-typedef Field<VarChar<Auth::RemotePassword::SRP_SALT_SIZE> > Salt;
-typedef Field<VarChar<SZ_NAME> > Name;
-void allocField(Firebird::AutoPtr<Name>& field, Message& up, Auth::ICharUserField* value, Firebird::string& update, const char* name)
+void allocField(Auth::ICharUserField* value, Firebird::string& update, const char* name)
{
if (value->entered() || value->specified())
{
- field = new Name(up);
update += ' ';
update += name;
update += "=?,";
}
}
+void allocField(Firebird::AutoPtr<Name>& field, Message& up, Auth::ICharUserField* value, const char* name)
+{
+ if (value->entered() || value->specified())
+ {
+ field = new Name(up);
+ }
+}
+
void assignField(Firebird::AutoPtr<Name>& field, Auth::ICharUserField* name)
{
if (field.hasData())
{
if (name->entered())
{
- (*field)() = name->get();
- field->null() = 0;
+ *field = name->get();
+ field->null = FB_FALSE;
}
else
{
fb_assert(name->specified());
- field->null() = -1;
+ field->null = FB_TRUE;
}
}
}
-template <short N>
-void listField(Auth::ICharUserField* to, Field<VarChar<N> >& from)
+void listField(Auth::ICharUserField* to, Name& from)
{
- to->set(from().data);
- to->setEntered(from.null() == 0 ? 1 : 0);
+ to->setEntered(from.null ? 0 : 1);
+ if (!from.null)
+ {
+ to->set(from);
+ }
}
}
@@ -137,27 +141,18 @@
Firebird::LocalStatus s;
Firebird::RefPtr<Firebird::ITransaction> ddlTran(att->startTransaction(&s, 0, NULL));
- if (!s.isSuccess())
- {
- Firebird::status_exception::raise(s.get());
- }
+
try
{
for (const char** sql = script; *sql; ++sql)
{
- att->execute(&s, ddlTran, 0, *sql, 3, 0, NULL, NULL);
- if (!s.isSuccess())
- {
- Firebird::status_exception::raise(s.get());
- }
+ att->execute(&s, ddlTran, 0, *sql, 3, NULL, NULL);
+ check(&s);
}
ddlTran->commit(&s);
- if (!s.isSuccess())
- {
- Firebird::status_exception::raise(s.get());
- }
+ check(&s);
}
catch (const Firebird::Exception&)
{
@@ -218,16 +213,10 @@
Firebird::DispatcherPtr p;
att = p->attachDatabase(status, secDbName, dpb.getBufferLength(), dpb.getBuffer());
- if (!status->isSuccess())
- {
- Firebird::status_exception::raise(status->get());
- }
+ check(status);
tra = att->startTransaction(status, 0, NULL);
- if (!status->isSuccess())
- {
- Firebird::status_exception::raise(status->get());
- }
+ check(status);
}
catch (const Firebird::Exception& ex)
{
@@ -266,11 +255,8 @@
Firebird::string sql;
sql.printf("ALTER ROLE RDB$ADMIN %s AUTO ADMIN MAPPING",
user->operation() == MAP_SET_OPER ? "SET" : "DROP");
- att->execute(status, tra, sql.length(), sql.c_str(), 3, 0, NULL, NULL);
- if (!status->isSuccess())
- {
- Firebird::status_exception::raise(status->get());
- }
+ att->execute(status, tra, sql.length(), sql.c_str(), 3, NULL, NULL);
+ check(status);
}
break;
@@ -280,166 +266,211 @@
"INSERT INTO plg$srp_view(PLG$USER_NAME, PLG$VERIFIER, PLG$SALT, PLG$FIRST, PLG$MIDDLE, PLG$LAST) "
"VALUES(?, ?, ?, ?, ?, ?)";
- Message add;
- Login login(add);
- Verifier verifier(add);
- Salt slt(add);
- Name first(add), middle(add), last(add);
+ Firebird::IStatement* stmt = NULL;
+ try
+ {
+ for (unsigned repeat = 0; ; ++repeat)
+ {
+ stmt = att->prepare(status, tra, 0, insert, 3, Firebird::IStatement::PREPARE_PREFETCH_METADATA);
+ if (status->isSuccess())
+ {
+ break;
+ }
+ else if (repeat > 0)
+ {
+ Firebird::status_exception::raise(status->get());
+ }
- setField(login, user->userName());
- setField(first, user->firstName());
- setField(middle, user->middleName());
- setField(last, user->lastName());
+ const ISC_STATUS* v = status->get();
+ while (v[0] == isc_arg_gds)
+ {
+ if (v[1] == isc_dsql_relation_err)
+ {
+ prepareDataStructures();
+ tra->commit(status);
+ check(status);
+ tra = att->startTransaction(status, 0, NULL);
+ check(status);
+ break;
+ }
+ do
+ {
+ v += 2;
+ } while (v[0] != isc_arg_warning && v[0] != isc_arg_gds && v[0] != isc_arg_end);
+ }
+ }
+ fb_assert(stmt);
+
+ Meta im(stmt, false);
+ Message add(im);
+ Name login(add);
+ Varfield verifier(add), slt(add);
+ Name first(add), middle(add), last(add);
+
+ setField(login, user->userName());
+ setField(first, user->firstName());
+ setField(middle, user->middleName());
+ setField(last, user->lastName());
+
#if SRP_DEBUG > 1
- Firebird::BigInteger salt("02E268803000000079A478A700000002D1A6979000000026E1601C000000054F");
+ Firebird::BigInteger salt("02E268803000000079A478A700000002D1A6979000000026E1601C000000054F");
#else
- Firebird::BigInteger salt;
- salt.random(RemotePassword::SRP_SALT_SIZE);
+ Firebird::BigInteger salt;
+ salt.random(RemotePassword::SRP_SALT_SIZE);
#endif
- Firebird::UCharBuffer s;
- salt.getBytes(s);
- slt().set(s.getCount(), s.begin());
- slt.null() = 0;
+ Firebird::UCharBuffer s;
+ salt.getBytes(s);
+ slt.set(s.getCount(), s.begin());
- dumpIt("salt", s);
+ dumpIt("salt", s);
#if SRP_DEBUG > 0
- fprintf(stderr, ">%s< >%s<\n", user->userName()->get(), user->password()->get());
+ fprintf(stderr, ">%s< >%s<\n", user->userName()->get(), user->password()->get());
#endif
- Firebird::string s1;
- salt.getText(s1);
- server.computeVerifier(user->userName()->get(), s1, user->password()->get()).getBytes(s);
- dumpIt("verifier", s);
- verifier().set(s.getCount(), s.begin());
- verifier.null() = 0;
+ Firebird::string s1;
+ salt.getText(s1);
+ server.computeVerifier(user->userName()->get(), s1, user->password()->get()).getBytes(s);
+ dumpIt("verifier", s);
+ verifier.set(s.getCount(), s.begin());
- for (unsigned repeat = 0; ; ++repeat)
+ stmt->execute(status, tra, &add, NULL);
+ check(status);
+
+ stmt->free(status);
+ check(status);
+ }
+ catch (const Firebird::Exception&)
{
- att->execute(status, tra, 0, insert, 3, 0, &add, NULL);
- if (status->isSuccess() || repeat > 0)
+ if (stmt)
{
- break;
+ stmt->release();
}
-
- const ISC_STATUS* v = status->get();
- while (v[0] == isc_arg_gds)
- {
- if (v[1] == isc_dsql_relation_err)
- {
- prepareDataStructures();
- tra->commit(status);
- if (!status->isSuccess())
- {
- Firebird::status_exception::raise(status->get());
- }
- tra = att->startTransaction(status, 0, NULL);
- if (!status->isSuccess())
- {
- Firebird::status_exception::raise(status->get());
- }
- break;
- }
- do
- {
- v += 2;
- } while (v[0] != isc_arg_warning && v[0] != isc_arg_gds && v[0] != isc_arg_end);
- }
+ throw;
}
- if (!status->isSuccess())
- {
- Firebird::status_exception::raise(status->get());
- }
}
break;
case MOD_OPER:
{
- Message up;
-
Firebird::string update = "UPDATE plg$srp_view SET ";
- Firebird::AutoPtr<Verifier> verifier;
- Firebird::AutoPtr<Salt> slt;
+ Firebird::AutoPtr<Varfield> verifier, slt;
if (user->password()->entered())
{
- verifier = new Verifier(up);
- slt = new Salt(up);
update += "PLG$VERIFIER=?,PLG$SALT=?,";
}
Firebird::AutoPtr<Name> first, middle, last;
- allocField(first, up, user->firstName(), update, "PLG$FIRST");
- allocField(middle, up, user->middleName(), update, "PLG$MIDDLE");
- allocField(last, up, user->lastName(), update, "PLG$LAST");
+ allocField(user->firstName(), update, "PLG$FIRST");
+ allocField(user->middleName(), update, "PLG$MIDDLE");
+ allocField(user->lastName(), update, "PLG$LAST");
if (update[update.length() - 1] != ',')
{
return 0;
}
update.rtrim(",");
-
update += " WHERE PLG$USER_NAME=?";
- Login login(up);
- if (verifier.hasData())
+ Firebird::IStatement* stmt = NULL;
+ try
{
+ stmt = att->prepare(status, tra, 0, update.c_str(), 3, Firebird::IStatement::PREPARE_PREFETCH_METADATA);
+ check(status);
+
+ Meta im(stmt, false);
+ Message up(im);
+
+ if (user->password()->entered())
+ {
+ verifier = new Varfield(up);
+ slt = new Varfield(up);
#if SRP_DEBUG > 1
- Firebird::BigInteger salt("02E268803000000079A478A700000002D1A6979000000026E1601C000000054F");
+ Firebird::BigInteger salt("02E268803000000079A478A700000002D1A6979000000026E1601C000000054F");
#else
- Firebird::BigInteger salt;
- salt.random(RemotePassword::SRP_SALT_SIZE);
+ Firebird::BigInteger salt;
+ salt.random(RemotePassword::SRP_SALT_SIZE);
#endif
- Firebird::UCharBuffer s;
- salt.getBytes(s);
- (*slt)().set(s.getCount(), s.begin());
- slt->null() = 0;
+ Firebird::UCharBuffer s;
+ salt.getBytes(s);
+ slt->set(s.getCount(), s.begin());
- dumpIt("salt", s);
+ dumpIt("salt", s);
#if SRP_DEBUG > 0
- fprintf(stderr, ">%s< >%s<\n", user->userName()->get(), user->password()->get());
+ fprintf(stderr, ">%s< >%s<\n", user->userName()->get(), user->password()->get());
#endif
- Firebird::string s1;
- salt.getText(s1);
- server.computeVerifier(user->userName()->get(), s1, user->password()->get()).getBytes(s);
- dumpIt("verifier", s);
- (*verifier)().set(s.getCount(), s.begin());
- verifier->null() = 0;
- }
+ Firebird::string s1;
+ salt.getText(s1);
+ server.computeVerifier(user->userName()->get(), s1, user->password()->get()).getBytes(s);
+ dumpIt("verifier", s);
+ verifier->set(s.getCount(), s.begin());
+ }
- assignField(first, user->firstName());
- assignField(middle, user->middleName());
- assignField(last, user->lastName());
- setField(login, user->userName());
+ allocField(first, up, user->firstName(), "PLG$FIRST");
+ allocField(middle, up, user->middleName(), "PLG$MIDDLE");
+ allocField(last, up, user->lastName(), "PLG$LAST");
- att->execute(status, tra, 0, update.c_str(), 3, 0, &up, NULL);
- if (!status->isSuccess())
- {
- Firebird::status_exception::raise(status->get());
+ Name login(up);
+
+ assignField(first, user->firstName());
+ assignField(middle, user->middleName());
+ assignField(last, user->lastName());
+ setField(login, user->userName());
+
+ stmt->execute(status, tra, &up, NULL);
+ check(status);
+
+ if (!checkCount(status, &upCount, isc_info_update_count))
+ {
+ return -1;
+ }
+
+ stmt->free(status);
+ check(status);
}
-
- if (!checkCount(status, &upCount, isc_info_update_count))
+ catch (const Firebird::Exception&)
{
- return -1;
+ if (stmt)
+ {
+ stmt->release();
+ }
+ throw;
}
}
break;
case DEL_OPER:
{
- Message dl;
const char* del = "DELETE FROM plg$srp_view WHERE PLG$USER_NAME=?";
- Login login(dl);
- setField(login, user->userName());
+ Firebird::IStatement* stmt = NULL;
+ try
+ {
+ stmt = att->prepare(status, tra, 0, del, 3, Firebird::IStatement::PREPARE_PREFETCH_METADATA);
+ check(status);
- att->execute(status, tra, 0, del, 3, 0, &dl, NULL);
- if (!status->isSuccess())
- {
- Firebird::status_exception::raise(status->get());
+ Meta im(stmt, false);
+ Message dl(im);
+ Name login(dl);
+ setField(login, user->userName());
+
+ stmt->execute(status, tra, &dl, NULL);
+ check(status);
+
+ if (!checkCount(status, &delCount, isc_info_delete_count))
+ {
+ return -1;
+ }
+
+ stmt->free(status);
+ check(status);
}
-
- if (!checkCount(status, &delCount, isc_info_delete_count))
+ catch (const Firebird::Exception&)
{
- return -1;
+ if (stmt)
+ {
+ stmt->release();
+ }
+ throw;
}
}
break;
@@ -452,75 +483,62 @@
user->groupName()->setEntered(0);
user->password()->setEntered(0);
- Message di;
Firebird::string disp = "SELECT PLG$USER_NAME, PLG$FIRST, PLG$MIDDLE, PLG$LAST, "
" CASE WHEN RDB$RELATION_NAME IS NULL THEN 0 ELSE 1 END "
"FROM PLG$SRP_VIEW LEFT JOIN RDB$USER_PRIVILEGES "
" ON PLG$SRP_VIEW.PLG$USER_NAME = RDB$USER_PRIVILEGES.RDB$USER "
" AND RDB$RELATION_NAME = 'RDB$ADMIN' "
" AND RDB$PRIVILEGE = 'M' ";
- Firebird::AutoPtr<Message> par;
if (user->userName()->entered())
{
- par = new Message;
- Login login(*par);
- setField(login, user->userName());
disp += " WHERE PLG$USER_NAME = ?";
}
- Login login(di);
- Name first(di), middle(di), last(di);
- Field<SLONG> admin(di);
- di.ready();
-
- Firebird::RefPtr<Firebird::IStatement> stmt;
+ Firebird::IStatement* stmt = NULL;
+ Firebird::IResultSet* rs = NULL;
try
{
- stmt = att->allocateStatement(status);
- if (!status->isSuccess())
+ stmt = att->prepare(status, tra, 0, disp.c_str(), 3, Firebird::IStatement::PREPARE_PREFETCH_METADATA);
+ check(status);
+
+ Meta om(stmt, true);
+ Message di(om);
+ Name login(di);
+ Name first(di), middle(di), last(di);
+ Field<SLONG> admin(di);
+
+ Firebird::AutoPtr<Message> par;
+ if (user->userName()->entered())
{
- Firebird::status_exception::raise(status->get());
+ Meta im(stmt, false);
+ par = new Message(im);
+ Name login(*par);
+ setField(login, user->userName());
}
- stmt->prepare(status, tra, disp.length(), disp.c_str(), 3,
- Firebird::IStatement::PREPARE_PREFETCH_NONE);
- if (!status->isSuccess())
+
+ rs = stmt->openCursor(status, tra, par, om);
+ check(status);
+
+ while (rs->fetch(status, di.buffer))
{
- Firebird::status_exception::raise(status->get());
- }
- stmt->execute(status, tra, 0, par, NULL);
- if (!status->isSuccess())
- {
- Firebird::status_exception::raise(status->get());
- }
- while (stmt->fetch(status, &di) == 0)
- {
- if (!status->isSuccess())
- {
- Firebird::status_exception::raise(status->get());
- }
+ check(status);
listField(user->userName(), login);
listField(user->firstName(), first);
listField(user->middleName(), middle);
listField(user->lastName(), last);
- user->admin()->set(admin());
+ u...
[truncated message content] |
|
From: <fir...@us...> - 2013-02-18 00:46:11
|
Revision: 57665
http://sourceforge.net/p/firebird/code/57665
Author: firebirds
Date: 2013-02-18 00:46:08 +0000 (Mon, 18 Feb 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2013-02-17 23:06:40 UTC (rev 57664)
+++ firebird/trunk/ChangeLog 2013-02-18 00:46:08 UTC (rev 57665)
@@ -1,3 +1,99 @@
+ 2013-02-17 23:06 asfernandes
+ M src/auth/SecureRemotePassword/Message.h
+ M src/auth/SecureRemotePassword/manage/SrpManagement.cpp
+ M src/auth/SecureRemotePassword/server/SrpServer.cpp
+ M src/common/StatementMetadata.cpp
+ M src/common/StatementMetadata.h
+ M src/common/classes/InternalMessageBuffer.cpp
+ M src/common/utils.cpp
+ M src/dsql/BlrDebugWriter.h
+ M src/dsql/dsql.cpp
+ M src/include/firebird/Provider.h
+ M src/jrd/EngineInterface.h
+ M src/jrd/PreparedStatement.cpp
+ M src/jrd/jrd.cpp
+ M src/jrd/met.epp
+Misc.
+
+ 2013-02-17 12:08 alexpeshkoff
+ M builds/posix/Makefile.in.plugins_examples
+ M lang_helpers/gds_codes.ftn
+ M lang_helpers/gds_codes.pas
+ M src/auth/SecureRemotePassword/Message.h
+ M src/auth/SecureRemotePassword/manage/SrpManagement.cpp
+ M src/auth/SecureRemotePassword/server/SrpServer.cpp
+ A src/common/MsgMetadata.cpp
+ A src/common/MsgMetadata.h
+ M src/common/StatementMetadata.cpp
+ M src/common/StatementMetadata.h
+ A src/common/classes/BlrReader.h (from /firebird/trunk/src/jrd/BlrReader.h:57662)
+ A src/common/classes/BlrWriter.cpp (from /firebird/trunk/src/dsql/BlrWriter.cpp:57597)
+ A src/common/classes/BlrWriter.h (from /firebird/trunk/src/dsql/BlrWriter.h:57597)
+ M src/common/classes/ImplementHelper.cpp
+ M src/common/classes/ImplementHelper.h
+ A src/common/classes/InternalMessageBuffer.cpp
+ A src/common/classes/InternalMessageBuffer.h
+ M src/common/classes/RefMutex.h
+ M src/common/classes/objects_array.h
+ M src/common/utils.cpp
+ M src/common/utils_proto.h
+ A src/dsql/BlrDebugWriter.cpp
+ A src/dsql/BlrDebugWriter.h
+ D src/dsql/BlrWriter.cpp
+ D src/dsql/BlrWriter.h
+ M src/dsql/DdlNodes.epp
+ M src/dsql/DdlNodes.h
+ M src/dsql/DsqlCompilerScratch.h
+ M src/dsql/Nodes.h
+ M src/dsql/StmtNodes.cpp
+ M src/dsql/dsql.cpp
+ M src/dsql/dsql.h
+ M src/dsql/dsql_proto.h
+ M src/include/firebird/ExternalEngine.h
+ M src/include/firebird/Provider.h
+ M src/include/gen/codetext.h
+ M src/include/gen/iberror.h
+ M src/include/gen/msgs.h
+ M src/include/gen/sql_code.h
+ M src/include/gen/sql_state.h
+ M src/include/types_pub.h
+ D src/jrd/BlrReader.h
+ M src/jrd/Database.h
+ M src/jrd/EngineInterface.h
+ M src/jrd/ExtEngineManager.cpp
+ M src/jrd/ExtEngineManager.h
+ M src/jrd/PreparedStatement.cpp
+ M src/jrd/PreparedStatement.h
+ M src/jrd/ResultSet.cpp
+ M src/jrd/cch.cpp
+ M src/jrd/constants.h
+ M src/jrd/exe.h
+ M src/jrd/extds/InternalDS.cpp
+ M src/jrd/extds/InternalDS.h
+ M src/jrd/jrd.cpp
+ M src/jrd/met.epp
+ M src/jrd/par.cpp
+ M src/jrd/par_proto.h
+ M src/jrd/val.h
+ M src/msgs/facilities2.sql
+ M src/msgs/messages2.sql
+ M src/msgs/system_errors2.sql
+ A src/remote/client/BlrFromMessage.cpp
+ A src/remote/client/BlrFromMessage.h
+ M src/remote/client/interface.cpp
+ M src/remote/protocol.h
+ M src/remote/remote.h
+ M src/remote/server/server.cpp
+ M src/yvalve/YObjects.h
+ M src/yvalve/gds.cpp
+ M src/yvalve/why.cpp
+Modified IStatement interface in our API:
+1. Never allocate empty statement - always use att->prepare() to create statement interface
+2. Separated IStatement into 2 parts - statement itself and resultset.
+3. Added stmt->openCursor() (and att->openCursor() for unprepared statements) to create IResultSet.
+4. Always use IMessageMetadata (former IParametersMetadata) to pass message fromat info from client,
+ therefore avoiding need in BLR generation in client applications.
+
2013-02-15 02:48 asfernandes
M examples/udr/UdrCppExample.cpp
M src/include/FirebirdApi.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2013-02-17 23:06:40 UTC (rev 57664)
+++ firebird/trunk/src/jrd/build_no.h 2013-02-18 00:46:08 UTC (rev 57665)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:30213
+ FORMAL BUILD NUMBER:30215
*/
-#define PRODUCT_VER_STRING "3.0.0.30213"
-#define FILE_VER_STRING "WI-T3.0.0.30213"
-#define LICENSE_VER_STRING "WI-T3.0.0.30213"
-#define FILE_VER_NUMBER 3, 0, 0, 30213
+#define PRODUCT_VER_STRING "3.0.0.30215"
+#define FILE_VER_STRING "WI-T3.0.0.30215"
+#define LICENSE_VER_STRING "WI-T3.0.0.30215"
+#define FILE_VER_NUMBER 3, 0, 0, 30215
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "30213"
+#define FB_BUILD_NO "30215"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2013-02-17 23:06:40 UTC (rev 57664)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2013-02-18 00:46:08 UTC (rev 57665)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=30213
+BuildNum=30215
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2013-02-19 01:09:59
|
Revision: 57675
http://sourceforge.net/p/firebird/code/57675
Author: firebirds
Date: 2013-02-19 01:09:55 +0000 (Tue, 19 Feb 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2013-02-18 15:28:50 UTC (rev 57674)
+++ firebird/trunk/ChangeLog 2013-02-19 01:09:55 UTC (rev 57675)
@@ -1,3 +1,48 @@
+ 2013-02-18 15:28 asfernandes
+ M src/remote/server/server.cpp
+ M src/yvalve/YObjects.h
+ M src/yvalve/why.cpp
+Misc.
+
+ 2013-02-18 13:53 alexpeshkoff
+ M src/jrd/jrd.cpp
+ M src/remote/client/interface.cpp
+Make openCursor() use default output format when none is given explicitly
+
+ 2013-02-18 11:42 alexpeshkoff
+ M examples/interfaces/select.cpp
+misc
+
+ 2013-02-18 11:07 alexpeshkoff
+ A examples/interfaces
+ A examples/interfaces/select.cpp
+A sample of using OO API
+
+ 2013-02-18 11:06 alexpeshkoff
+ M src/common/MsgMetadata.cpp
+ M src/include/firebird/Provider.h
+A number of fixes related with ICoerceMetadata interface - thanks to Adriano
+
+ 2013-02-18 08:27 hvlad
+ M builds/win32/msvc9/common.vcproj
+ M builds/win32/msvc9/engine.vcproj
+ M builds/win32/msvc9/yvalve.vcproj
+Update MSVC9 build
+
+ 2013-02-18 08:23 hvlad
+ M builds/win32/msvc8/common.vcproj
+ M builds/win32/msvc8/engine.vcproj
+ M builds/win32/msvc8/yvalve.vcproj
+Update MSVC8 build
+
+ 2013-02-18 07:54 alexpeshkoff
+ M src/jrd/EngineInterface.h
+Cleanup - thanks to Adriano
+
+ 2013-02-18 02:14 asfernandes
+ M src/remote/client/interface.cpp
+Misc.
+
2013-02-17 23:06 asfernandes
M src/auth/SecureRemotePassword/Message.h
M src/auth/SecureRemotePassword/manage/SrpManagement.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2013-02-18 15:28:50 UTC (rev 57674)
+++ firebird/trunk/src/jrd/build_no.h 2013-02-19 01:09:55 UTC (rev 57675)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:30215
+ FORMAL BUILD NUMBER:30224
*/
-#define PRODUCT_VER_STRING "3.0.0.30215"
-#define FILE_VER_STRING "WI-T3.0.0.30215"
-#define LICENSE_VER_STRING "WI-T3.0.0.30215"
-#define FILE_VER_NUMBER 3, 0, 0, 30215
+#define PRODUCT_VER_STRING "3.0.0.30224"
+#define FILE_VER_STRING "WI-T3.0.0.30224"
+#define LICENSE_VER_STRING "WI-T3.0.0.30224"
+#define FILE_VER_NUMBER 3, 0, 0, 30224
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "30215"
+#define FB_BUILD_NO "30224"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2013-02-18 15:28:50 UTC (rev 57674)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2013-02-19 01:09:55 UTC (rev 57675)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=30215
+BuildNum=30224
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2013-02-20 00:52:48
|
Revision: 57679
http://sourceforge.net/p/firebird/code/57679
Author: firebirds
Date: 2013-02-20 00:52:46 +0000 (Wed, 20 Feb 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2013-02-19 12:03:07 UTC (rev 57678)
+++ firebird/trunk/ChangeLog 2013-02-20 00:52:46 UTC (rev 57679)
@@ -1,3 +1,31 @@
+ 2013-02-19 12:03 alexpeshkoff
+ M src/jrd/jrd.cpp
+ M src/remote/client/interface.cpp
+Do not prefetch unneeded information in IAttachment::openCursor()
+
+ 2013-02-19 11:50 hvlad
+ M builds/win32/msvc10/common.vcxproj
+ M builds/win32/msvc10/common.vcxproj.filters
+ M builds/win32/msvc10/engine.vcxproj
+ M builds/win32/msvc10/engine.vcxproj.filters
+ M builds/win32/msvc10/yvalve.vcxproj
+ M builds/win32/msvc10/yvalve.vcxproj.filters
+Update MSVC10 build
+
+ 2013-02-19 11:20 alexpeshkoff
+ M src/common/StatementMetadata.cpp
+ M src/common/StatementMetadata.h
+ M src/dsql/dsql.cpp
+ M src/include/firebird/Provider.h
+ M src/jrd/EngineInterface.h
+ M src/jrd/inf_pub.h
+ M src/jrd/jrd.cpp
+ M src/remote/client/interface.cpp
+ M src/remote/server/server.cpp
+ M src/yvalve/YObjects.h
+ M src/yvalve/why.cpp
+Add IStatement::getFlags() to help user make a solution what to do with SQL statement
+
2013-02-18 15:28 asfernandes
M src/remote/server/server.cpp
M src/yvalve/YObjects.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2013-02-19 12:03:07 UTC (rev 57678)
+++ firebird/trunk/src/jrd/build_no.h 2013-02-20 00:52:46 UTC (rev 57679)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:30224
+ FORMAL BUILD NUMBER:30227
*/
-#define PRODUCT_VER_STRING "3.0.0.30224"
-#define FILE_VER_STRING "WI-T3.0.0.30224"
-#define LICENSE_VER_STRING "WI-T3.0.0.30224"
-#define FILE_VER_NUMBER 3, 0, 0, 30224
+#define PRODUCT_VER_STRING "3.0.0.30227"
+#define FILE_VER_STRING "WI-T3.0.0.30227"
+#define LICENSE_VER_STRING "WI-T3.0.0.30227"
+#define FILE_VER_NUMBER 3, 0, 0, 30227
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "30224"
+#define FB_BUILD_NO "30227"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2013-02-19 12:03:07 UTC (rev 57678)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2013-02-20 00:52:46 UTC (rev 57679)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=30224
+BuildNum=30227
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2013-02-21 00:48:28
|
Revision: 57683
http://sourceforge.net/p/firebird/code/57683
Author: firebirds
Date: 2013-02-21 00:48:25 +0000 (Thu, 21 Feb 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2013-02-20 19:41:01 UTC (rev 57682)
+++ firebird/trunk/ChangeLog 2013-02-21 00:48:25 UTC (rev 57683)
@@ -1,3 +1,22 @@
+ 2013-02-20 19:41 asfernandes
+ M src/common/MsgMetadata.cpp
+ M src/common/MsgMetadata.h
+ M src/gpre/boot/gpre_meta_boot.cpp
+ M src/include/firebird/Interface.h
+ M src/include/firebird/Provider.h
+ M src/yvalve/MasterImplementation.cpp
+ M src/yvalve/MasterImplementation.h
+Replaced ICoerceMetadata with IMetadataBuilder and add a builder creator method in IMaster.
+This change is to make applications who define they own message format (without metadata inspection and coercion) to easily create its IMessageMetadata.
+
+ 2013-02-20 19:40 asfernandes
+ M src/include/firebird/Provider.h
+Misc.
+
+ 2013-02-20 13:17 alexpeshkoff
+ M src/common/classes/Aligner.h
+Assertion suggested by Dmitry Kovaalenko
+
2013-02-19 12:03 alexpeshkoff
M src/jrd/jrd.cpp
M src/remote/client/interface.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2013-02-20 19:41:01 UTC (rev 57682)
+++ firebird/trunk/src/jrd/build_no.h 2013-02-21 00:48:25 UTC (rev 57683)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:30227
+ FORMAL BUILD NUMBER:30230
*/
-#define PRODUCT_VER_STRING "3.0.0.30227"
-#define FILE_VER_STRING "WI-T3.0.0.30227"
-#define LICENSE_VER_STRING "WI-T3.0.0.30227"
-#define FILE_VER_NUMBER 3, 0, 0, 30227
+#define PRODUCT_VER_STRING "3.0.0.30230"
+#define FILE_VER_STRING "WI-T3.0.0.30230"
+#define LICENSE_VER_STRING "WI-T3.0.0.30230"
+#define FILE_VER_NUMBER 3, 0, 0, 30230
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "30227"
+#define FB_BUILD_NO "30230"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2013-02-20 19:41:01 UTC (rev 57682)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2013-02-21 00:48:25 UTC (rev 57683)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=30227
+BuildNum=30230
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ale...@us...> - 2013-02-21 14:59:28
|
Revision: 57684
http://sourceforge.net/p/firebird/code/57684
Author: alexpeshkoff
Date: 2013-02-21 14:59:24 +0000 (Thu, 21 Feb 2013)
Log Message:
-----------
Enhancements of IMetadataBuilder
Modified Paths:
--------------
firebird/trunk/examples/interfaces/select.cpp
firebird/trunk/lang_helpers/gds_codes.ftn
firebird/trunk/lang_helpers/gds_codes.pas
firebird/trunk/src/common/MsgMetadata.cpp
firebird/trunk/src/common/MsgMetadata.h
firebird/trunk/src/include/gen/codetext.h
firebird/trunk/src/include/gen/iberror.h
firebird/trunk/src/include/gen/msgs.h
firebird/trunk/src/include/gen/sql_code.h
firebird/trunk/src/include/gen/sql_state.h
firebird/trunk/src/msgs/facilities2.sql
firebird/trunk/src/msgs/messages2.sql
firebird/trunk/src/msgs/system_errors2.sql
Modified: firebird/trunk/examples/interfaces/select.cpp
===================================================================
--- firebird/trunk/examples/interfaces/select.cpp 2013-02-21 00:48:25 UTC (rev 57683)
+++ firebird/trunk/examples/interfaces/select.cpp 2013-02-21 14:59:24 UTC (rev 57684)
@@ -59,7 +59,7 @@
IStatement* stmt = NULL;
IResultSet* curs = NULL;
IMessageMetadata* meta = NULL;
- ICoerceMetadata* coerce = NULL;
+ IMetadataBuilder* builder = NULL;
try
{
@@ -83,8 +83,8 @@
// get list of columns
meta = stmt->getOutputMetadata(st);
check(st, "getOutputMetadata");
- coerce = meta->coerce(st);
- check(st, "coerce");
+ builder = meta->getBuilder(st);
+ check(st, "getBuilder");
unsigned cols = meta->getCount(st);
check(st, "getCount");
@@ -105,7 +105,7 @@
if (t == SQL_VARYING || t == SQL_TEXT)
{
- coerce->setType(st, j, SQL_TEXT);
+ builder->setType(st, j, SQL_TEXT);
check(st, "setType");
fields[j].name = meta->getField(st, j);
check(st, "getField");
@@ -113,7 +113,7 @@
}
meta->release();
- meta = coerce->getMetadata(st);
+ meta = builder->getMetadata(st);
check(st, "getMetadata");
// now we may also get offsets info
@@ -128,8 +128,8 @@
}
}
- coerce->release();
- coerce = NULL;
+ builder->release();
+ builder = NULL;
// open cursor
curs = stmt->openCursor(st, tra, NULL, meta);
@@ -187,8 +187,8 @@
// release interfaces after error caught
if (meta)
meta->release();
- if (coerce)
- coerce->release();
+ if (builder)
+ builder->release();
if (curs)
curs->release();
if (stmt)
Modified: firebird/trunk/lang_helpers/gds_codes.ftn
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.ftn 2013-02-21 00:48:25 UTC (rev 57683)
+++ firebird/trunk/lang_helpers/gds_codes.ftn 2013-02-21 14:59:24 UTC (rev 57684)
@@ -1514,6 +1514,8 @@
PARAMETER (GDS__wrong_message_length = 335545050)
INTEGER*4 GDS__no_output_format
PARAMETER (GDS__no_output_format = 335545051)
+ INTEGER*4 GDS__item_finish
+ PARAMETER (GDS__item_finish = 335545052)
INTEGER*4 GDS__gfix_db_name
PARAMETER (GDS__gfix_db_name = 335740929)
INTEGER*4 GDS__gfix_invalid_sw
Modified: firebird/trunk/lang_helpers/gds_codes.pas
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.pas 2013-02-21 00:48:25 UTC (rev 57683)
+++ firebird/trunk/lang_helpers/gds_codes.pas 2013-02-21 14:59:24 UTC (rev 57684)
@@ -764,6 +764,7 @@
gds_bad_result_set = 335545049;
gds_wrong_message_length = 335545050;
gds_no_output_format = 335545051;
+ gds_item_finish = 335545052;
gds_gfix_db_name = 335740929;
gds_gfix_invalid_sw = 335740930;
gds_gfix_incmp_sw = 335740932;
Modified: firebird/trunk/src/common/MsgMetadata.cpp
===================================================================
--- firebird/trunk/src/common/MsgMetadata.cpp 2013-02-21 00:48:25 UTC (rev 57683)
+++ firebird/trunk/src/common/MsgMetadata.cpp 2013-02-21 14:59:24 UTC (rev 57684)
@@ -25,6 +25,7 @@
#include "firebird.h"
#include "../common/MsgMetadata.h"
#include "../common/utils_proto.h"
+#include "../jrd/align.h"
using namespace Firebird;
@@ -53,83 +54,127 @@
// IMetadataBuilder implementation
virtual void FB_CARG setType(IStatus* status, unsigned index, unsigned type)
{
- MutexLockGuard g(mtx, FB_FUNCTION);
+ try
+ {
+ MutexLockGuard g(mtx, FB_FUNCTION);
- if (!indexError(status, index, "setType"))
+ indexError(index, "setType");
msgMetadata->items[index].type = type;
+ if (!msgMetadata->items[index].length)
+ {
+ unsigned dtype;
+ fb_utils::sqlTypeToDsc(0, type, 0, &dtype, NULL, NULL, NULL);
+ if (dtype < DTYPE_TYPE_MAX)
+ msgMetadata->items[index].length = type_lengths[dtype];
+ }
+
+ // Setting type & length is enough for an item to be ready for use
+ if (msgMetadata->items[index].length)
+ msgMetadata->items[index].finished = true;
+ }
+ catch (const Exception& ex)
+ {
+ ex.stuffException(status);
+ }
}
virtual void FB_CARG setSubType(IStatus* status, unsigned index, unsigned subType)
{
- MutexLockGuard g(mtx, FB_FUNCTION);
+ try
+ {
+ MutexLockGuard g(mtx, FB_FUNCTION);
- if (!indexError(status, index, "setSubType"))
+ indexError(index, "setSubType");
msgMetadata->items[index].subType = subType;
+ }
+ catch (const Exception& ex)
+ {
+ ex.stuffException(status);
+ }
}
virtual void FB_CARG setLength(IStatus* status, unsigned index, unsigned length)
{
- MutexLockGuard g(mtx, FB_FUNCTION);
+ try
+ {
+ MutexLockGuard g(mtx, FB_FUNCTION);
- if (!indexError(status, index, "setLength"))
+ indexError(index, "setLength");
msgMetadata->items[index].length = length;
+
+ // Setting type & length is enough for an item to be ready for use
+ if (msgMetadata->items[index].type)
+ msgMetadata->items[index].finished = true;
+ }
+ catch (const Exception& ex)
+ {
+ ex.stuffException(status);
+ }
}
virtual void FB_CARG setScale(IStatus* status, unsigned index, unsigned scale)
{
- MutexLockGuard g(mtx, FB_FUNCTION);
+ try
+ {
+ MutexLockGuard g(mtx, FB_FUNCTION);
- if (!indexError(status, index, "setScale"))
+ indexError(index, "setScale");
msgMetadata->items[index].scale = scale;
+ }
+ catch (const Exception& ex)
+ {
+ ex.stuffException(status);
+ }
}
virtual IMessageMetadata* FB_CARG getMetadata(IStatus* status)
{
- MutexLockGuard g(mtx, FB_FUNCTION);
+ try
+ {
+ MutexLockGuard g(mtx, FB_FUNCTION);
- if (metadataError(status, "getMetadata"))
+ metadataError("getMetadata");
+
+ unsigned i = msgMetadata->makeOffsets();
+ if (i != ~0u)
+ {
+ (Arg::Gds(isc_item_finish) << Arg::Num(i)).raise();
+ }
+
+ IMessageMetadata* rc = msgMetadata;
+ rc->addRef();
+ msgMetadata = NULL;
+ return rc;
+ }
+ catch (const Exception& ex)
{
- return NULL;
+ ex.stuffException(status);
}
-
- msgMetadata->makeOffsets();
- IMessageMetadata* rc = msgMetadata;
- rc->addRef();
- msgMetadata = NULL;
- return rc;
+ return NULL;
}
private:
RefPtr<MsgMetadata> msgMetadata;
Mutex mtx;
- bool metadataError(IStatus* status, const char* functionName)
+ void metadataError(const char* functionName)
{
if (!msgMetadata)
{
- status->set((Arg::Gds(isc_random) <<
- (string("MetadataBuilder interface is already inactive: IMetadataBuilder::") + functionName)).value());
- return true;
+ (Arg::Gds(isc_random) << (string("MetadataBuilder interface is already inactive: "
+ "IMetadataBuilder::") + functionName)).raise();
}
-
- return false;
}
- bool indexError(IStatus* status, unsigned index, const char* functionName)
+ void indexError(unsigned index, const char* functionName)
{
- if (metadataError(status, functionName))
- {
- return true;
- }
+ metadataError(functionName);
if (index >= msgMetadata->items.getCount())
{
- status->set((Arg::Gds(isc_invalid_index_val) <<
- Arg::Num(index) << (string("IMetadataBuilder::") + functionName)).value());
- return true;
+ (Arg::Gds(isc_invalid_index_val) << Arg::Num(index) << (string("IMetadataBuilder::") +
+ functionName)).raise();
}
-
- return false;
}
};
@@ -139,7 +184,8 @@
namespace Firebird {
-void MsgMetadata::makeOffsets()
+// returns ~0 on success or index of not finished item
+unsigned MsgMetadata::makeOffsets()
{
length = 0;
@@ -149,11 +195,13 @@
if (!param->finished)
{
length = 0;
- return;
+ return n;
}
length = fb_utils::sqlTypeToDsc(length, param->type, param->length,
NULL /*dtype*/, NULL /*length*/, ¶m->offset, ¶m->nullInd);
}
+
+ return ~0;
}
Modified: firebird/trunk/src/common/MsgMetadata.h
===================================================================
--- firebird/trunk/src/common/MsgMetadata.h 2013-02-21 00:48:25 UTC (rev 57683)
+++ firebird/trunk/src/common/MsgMetadata.h 2013-02-21 14:59:24 UTC (rev 57684)
@@ -227,7 +227,7 @@
}
public:
- void makeOffsets();
+ unsigned makeOffsets();
private:
void raiseIndexError(IStatus* status, unsigned index, const char* method) const
Modified: firebird/trunk/src/include/gen/codetext.h
===================================================================
--- firebird/trunk/src/include/gen/codetext.h 2013-02-21 00:48:25 UTC (rev 57683)
+++ firebird/trunk/src/include/gen/codetext.h 2013-02-21 14:59:24 UTC (rev 57684)
@@ -753,6 +753,7 @@
{"bad_result_set", 335545049},
{"wrong_message_length", 335545050},
{"no_output_format", 335545051},
+ {"item_finish", 335545052},
{"gfix_db_name", 335740929},
{"gfix_invalid_sw", 335740930},
{"gfix_incmp_sw", 335740932},
Modified: firebird/trunk/src/include/gen/iberror.h
===================================================================
--- firebird/trunk/src/include/gen/iberror.h 2013-02-21 00:48:25 UTC (rev 57683)
+++ firebird/trunk/src/include/gen/iberror.h 2013-02-21 14:59:24 UTC (rev 57684)
@@ -787,6 +787,7 @@
const ISC_STATUS isc_bad_result_set = 335545049L;
const ISC_STATUS isc_wrong_message_length = 335545050L;
const ISC_STATUS isc_no_output_format = 335545051L;
+const ISC_STATUS isc_item_finish = 335545052L;
const ISC_STATUS isc_gfix_db_name = 335740929L;
const ISC_STATUS isc_gfix_invalid_sw = 335740930L;
const ISC_STATUS isc_gfix_incmp_sw = 335740932L;
@@ -1231,7 +1232,7 @@
const ISC_STATUS isc_trace_switch_param_miss = 337182758L;
const ISC_STATUS isc_trace_param_act_notcompat = 337182759L;
const ISC_STATUS isc_trace_mandatory_switch_miss = 337182760L;
-const ISC_STATUS isc_err_max = 1175;
+const ISC_STATUS isc_err_max = 1176;
#else /* c definitions */
@@ -1988,6 +1989,7 @@
#define isc_bad_result_set 335545049L
#define isc_wrong_message_length 335545050L
#define isc_no_output_format 335545051L
+#define isc_item_finish 335545052L
#define isc_gfix_db_name 335740929L
#define isc_gfix_invalid_sw 335740930L
#define isc_gfix_incmp_sw 335740932L
@@ -2432,7 +2434,7 @@
#define isc_trace_switch_param_miss 337182758L
#define isc_trace_param_act_notcompat 337182759L
#define isc_trace_mandatory_switch_miss 337182760L
-#define isc_err_max 1175
+#define isc_err_max 1176
#endif
Modified: firebird/trunk/src/include/gen/msgs.h
===================================================================
--- firebird/trunk/src/include/gen/msgs.h 2013-02-21 00:48:25 UTC (rev 57683)
+++ firebird/trunk/src/include/gen/msgs.h 2013-02-21 14:59:24 UTC (rev 57684)
@@ -756,6 +756,7 @@
{335545049, "Invalid resultset interface"}, /* bad_result_set */
{335545050, "Message length passed from user application does not match set of columns"}, /* wrong_message_length */
{335545051, "Resultset is missing output format information"}, /* no_output_format */
+ {335545052, "Message metadata not ready - item @1 is not finished"}, /* item_finish */
{335740929, "data base file name (@1) already given"}, /* gfix_db_name */
{335740930, "invalid switch @1"}, /* gfix_invalid_sw */
{335740932, "incompatible switch combination"}, /* gfix_incmp_sw */
Modified: firebird/trunk/src/include/gen/sql_code.h
===================================================================
--- firebird/trunk/src/include/gen/sql_code.h 2013-02-21 00:48:25 UTC (rev 57683)
+++ firebird/trunk/src/include/gen/sql_code.h 2013-02-21 14:59:24 UTC (rev 57684)
@@ -752,6 +752,7 @@
{335545049, -901}, /* 729 bad_result_set */
{335545050, -804}, /* 730 wrong_message_length */
{335545051, -804}, /* 731 no_output_format */
+ {335545052, -804}, /* 732 item_finish */
{335740929, -901}, /* 1 gfix_db_name */
{335740930, -901}, /* 2 gfix_invalid_sw */
{335740932, -901}, /* 4 gfix_incmp_sw */
Modified: firebird/trunk/src/include/gen/sql_state.h
===================================================================
--- firebird/trunk/src/include/gen/sql_state.h 2013-02-21 00:48:25 UTC (rev 57683)
+++ firebird/trunk/src/include/gen/sql_state.h 2013-02-21 14:59:24 UTC (rev 57684)
@@ -752,6 +752,7 @@
{335545049, "26000"}, // 729 bad_result_set
{335545050, "07000"}, // 730 wrong_message_length
{335545051, "07000"}, // 731 no_output_format
+ {335545052, "HY021"}, // 732 item_finish
{335740929, "00000"}, // 1 gfix_db_name
{335740930, "00000"}, // 2 gfix_invalid_sw
{335740932, "00000"}, // 4 gfix_incmp_sw
Modified: firebird/trunk/src/msgs/facilities2.sql
===================================================================
--- firebird/trunk/src/msgs/facilities2.sql 2013-02-21 00:48:25 UTC (rev 57683)
+++ firebird/trunk/src/msgs/facilities2.sql 2013-02-21 14:59:24 UTC (rev 57684)
@@ -1,7 +1,7 @@
/* MAX_NUMBER is the next number to be used, always one more than the highest message number. */
set bulk_insert INSERT INTO FACILITIES (LAST_CHANGE, FACILITY, FAC_CODE, MAX_NUMBER) VALUES (?, ?, ?, ?);
--
-('2013-02-17 15:32:05', 'JRD', 0, 732)
+('2013-02-21 18:12:38', 'JRD', 0, 733)
('2012-01-23 20:10:30', 'QLI', 1, 532)
('2009-07-16 05:26:11', 'GFIX', 3, 121)
('1996-11-07 13:39:40', 'GPRE', 4, 1)
Modified: firebird/trunk/src/msgs/messages2.sql
===================================================================
--- firebird/trunk/src/msgs/messages2.sql 2013-02-21 00:48:25 UTC (rev 57683)
+++ firebird/trunk/src/msgs/messages2.sql 2013-02-21 14:59:24 UTC (rev 57684)
@@ -839,6 +839,7 @@
('bad_result_set', NULL, 'why.cpp', NULL, 0, 729, NULL, 'Invalid resultset interface', NULL, NULL);
('wrong_message_length', NULL, 'why.cpp', NULL, 0, 730, NULL, 'Message length passed from user application does not match set of columns', NULL, NULL);
('no_output_format', NULL, 'why.cpp', NULL, 0, 731, NULL, 'Resultset is missing output format information', NULL, NULL);
+('item_finish', NULL, 'MsgMetadata.cpp', NULL, 0, 732, NULL, 'Message metadata not ready - item @1 is not finished', NULL, NULL);
-- QLI
(NULL, NULL, NULL, NULL, 1, 0, NULL, 'expected type', NULL, NULL);
(NULL, NULL, NULL, NULL, 1, 1, NULL, 'bad block type', NULL, NULL);
Modified: firebird/trunk/src/msgs/system_errors2.sql
===================================================================
--- firebird/trunk/src/msgs/system_errors2.sql 2013-02-21 00:48:25 UTC (rev 57683)
+++ firebird/trunk/src/msgs/system_errors2.sql 2013-02-21 14:59:24 UTC (rev 57684)
@@ -738,6 +738,7 @@
(-901, '26', '000', 0, 729, 'bad_result_set', NULL, NULL)
(-804, '07', '000', 0, 730, 'wrong_message_length', NULL, NULL)
(-804, '07', '000', 0, 731, 'no_output_format', NULL, NULL)
+(-804, 'HY', '021', 0, 732, 'item_finish', NULL, NULL)
-- GFIX
(-901, '00', '000', 3, 1, 'gfix_db_name', NULL, NULL)
(-901, '00', '000', 3, 2, 'gfix_invalid_sw', NULL, NULL)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2013-02-22 00:32:56
|
Revision: 57689
http://sourceforge.net/p/firebird/code/57689
Author: firebirds
Date: 2013-02-22 00:32:54 +0000 (Fri, 22 Feb 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2013-02-21 23:25:10 UTC (rev 57688)
+++ firebird/trunk/ChangeLog 2013-02-22 00:32:54 UTC (rev 57689)
@@ -1,3 +1,25 @@
+ 2013-02-21 23:25 asfernandes
+ M src/common/MsgMetadata.cpp
+ M src/jrd/jrd.cpp
+ M src/remote/client/interface.cpp
+Misc.
+
+ 2013-02-21 14:59 alexpeshkoff
+ M examples/interfaces/select.cpp
+ M lang_helpers/gds_codes.ftn
+ M lang_helpers/gds_codes.pas
+ M src/common/MsgMetadata.cpp
+ M src/common/MsgMetadata.h
+ M src/include/gen/codetext.h
+ M src/include/gen/iberror.h
+ M src/include/gen/msgs.h
+ M src/include/gen/sql_code.h
+ M src/include/gen/sql_state.h
+ M src/msgs/facilities2.sql
+ M src/msgs/messages2.sql
+ M src/msgs/system_errors2.sql
+Enhancements of IMetadataBuilder
+
2013-02-20 19:41 asfernandes
M src/common/MsgMetadata.cpp
M src/common/MsgMetadata.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2013-02-21 23:25:10 UTC (rev 57688)
+++ firebird/trunk/src/jrd/build_no.h 2013-02-22 00:32:54 UTC (rev 57689)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:30230
+ FORMAL BUILD NUMBER:30232
*/
-#define PRODUCT_VER_STRING "3.0.0.30230"
-#define FILE_VER_STRING "WI-T3.0.0.30230"
-#define LICENSE_VER_STRING "WI-T3.0.0.30230"
-#define FILE_VER_NUMBER 3, 0, 0, 30230
+#define PRODUCT_VER_STRING "3.0.0.30232"
+#define FILE_VER_STRING "WI-T3.0.0.30232"
+#define LICENSE_VER_STRING "WI-T3.0.0.30232"
+#define FILE_VER_NUMBER 3, 0, 0, 30232
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "30230"
+#define FB_BUILD_NO "30232"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2013-02-21 23:25:10 UTC (rev 57688)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2013-02-22 00:32:54 UTC (rev 57689)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=30230
+BuildNum=30232
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2013-02-23 01:04:02
|
Revision: 57692
http://sourceforge.net/p/firebird/code/57692
Author: firebirds
Date: 2013-02-23 01:03:58 +0000 (Sat, 23 Feb 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2013-02-22 07:24:46 UTC (rev 57691)
+++ firebird/trunk/ChangeLog 2013-02-23 01:03:58 UTC (rev 57692)
@@ -1,3 +1,14 @@
+ 2013-02-22 07:24 alexpeshkoff
+ M src/dsql/dsql.cpp
+ M src/include/firebird/Provider.h
+ M src/remote/server/server.cpp
+ M src/yvalve/why.cpp
+Better names for statement's flags
+
+ 2013-02-22 07:01 alexpeshkoff
+ M src/yvalve/MasterImplementation.cpp
+More on IMetadataBuilder
+
2013-02-21 23:25 asfernandes
M src/common/MsgMetadata.cpp
M src/jrd/jrd.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2013-02-22 07:24:46 UTC (rev 57691)
+++ firebird/trunk/src/jrd/build_no.h 2013-02-23 01:03:58 UTC (rev 57692)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:30232
+ FORMAL BUILD NUMBER:30234
*/
-#define PRODUCT_VER_STRING "3.0.0.30232"
-#define FILE_VER_STRING "WI-T3.0.0.30232"
-#define LICENSE_VER_STRING "WI-T3.0.0.30232"
-#define FILE_VER_NUMBER 3, 0, 0, 30232
+#define PRODUCT_VER_STRING "3.0.0.30234"
+#define FILE_VER_STRING "WI-T3.0.0.30234"
+#define LICENSE_VER_STRING "WI-T3.0.0.30234"
+#define FILE_VER_NUMBER 3, 0, 0, 30234
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "30232"
+#define FB_BUILD_NO "30234"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2013-02-22 07:24:46 UTC (rev 57691)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2013-02-23 01:03:58 UTC (rev 57692)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=30232
+BuildNum=30234
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2013-02-24 00:46:04
|
Revision: 57694
http://sourceforge.net/p/firebird/code/57694
Author: firebirds
Date: 2013-02-24 00:45:59 +0000 (Sun, 24 Feb 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2013-02-23 03:09:17 UTC (rev 57693)
+++ firebird/trunk/ChangeLog 2013-02-24 00:45:59 UTC (rev 57694)
@@ -1,3 +1,17 @@
+ 2013-02-23 03:09 asfernandes
+ M src/auth/SecureRemotePassword/Message.h
+ M src/dsql/dsql.cpp
+ M src/dsql/dsql.h
+ M src/dsql/dsql_proto.h
+ M src/include/firebird/Provider.h
+ M src/jrd/EngineInterface.h
+ M src/jrd/jrd.cpp
+ M src/remote/client/interface.cpp
+ M src/remote/server/server.cpp
+ M src/yvalve/YObjects.h
+ M src/yvalve/why.cpp
+Change message buffers type to void*. It adds some casts, but avoid them in users' code.
+
2013-02-22 07:24 alexpeshkoff
M src/dsql/dsql.cpp
M src/include/firebird/Provider.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2013-02-23 03:09:17 UTC (rev 57693)
+++ firebird/trunk/src/jrd/build_no.h 2013-02-24 00:45:59 UTC (rev 57694)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:30234
+ FORMAL BUILD NUMBER:30235
*/
-#define PRODUCT_VER_STRING "3.0.0.30234"
-#define FILE_VER_STRING "WI-T3.0.0.30234"
-#define LICENSE_VER_STRING "WI-T3.0.0.30234"
-#define FILE_VER_NUMBER 3, 0, 0, 30234
+#define PRODUCT_VER_STRING "3.0.0.30235"
+#define FILE_VER_STRING "WI-T3.0.0.30235"
+#define LICENSE_VER_STRING "WI-T3.0.0.30235"
+#define FILE_VER_NUMBER 3, 0, 0, 30235
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "30234"
+#define FB_BUILD_NO "30235"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2013-02-23 03:09:17 UTC (rev 57693)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2013-02-24 00:45:59 UTC (rev 57694)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=30234
+BuildNum=30235
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2013-02-25 00:43:59
|
Revision: 57696
http://sourceforge.net/p/firebird/code/57696
Author: firebirds
Date: 2013-02-25 00:43:57 +0000 (Mon, 25 Feb 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2013-02-24 16:26:00 UTC (rev 57695)
+++ firebird/trunk/ChangeLog 2013-02-25 00:43:57 UTC (rev 57696)
@@ -1,3 +1,10 @@
+ 2013-02-24 16:26 asfernandes
+ M src/dsql/dsql.cpp
+ M src/dsql/dsql.h
+ M src/dsql/dsql_proto.h
+ M src/jrd/jrd.cpp
+Revert change of messages to void* in DSQL internals.
+
2013-02-23 03:09 asfernandes
M src/auth/SecureRemotePassword/Message.h
M src/dsql/dsql.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2013-02-24 16:26:00 UTC (rev 57695)
+++ firebird/trunk/src/jrd/build_no.h 2013-02-25 00:43:57 UTC (rev 57696)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:30235
+ FORMAL BUILD NUMBER:30236
*/
-#define PRODUCT_VER_STRING "3.0.0.30235"
-#define FILE_VER_STRING "WI-T3.0.0.30235"
-#define LICENSE_VER_STRING "WI-T3.0.0.30235"
-#define FILE_VER_NUMBER 3, 0, 0, 30235
+#define PRODUCT_VER_STRING "3.0.0.30236"
+#define FILE_VER_STRING "WI-T3.0.0.30236"
+#define LICENSE_VER_STRING "WI-T3.0.0.30236"
+#define FILE_VER_NUMBER 3, 0, 0, 30236
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "30235"
+#define FB_BUILD_NO "30236"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2013-02-24 16:26:00 UTC (rev 57695)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2013-02-25 00:43:57 UTC (rev 57696)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=30235
+BuildNum=30236
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2013-02-26 00:56:17
|
Revision: 57700
http://sourceforge.net/p/firebird/code/57700
Author: firebirds
Date: 2013-02-26 00:56:11 +0000 (Tue, 26 Feb 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2013-02-25 10:14:15 UTC (rev 57699)
+++ firebird/trunk/ChangeLog 2013-02-26 00:56:11 UTC (rev 57700)
@@ -1,3 +1,12 @@
+ 2013-02-25 10:14 hvlad
+ M src/jrd/sort.cpp
+Ported fix for bug CORE-4051 : Memory leak when sorting big records
+
+ 2013-02-25 02:54 asfernandes
+ M src/jrd/constants.h
+ M src/jrd/fun.epp
+Improvement CORE-4047 - Increase number of input parameters for External Functions (UDFs) to 15.
+
2013-02-24 16:26 asfernandes
M src/dsql/dsql.cpp
M src/dsql/dsql.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2013-02-25 10:14:15 UTC (rev 57699)
+++ firebird/trunk/src/jrd/build_no.h 2013-02-26 00:56:11 UTC (rev 57700)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:30236
+ FORMAL BUILD NUMBER:30238
*/
-#define PRODUCT_VER_STRING "3.0.0.30236"
-#define FILE_VER_STRING "WI-T3.0.0.30236"
-#define LICENSE_VER_STRING "WI-T3.0.0.30236"
-#define FILE_VER_NUMBER 3, 0, 0, 30236
+#define PRODUCT_VER_STRING "3.0.0.30238"
+#define FILE_VER_STRING "WI-T3.0.0.30238"
+#define LICENSE_VER_STRING "WI-T3.0.0.30238"
+#define FILE_VER_NUMBER 3, 0, 0, 30238
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "30236"
+#define FB_BUILD_NO "30238"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2013-02-25 10:14:15 UTC (rev 57699)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2013-02-26 00:56:11 UTC (rev 57700)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=30236
+BuildNum=30238
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2013-03-01 01:44:43
|
Revision: 57711
http://sourceforge.net/p/firebird/code/57711
Author: firebirds
Date: 2013-03-01 01:44:39 +0000 (Fri, 01 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2013-02-28 16:24:31 UTC (rev 57710)
+++ firebird/trunk/ChangeLog 2013-03-01 01:44:39 UTC (rev 57711)
@@ -1,3 +1,34 @@
+ 2013-02-28 16:23 alexpeshkoff
+ M src/jrd/blb.cpp
+ M src/jrd/exe.cpp
+ M src/jrd/tra.cpp
+ M src/jrd/tra.h
+Postfix for CORE-3908: Engine leaks memory and crashes when lot of autonomous transactions have been started and finished
+
+ 2013-02-27 14:49 alexpeshkoff
+ M src/jrd/tra.cpp
+ M src/jrd/tra.h
+Fixed CORE-3908: Engine leaks memory and crashes when lot of autonomous transactions have been started and finished
+
+ 2013-02-26 03:42 asfernandes
+ M src/auth/SecureRemotePassword/Message.h
+ M src/auth/SecureRemotePassword/manage/SrpManagement.cpp
+ M src/auth/SecureRemotePassword/server/SrpServer.cpp
+ M src/common/classes/InternalMessageBuffer.h
+ M src/include/firebird/Provider.h
+ M src/jrd/EngineInterface.h
+ M src/jrd/extds/InternalDS.cpp
+ M src/jrd/jrd.cpp
+ M src/remote/client/BlrFromMessage.cpp
+ M src/remote/client/BlrFromMessage.h
+ M src/remote/client/interface.cpp
+ M src/remote/server/server.cpp
+ M src/yvalve/YObjects.h
+ M src/yvalve/why.cpp
+Remove FbMessage struct from the API.
+This struct lost its main value (group various blr-related properties in a single parameter).
+And since openCursor/fetch already split the message/buffer, it does not make sense anymore to have it.
+
2013-02-25 10:14 hvlad
M src/jrd/sort.cpp
Ported fix for bug CORE-4051 : Memory leak when sorting big records
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2013-02-28 16:24:31 UTC (rev 57710)
+++ firebird/trunk/src/jrd/build_no.h 2013-03-01 01:44:39 UTC (rev 57711)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:30238
+ FORMAL BUILD NUMBER:30241
*/
-#define PRODUCT_VER_STRING "3.0.0.30238"
-#define FILE_VER_STRING "WI-T3.0.0.30238"
-#define LICENSE_VER_STRING "WI-T3.0.0.30238"
-#define FILE_VER_NUMBER 3, 0, 0, 30238
+#define PRODUCT_VER_STRING "3.0.0.30241"
+#define FILE_VER_STRING "WI-T3.0.0.30241"
+#define LICENSE_VER_STRING "WI-T3.0.0.30241"
+#define FILE_VER_NUMBER 3, 0, 0, 30241
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "30238"
+#define FB_BUILD_NO "30241"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2013-02-28 16:24:31 UTC (rev 57710)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2013-03-01 01:44:39 UTC (rev 57711)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=30238
+BuildNum=30241
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2013-03-02 01:03:54
|
Revision: 57717
http://sourceforge.net/p/firebird/code/57717
Author: firebirds
Date: 2013-03-02 01:03:49 +0000 (Sat, 02 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2013-03-01 13:50:59 UTC (rev 57716)
+++ firebird/trunk/ChangeLog 2013-03-02 01:03:49 UTC (rev 57717)
@@ -1,3 +1,13 @@
+ 2013-03-01 13:50 alexpeshkoff
+ M src/isql/InputDevices.cpp
+ M src/isql/InputDevices.h
+ M src/isql/isql.epp
+Postfix for CORE-3990
+
+ 2013-03-01 11:55 alexpeshkoff
+ M src/isql/isql.epp
+Fixed CORE-3990: Fix broken EDIT in isql
+
2013-02-28 16:23 alexpeshkoff
M src/jrd/blb.cpp
M src/jrd/exe.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2013-03-01 13:50:59 UTC (rev 57716)
+++ firebird/trunk/src/jrd/build_no.h 2013-03-02 01:03:49 UTC (rev 57717)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:30241
+ FORMAL BUILD NUMBER:30243
*/
-#define PRODUCT_VER_STRING "3.0.0.30241"
-#define FILE_VER_STRING "WI-T3.0.0.30241"
-#define LICENSE_VER_STRING "WI-T3.0.0.30241"
-#define FILE_VER_NUMBER 3, 0, 0, 30241
+#define PRODUCT_VER_STRING "3.0.0.30243"
+#define FILE_VER_STRING "WI-T3.0.0.30243"
+#define LICENSE_VER_STRING "WI-T3.0.0.30243"
+#define FILE_VER_NUMBER 3, 0, 0, 30243
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "30241"
+#define FB_BUILD_NO "30243"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2013-03-01 13:50:59 UTC (rev 57716)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2013-03-02 01:03:49 UTC (rev 57717)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=30241
+BuildNum=30243
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <asf...@us...> - 2013-03-04 01:43:01
|
Revision: 57719
http://sourceforge.net/p/firebird/code/57719
Author: asfernandes
Date: 2013-03-04 01:42:58 +0000 (Mon, 04 Mar 2013)
Log Message:
-----------
Fixing FB_MESSAGE macro and external functions and procedures.
Isolate external routines them from request-based ones.
Modified Paths:
--------------
firebird/trunk/examples/udr/UdrCppExample.cpp
firebird/trunk/src/dsql/ExprNodes.cpp
firebird/trunk/src/dsql/StmtNodes.cpp
firebird/trunk/src/include/firebird/ExternalEngine.h
firebird/trunk/src/include/firebird/Message.h
firebird/trunk/src/include/firebird/UdrCppEngine.h
firebird/trunk/src/include/firebird/UdrEngine.h
firebird/trunk/src/jrd/ExtEngineManager.cpp
firebird/trunk/src/jrd/ExtEngineManager.h
firebird/trunk/src/jrd/Function.epp
firebird/trunk/src/jrd/cmp.cpp
firebird/trunk/src/jrd/dfw.epp
firebird/trunk/src/jrd/exe.cpp
firebird/trunk/src/jrd/exe.h
firebird/trunk/src/jrd/jrd.h
firebird/trunk/src/jrd/met.epp
firebird/trunk/src/jrd/met_proto.h
firebird/trunk/src/jrd/recsrc/ProcedureScan.cpp
firebird/trunk/src/jrd/recsrc/RecordSource.h
firebird/trunk/src/plugins/udr_engine/UdrEngine.cpp
Modified: firebird/trunk/examples/udr/UdrCppExample.cpp
===================================================================
--- firebird/trunk/examples/udr/UdrCppExample.cpp 2013-03-02 02:02:11 UTC (rev 57718)
+++ firebird/trunk/examples/udr/UdrCppExample.cpp 2013-03-04 01:42:58 UTC (rev 57719)
@@ -117,451 +117,6 @@
//------------------------------------------------------------------------------
-class MessageImpl;
-
-class ParamDescBase
-{
-public:
- ParamDescBase()
- : pos(0),
- nullPos(0)
- {
- }
-
- unsigned pos;
- unsigned nullPos;
-};
-
-template <class T>
-class ParamDesc : public ParamDescBase
-{
-};
-
-template <>
-class ParamDesc<void*> : public ParamDescBase
-{
-public:
- ParamDesc(MessageImpl& message, const Firebird::IParametersMetadata* aParams);
-
- unsigned align(unsigned size, unsigned aIndex)
- {
- index = aIndex;
-
- AutoDispose<IStatus> status(master->getStatus());
-
- switch ((type = params->getType(status, index)))
- {
- case SQL_SHORT:
- size = FB_ALIGN(size, sizeof(ISC_SHORT));
- break;
-
- case SQL_LONG:
- size = FB_ALIGN(size, sizeof(ISC_LONG));
- break;
-
- case SQL_INT64:
- size = FB_ALIGN(size, sizeof(ISC_INT64));
- break;
-
- case SQL_FLOAT:
- size = FB_ALIGN(size, sizeof(float));
- break;
-
- case SQL_DOUBLE:
- size = FB_ALIGN(size, sizeof(double));
- break;
-
- case SQL_BLOB:
- size = FB_ALIGN(size, sizeof(ISC_QUAD));
- break;
-
- case SQL_TEXT:
- case SQL_VARYING:
- size = FB_ALIGN(size, sizeof(ISC_USHORT));
- break;
-
- default:
- assert(false);
- break;
- }
-
- return size;
- }
-
- unsigned addBlr(ISC_UCHAR*& blr)
- {
- AutoDispose<IStatus> status(master->getStatus());
- unsigned ret;
-
- switch (type)
- {
- case SQL_SHORT:
- {
- unsigned scale = params->getScale(status, index);
- *blr++ = blr_short;
- *blr++ = scale;
- ret = sizeof(ISC_SHORT);
- break;
- }
-
- case SQL_LONG:
- {
- unsigned scale = params->getScale(status, index);
- *blr++ = blr_long;
- *blr++ = scale;
- ret = sizeof(ISC_LONG);
- break;
- }
-
- case SQL_INT64:
- {
- unsigned scale = params->getScale(status, index);
- *blr++ = blr_int64;
- *blr++ = scale;
- ret = sizeof(ISC_INT64);
- break;
- }
-
- case SQL_FLOAT:
- *blr++ = blr_float;
- ret = sizeof(float);
- break;
-
- case SQL_DOUBLE:
- *blr++ = blr_double;
- ret = sizeof(double);
- break;
-
- case SQL_BLOB:
- *blr++ = blr_blob2;
- *blr++ = 0;
- *blr++ = 0;
- *blr++ = 0;
- *blr++ = 0;
- ret = sizeof(ISC_QUAD);
- break;
-
- case SQL_TEXT:
- case SQL_VARYING:
- {
- unsigned length = params->getLength(status, index);
- *blr++ = blr_varying;
- *blr++ = length & 0xFF;
- *blr++ = (length >> 8) & 0xFF;
- ret = sizeof(ISC_USHORT) + length;
- break;
- }
-
- default:
- assert(false);
- ret = 0;
- break;
- }
-
- return ret;
- }
-
- unsigned getType() const
- {
- return type;
- }
-
-private:
- const Firebird::IParametersMetadata* params;
- unsigned type;
- unsigned index;
-};
-
-class MessageImpl : public Firebird::FbMessage
-{
-public:
- MessageImpl(unsigned aItemCount, void* aBuffer = NULL)
- : itemCount(aItemCount * 2),
- freeBuffer(!aBuffer),
- items(0)
- {
- static const ISC_UCHAR HEADER[] = {
- blr_version5,
- blr_begin,
- blr_message, 0, 0, 0
- };
-
- blrLength = 0;
- blr = blrPos = new ISC_UCHAR[sizeof(HEADER) + 10 * itemCount + 2];
- bufferLength = 0;
- buffer = static_cast<ISC_UCHAR*>(aBuffer);
-
- memcpy(blrPos, HEADER, sizeof(HEADER));
- blrPos += sizeof(HEADER);
- }
-
- ~MessageImpl()
- {
- if (freeBuffer && buffer)
- delete [] buffer;
-
- if (blr)
- delete [] blr;
- }
-
- template <typename T>
- void add(ParamDesc<T>& paramDesc)
- {
- if (items >= itemCount)
- return; // return an error, this is already constructed message
-
- bufferLength = paramDesc.align(bufferLength, items / 2);
- paramDesc.pos = bufferLength;
- bufferLength += paramDesc.addBlr(blrPos);
-
- bufferLength = FB_ALIGN(bufferLength, sizeof(ISC_SHORT));
- paramDesc.nullPos = bufferLength;
- bufferLength += sizeof(ISC_SHORT);
-
- *blrPos++ = blr_short;
- *blrPos++ = 0;
-
- items += 2;
-
- if (items == itemCount)
- {
- *blrPos++ = blr_end;
- *blrPos++ = blr_eoc;
-
- blrLength = blrPos - blr;
-
- ISC_UCHAR* blrStart = blrPos - blrLength;
- blrStart[4] = items & 0xFF;
- blrStart[5] = (items >> 8) & 0xFF;
-
- if (!buffer)
- {
- buffer = new ISC_UCHAR[bufferLength];
- memset(buffer, 0, bufferLength);
- }
- }
- }
-
- bool isNull(const ParamDescBase& index)
- {
- return *(ISC_SHORT*) (buffer + index.nullPos);
- }
-
- void setNull(const ParamDescBase& index, bool null)
- {
- *(ISC_SHORT*) (buffer + index.nullPos) = (ISC_SHORT) null;
- }
-
- template <typename T> T& operator [](const ParamDesc<T>& index)
- {
- return *(T*) (buffer + index.pos);
- }
-
- void* operator [](const ParamDesc<void*>& index)
- {
- return buffer + index.pos;
- }
-
-public:
- unsigned itemCount;
- bool freeBuffer;
- unsigned items;
- ISC_UCHAR* blrPos;
-};
-
-template <>
-class ParamDesc<ISC_SHORT> : public ParamDescBase
-{
-public:
- ParamDesc(MessageImpl& message, ISC_UCHAR aScale = 0)
- : scale(aScale)
- {
- message.add(*this);
- }
-
- unsigned align(unsigned size, unsigned /*index*/)
- {
- return FB_ALIGN(size, sizeof(ISC_SHORT));
- }
-
- unsigned addBlr(ISC_UCHAR*& blr)
- {
- *blr++ = blr_short;
- *blr++ = scale;
- return sizeof(ISC_SHORT);
- }
-
-private:
- ISC_UCHAR scale;
-};
-
-template <>
-class ParamDesc<ISC_LONG> : public ParamDescBase
-{
-public:
- ParamDesc(MessageImpl& message, ISC_UCHAR aScale = 0)
- : scale(aScale)
- {
- message.add(*this);
- }
-
- unsigned align(unsigned size, unsigned /*index*/)
- {
- return FB_ALIGN(size, sizeof(ISC_LONG));
- }
-
- unsigned addBlr(ISC_UCHAR*& blr)
- {
- *blr++ = blr_long;
- *blr++ = scale;
- return sizeof(ISC_LONG);
- }
-
-private:
- ISC_UCHAR scale;
-};
-
-template <>
-class ParamDesc<ISC_INT64> : public ParamDescBase
-{
-public:
- ParamDesc(MessageImpl& message, ISC_UCHAR aScale = 0)
- : scale(aScale)
- {
- message.add(*this);
- }
-
- unsigned align(unsigned size, unsigned /*index*/)
- {
- return FB_ALIGN(size, sizeof(ISC_INT64));
- }
-
- unsigned addBlr(ISC_UCHAR*& blr)
- {
- *blr++ = blr_int64;
- *blr++ = scale;
- return sizeof(ISC_INT64);
- }
-
-private:
- ISC_UCHAR scale;
-};
-
-template <>
-class ParamDesc<float> : public ParamDescBase
-{
-public:
- ParamDesc(MessageImpl& message)
- {
- message.add(*this);
- }
-
- unsigned align(unsigned size, unsigned /*index*/)
- {
- return FB_ALIGN(size, sizeof(float));
- }
-
- unsigned addBlr(ISC_UCHAR*& blr)
- {
- *blr++ = blr_float;
- return sizeof(float);
- }
-};
-
-template <>
-class ParamDesc<double> : public ParamDescBase
-{
-public:
- ParamDesc(MessageImpl& message)
- {
- message.add(*this);
- }
-
- unsigned align(unsigned size, unsigned /*index*/)
- {
- return FB_ALIGN(size, sizeof(double));
- }
-
- unsigned addBlr(ISC_UCHAR*& blr)
- {
- *blr++ = blr_double;
- return sizeof(double);
- }
-};
-
-template <>
-class ParamDesc<ISC_QUAD> : public ParamDescBase
-{
-public:
- ParamDesc(MessageImpl& message)
- {
- message.add(*this);
- }
-
- unsigned align(unsigned size, unsigned /*index*/)
- {
- return FB_ALIGN(size, sizeof(ISC_QUAD));
- }
-
- unsigned addBlr(ISC_UCHAR*& blr)
- {
- *blr++ = blr_blob2;
- *blr++ = 0;
- *blr++ = 0;
- *blr++ = 0;
- *blr++ = 0;
- return sizeof(ISC_QUAD);
- }
-};
-
-struct FbString
-{
- ISC_USHORT length;
- char str[1];
-};
-
-template <>
-class ParamDesc<FbString> : public ParamDescBase
-{
-public:
- ParamDesc(MessageImpl& message, ISC_USHORT aLength)
- : length(aLength)
- {
- message.add(*this);
- }
-
- unsigned align(unsigned size, unsigned /*index*/)
- {
- return FB_ALIGN(size, sizeof(ISC_USHORT));
- }
-
- unsigned addBlr(ISC_UCHAR*& blr)
- {
- *blr++ = blr_varying;
- *blr++ = length & 0xFF;
- *blr++ = (length >> 8) & 0xFF;
- return sizeof(ISC_USHORT) + length;
- }
-
-private:
- ISC_USHORT length;
-};
-
-//// TODO: boolean, date, time, timestamp
-
-//--------------------------------------
-
-inline ParamDesc<void*>::ParamDesc(MessageImpl& message, const Firebird::IParametersMetadata* aParams)
- : params(aParams),
- type(0)
-{
- message.add(*this);
-}
-
-
-//------------------------------------------------------------------------------
-
-
/***
create function wait_event (
event_name varchar(31) character set utf8 not null
@@ -614,37 +169,65 @@
engine udr;
***/
FB_UDR_BEGIN_FUNCTION(sum_args)
+ // This function requires the INTEGER parameters and return value, otherwise it will crash.
+ // Metadata is inspected dynamically (in execute). This is not the fastest method.
FB_UDR_EXECUTE_DYNAMIC_FUNCTION
{
- ///AutoDispose<IStatus> status(master->getStatus());
+ // Get input and output metadata.
- const IParametersMetadata* params = metadata->getInputParameters(status);
+ IMessageMetadata* inMetadata = metadata->getInputMetadata(status);
StatusException::check(status->get());
- unsigned count = params->getCount(status);
+ IMessageMetadata* outMetadata = metadata->getOutputMetadata(status);
StatusException::check(status->get());
- MessageImpl inMessage(count, in);
+ // Get count of input parameters.
+ unsigned inCount = inMetadata->getCount(status);
+ StatusException::check(status->get());
- MessageImpl outMessage(1, out);
- ParamDesc<ISC_LONG> retDesc(outMessage);
+ // Get null offset of the return value.
- int ret = 0;
+ unsigned outNullOffset = outMetadata->getNullOffset(status, 0);
+ StatusException::check(status->get());
- for (unsigned i = 0; i < count; ++i)
+ // By default, the return value is NOT NULL.
+ ///*(ISC_SHORT*) (out + outNullOffset) = FB_FALSE;
+
+ // Get offset of the return value.
+ unsigned outOffset = outMetadata->getOffset(status, 0);
+ StatusException::check(status->get());
+
+ // Get a reference to the return value.
+ ISC_LONG& ret = *(ISC_LONG*) (out + outOffset);
+
+ // By default, the return value is 0.
+ ///ret = 0;
+
+ for (unsigned i = 0; i < inCount; ++i)
{
- ParamDesc<ISC_LONG> numDesc(inMessage);
+ // Get null offset of the i-th input parameter.
+ unsigned nullOffset = inMetadata->getNullOffset(status, i);
+ StatusException::check(status->get());
- if (inMessage.isNull(numDesc))
+ // If the i-th input parameter is NULL, set the output to NULL and finish.
+ if (*(ISC_SHORT*) (in + nullOffset))
{
- outMessage.setNull(retDesc, true);
- return;
+ *(ISC_SHORT*) (out + outNullOffset) = FB_TRUE;
+ // Important: we should not return without release the metadata objects.
+ break;
}
- else
- ret += inMessage[numDesc];
+
+ // Get the offset of the i-th input parameter.
+ unsigned offset = inMetadata->getOffset(status, i);
+ StatusException::check(status->get());
+
+ // Read the i-th input parameter value and sum it in the referenced return value.
+ ret += *(ISC_LONG*) (in + offset);
}
- outMessage[retDesc] = ret;
+ // Release refcounted objects.
+ inMetadata->release();
+ outMetadata->release();
}
FB_UDR_END_FUNCTION
@@ -660,29 +243,61 @@
engine udr;
***/
FB_UDR_BEGIN_PROCEDURE(gen_rows)
- FB_UDR_EXECUTE_DYNAMIC_PROCEDURE
+ // Procedure variables.
+ unsigned inOffsetStart, inOffsetEnd, outOffset;
+
+ /*** Procedure destructor.
+ ~FB_UDR_PROCEDURE(gen_rows)()
{
- MessageImpl inMessage(2, in);
- ParamDesc<ISC_LONG> startDesc(inMessage);
- ParamDesc<ISC_LONG> endDesc(inMessage);
+ }
+ ***/
- counter = inMessage[startDesc];
- end = inMessage[endDesc];
+ // Get offsets once per procedure.
+ FB_UDR_INITIALIZE
+ {
+ IMessageMetadata* inMetadata = metadata->getInputMetadata(status);
+ StatusException::check(status->get());
+
+ inOffsetStart = inMetadata->getOffset(status, 0);
+ StatusException::check(status->get());
+
+ inOffsetEnd = inMetadata->getOffset(status, 1);
+ StatusException::check(status->get());
+
+ inMetadata->release();
+
+ IMessageMetadata* outMetadata = metadata->getOutputMetadata(status);
+ StatusException::check(status->get());
+
+ outOffset = outMetadata->getOffset(status, 0);
+ StatusException::check(status->get());
+
+ outMetadata->release();
}
+ FB_UDR_EXECUTE_DYNAMIC_PROCEDURE
+ {
+ counter = *(ISC_LONG*) (in + procedure->inOffsetStart);
+ end = *(ISC_LONG*) (in + procedure->inOffsetEnd);
+ }
+
FB_UDR_FETCH_PROCEDURE
{
if (counter > end)
return false;
- MessageImpl outMessage(1, out);
- ParamDesc<ISC_LONG> retDesc(outMessage);
+ *(ISC_LONG*) (out + procedure->outOffset) = counter++;
- outMessage[retDesc] = counter++;
-
return true;
}
+ /*** ResultSet destructor.
+ ~ResultSet()
+ {
+ }
+ ***/
+
+ // ResultSet variables.
ISC_LONG counter;
ISC_LONG end;
FB_UDR_END_PROCEDURE
@@ -795,6 +410,7 @@
FB_UDR_END_PROCEDURE
+#if 0 //// FIXME:
/***
Sample usage:
@@ -1234,3 +850,4 @@
XSQLDA* inSqlDa;
isc_stmt_handle stmtHandle;
FB_UDR_END_TRIGGER
+#endif
Modified: firebird/trunk/src/dsql/ExprNodes.cpp
===================================================================
--- firebird/trunk/src/dsql/ExprNodes.cpp 2013-03-02 02:02:11 UTC (rev 57718)
+++ firebird/trunk/src/dsql/ExprNodes.cpp 2013-03-04 01:42:58 UTC (rev 57719)
@@ -10657,7 +10657,11 @@
CMP_impure(csb, function->getInputFormat()->fmt_length);
}
- fb_assert(function->getOutputFormat()->fmt_count == 3);
+ if (function->fun_external)
+ fb_assert(function->getOutputFormat()->fmt_count == 2);
+ else
+ fb_assert(function->getOutputFormat()->fmt_count == 3);
+
fb_assert(function->getOutputFormat()->fmt_length);
CMP_impure(csb, function->getOutputFormat()->fmt_length);
}
@@ -10745,6 +10749,13 @@
UCHAR* const inMsg = (UCHAR*) FB_ALIGN((IPTR) impure + sizeof(impure_value), FB_ALIGNMENT);
UCHAR* const outMsg = (UCHAR*) FB_ALIGN((IPTR) inMsg + inMsgLength, FB_ALIGNMENT);
+ if (function->fun_external)
+ {
+ // We must clear messages of external functions.
+ memset(inMsg, 0, inMsgLength);
+ memset(outMsg, 0, outMsgLength);
+ }
+
if (function->fun_inputs != 0)
{
const NestConst<ValueExprNode>* const sourceEnd = args->items.end();
@@ -10772,32 +10783,14 @@
}
}
- jrd_req* funcRequest = function->getStatement()->findRequest(tdbb);
+ jrd_tra* transaction = request->req_transaction;
+ const SLONG savePointNumber = transaction->tra_save_point ?
+ transaction->tra_save_point->sav_number : 0;
- // trace function execution start
- //// TODO: TraceProcExecute trace(tdbb, funcRequest, request, inputTargets);
-
- // Catch errors so we can unwind cleanly.
-
- try
+ if (function->fun_external)
{
- Jrd::ContextPoolHolder context(tdbb, funcRequest->req_pool); // Save the old pool.
+ function->fun_external->execute(tdbb, inMsg, outMsg);
- jrd_tra* transaction = request->req_transaction;
- const SLONG savePointNumber = transaction->tra_save_point ?
- transaction->tra_save_point->sav_number : 0;
-
- funcRequest->req_timestamp = request->req_timestamp;
-
- EXE_start(tdbb, funcRequest, transaction);
-
- if (inMsgLength != 0)
- EXE_send(tdbb, funcRequest, 0, inMsgLength, inMsg);
-
- EXE_receive(tdbb, funcRequest, 1, outMsgLength, outMsg);
-
- // Clean up all savepoints started during execution of the procedure.
-
if (transaction != attachment->getSysTransaction())
{
for (const Savepoint* savePoint = transaction->tra_save_point;
@@ -10808,30 +10801,65 @@
}
}
}
- catch (const Exception& ex)
+ else
{
- /*** TODO:
- const bool noPriv = (ex.stuff_exception(tdbb->tdbb_status_vector) == isc_no_priv);
- trace.finish(false, noPriv ? res_unauthorized : res_failed);
- ***/
+ jrd_req* funcRequest = function->getStatement()->findRequest(tdbb);
+ // trace function execution start
+ //// TODO: TraceProcExecute trace(tdbb, funcRequest, request, inputTargets);
+
+ // Catch errors so we can unwind cleanly.
+
+ try
+ {
+ Jrd::ContextPoolHolder context(tdbb, funcRequest->req_pool); // Save the old pool.
+
+ funcRequest->req_timestamp = request->req_timestamp;
+
+ EXE_start(tdbb, funcRequest, transaction);
+
+ if (inMsgLength != 0)
+ EXE_send(tdbb, funcRequest, 0, inMsgLength, inMsg);
+
+ EXE_receive(tdbb, funcRequest, 1, outMsgLength, outMsg);
+
+ // Clean up all savepoints started during execution of the procedure.
+
+ if (transaction != attachment->getSysTransaction())
+ {
+ for (const Savepoint* savePoint = transaction->tra_save_point;
+ savePoint && savePointNumber < savePoint->sav_number;
+ savePoint = transaction->tra_save_point)
+ {
+ VIO_verb_cleanup(tdbb, transaction);
+ }
+ }
+ }
+ catch (const Exception& ex)
+ {
+ /*** TODO:
+ const bool noPriv = (ex.stuff_exception(tdbb->tdbb_status_vector) == isc_no_priv);
+ trace.finish(false, noPriv ? res_unauthorized : res_failed);
+ ***/
+
+ tdbb->setRequest(request);
+ EXE_unwind(tdbb, funcRequest);
+ funcRequest->req_attachment = NULL;
+ funcRequest->req_flags &= ~(req_in_use | req_proc_fetch);
+ funcRequest->req_timestamp.invalidate();
+ throw;
+ }
+
+ //// TODO: trace.finish(false, res_successful);
+
+ EXE_unwind(tdbb, funcRequest);
tdbb->setRequest(request);
- EXE_unwind(tdbb, funcRequest);
+
funcRequest->req_attachment = NULL;
funcRequest->req_flags &= ~(req_in_use | req_proc_fetch);
funcRequest->req_timestamp.invalidate();
- throw;
}
- //// TODO: trace.finish(false, res_successful);
-
- EXE_unwind(tdbb, funcRequest);
- tdbb->setRequest(request);
-
- funcRequest->req_attachment = NULL;
- funcRequest->req_flags &= ~(req_in_use | req_proc_fetch);
- funcRequest->req_timestamp.invalidate();
-
const dsc* fmtDesc = function->getOutputFormat()->fmt_desc.begin();
const ULONG nullOffset = (IPTR) fmtDesc[1].dsc_address;
SSHORT* const nullPtr = reinterpret_cast<SSHORT*>(outMsg + nullOffset);
Modified: firebird/trunk/src/dsql/StmtNodes.cpp
===================================================================
--- firebird/trunk/src/dsql/StmtNodes.cpp 2013-03-02 02:02:11 UTC (rev 57718)
+++ firebird/trunk/src/dsql/StmtNodes.cpp 2013-03-04 01:42:58 UTC (rev 57719)
@@ -1564,7 +1564,7 @@
PAR_error(csb, Arg::Gds(isc_prc_out_param_mismatch) << name);
Format* format = Format::newFormat(pool, paramArray.getCount());
- subProc->prc_format = format;
+ subProc->prc_record_format = format;
format->fmt_length = FLAG_BYTES(format->fmt_count);
for (USHORT i = 0; i < count - 1u; i += 2u)
@@ -1754,7 +1754,7 @@
}
fb_assert(subCsb->csb_rpt.getCount() >= 2);
- routine->prc_output_msg = subCsb->csb_rpt[1].csb_message;
+ ///routine->prc_output_msg = subCsb->csb_rpt[1].csb_message;
return this;
}
@@ -2717,16 +2717,6 @@
{
Jrd::Attachment* attachment = tdbb->getAttachment();
- if (inputSources)
- {
- const NestConst<ValueExprNode>* const sourceEnd = inputSources->items.end();
- const NestConst<ValueExprNode>* sourcePtr = inputSources->items.begin();
- const NestConst<ValueExprNode>* targetPtr = inputTargets->items.begin();
-
- for (; sourcePtr != sourceEnd; ++sourcePtr, ++targetPtr)
- EXE_assignment(tdbb, *sourcePtr, *targetPtr);
- }
-
ULONG inMsgLength = 0;
UCHAR* inMsg = NULL;
@@ -2739,6 +2729,7 @@
const Format* format = NULL;
ULONG outMsgLength = 0;
UCHAR* outMsg = NULL;
+ Array<UCHAR> tempBuffer;
if (outputMessage)
{
@@ -2746,41 +2737,44 @@
outMsgLength = format->fmt_length;
outMsg = request->getImpure<UCHAR>(outputMessage->impureOffset);
}
-
- jrd_req* procRequest = procedure->getStatement()->findRequest(tdbb);
-
- // trace procedure execution start
- TraceProcExecute trace(tdbb, procRequest, request, inputTargets);
-
- Array<UCHAR> tempBuffer;
-
- if (!outputMessage)
+ else
{
- format = procedure->prc_output_msg->format;
+ ///format = procedure->prc_output_msg->format;
+ format = procedure->getOutputFormat();
outMsgLength = format->fmt_length;
outMsg = tempBuffer.getBuffer(outMsgLength + FB_DOUBLE_ALIGN - 1);
outMsg = (UCHAR*) FB_ALIGN((U_IPTR) outMsg, FB_DOUBLE_ALIGN);
}
- // Catch errors so we can unwind cleanly.
+ if (procedure->getExternal())
+ {
+ // We must clear messages of external procedures.
+ memset(inMsg, 0, inMsgLength);
+ memset(outMsg, 0, outMsgLength);
+ }
- try
+ if (inputSources)
{
- Jrd::ContextPoolHolder context(tdbb, procRequest->req_pool); // Save the old pool.
+ const NestConst<ValueExprNode>* const sourceEnd = inputSources->items.end();
+ const NestConst<ValueExprNode>* sourcePtr = inputSources->items.begin();
+ const NestConst<ValueExprNode>* targetPtr = inputTargets->items.begin();
- jrd_tra* transaction = request->req_transaction;
- const SLONG savePointNumber = transaction->tra_save_point ?
- transaction->tra_save_point->sav_number : 0;
+ for (; sourcePtr != sourceEnd; ++sourcePtr, ++targetPtr)
+ EXE_assignment(tdbb, *sourcePtr, *targetPtr);
+ }
- procRequest->req_timestamp = request->req_timestamp;
+ jrd_tra* transaction = request->req_transaction;
+ const SLONG savePointNumber = transaction->tra_save_point ?
+ transaction->tra_save_point->sav_number : 0;
- EXE_start(tdbb, procRequest, transaction);
+ if (procedure->getExternal())
+ {
+ { // scope
+ AutoPtr<ExtEngineManager::ResultSet> resultSet(procedure->getExternal()->open(
+ tdbb, inMsg, outMsg));
+ resultSet->fetch(tdbb);
+ }
- if (inputMessage)
- EXE_send(tdbb, procRequest, 0, inMsgLength, inMsg);
-
- EXE_receive(tdbb, procRequest, 1, outMsgLength, outMsg);
-
// Clean up all savepoints started during execution of the procedure.
if (transaction != attachment->getSysTransaction())
@@ -2793,25 +2787,64 @@
}
}
}
- catch (const Exception& ex)
+ else
{
- const bool noPriv = (ex.stuff_exception(tdbb->tdbb_status_vector) == isc_no_priv);
- trace.finish(false, noPriv ? res_unauthorized : res_failed);
+ jrd_req* procRequest = procedure->getStatement()->findRequest(tdbb);
+ // trace procedure execution start
+ TraceProcExecute trace(tdbb, procRequest, request, inputTargets);
+
+ // Catch errors so we can unwind cleanly.
+
+ try
+ {
+ Jrd::ContextPoolHolder context(tdbb, procRequest->req_pool); // Save the old pool.
+
+ procRequest->req_timestamp = request->req_timestamp;
+
+ EXE_start(tdbb, procRequest, transaction);
+
+ if (inputMessage)
+ EXE_send(tdbb, procRequest, 0, inMsgLength, inMsg);
+
+ EXE_receive(tdbb, procRequest, 1, outMsgLength, outMsg);
+
+ // Clean up all savepoints started during execution of the procedure.
+
+ if (transaction != attachment->getSysTransaction())
+ {
+ for (const Savepoint* savePoint = transaction->tra_save_point;
+ savePoint && savePointNumber < savePoint->sav_number;
+ savePoint = transaction->tra_save_point)
+ {
+ VIO_verb_cleanup(tdbb, transaction);
+ }
+ }
+ }
+ catch (const Exception& ex)
+ {
+ const bool noPriv = (ex.stuff_exception(tdbb->tdbb_status_vector) == isc_no_priv);
+ trace.finish(false, noPriv ? res_unauthorized : res_failed);
+
+ tdbb->setRequest(request);
+ EXE_unwind(tdbb, procRequest);
+ procRequest->req_attachment = NULL;
+ procRequest->req_flags &= ~(req_in_use | req_proc_fetch);
+ procRequest->req_timestamp.invalidate();
+ throw;
+ }
+
+ // trace procedure execution finish
+ trace.finish(false, res_successful);
+
+ EXE_unwind(tdbb, procRequest);
tdbb->setRequest(request);
- EXE_unwind(tdbb, procRequest);
+
procRequest->req_attachment = NULL;
procRequest->req_flags &= ~(req_in_use | req_proc_fetch);
procRequest->req_timestamp.invalidate();
- throw;
}
- // trace procedure execution finish
- trace.finish(false, res_successful);
-
- EXE_unwind(tdbb, procRequest);
- tdbb->setRequest(request);
-
if (outputSources)
{
const NestConst<ValueExprNode>* const sourceEnd = outputSources->items.end();
@@ -2821,10 +2854,6 @@
for (; sourcePtr != sourceEnd; ++sourcePtr, ++targetPtr)
EXE_assignment(tdbb, *sourcePtr, *targetPtr);
}
-
- procRequest->req_attachment = NULL;
- procRequest->req_flags &= ~(req_in_use | req_proc_fetch);
- procRequest->req_timestamp.invalidate();
}
Modified: firebird/trunk/src/include/firebird/ExternalEngine.h
===================================================================
--- firebird/trunk/src/include/firebird/ExternalEngine.h 2013-03-02 02:02:11 UTC (rev 57718)
+++ firebird/trunk/src/include/firebird/ExternalEngine.h 2013-03-04 01:42:58 UTC (rev 57719)
@@ -38,14 +38,6 @@
class ExternalEngine;
-class IRoutineMessage : public IVersioned
-{
-public:
- virtual void FB_CARG set(const unsigned char* blr, unsigned blrLength, unsigned bufferLength) = 0;
-};
-#define FB_ROUTINE_MESSAGE_VERSION (FB_VERSIONED_VERSION + 1)
-
-
class ITriggerMessage : public IVersioned
{
public:
@@ -205,9 +197,11 @@
// Called when engine wants to load object in the cache. Objects are disposed when
// going out of the cache.
virtual ExternalFunction* FB_CALL makeFunction(IStatus* status, ExternalContext* context,
- const IRoutineMetadata* metadata, IRoutineMessage* inMsg, IRoutineMessage* outMsg) = 0;
+ const IRoutineMetadata* metadata,
+ IMetadataBuilder* inBuilder, IMetadataBuilder* outBuilder) = 0;
virtual ExternalProcedure* FB_CALL makeProcedure(IStatus* status, ExternalContext* context,
- const IRoutineMetadata* metadata, IRoutineMessage* inMsg, IRoutineMessage* outMsg) = 0;
+ const IRoutineMetadata* metadata,
+ IMetadataBuilder* inBuilder, IMetadataBuilder* outBuilder) = 0;
virtual ExternalTrigger* FB_CALL makeTrigger(IStatus* status, ExternalContext* context,
const IRoutineMetadata* metadata, ITriggerMessage* triggerMsg) = 0;
};
Modified: firebird/trunk/src/include/firebird/Message.h
===================================================================
--- firebird/trunk/src/include/firebird/Message.h 2013-03-02 02:02:11 UTC (rev 57718)
+++ firebird/trunk/src/include/firebird/Message.h 2013-03-04 01:42:58 UTC (rev 57719)
@@ -24,16 +24,14 @@
#define FIREBIRD_MESSAGE_H
#include "ibase.h"
-#include "firebird/impl/boost/preprocessor/seq/for_each_i.hpp"
+#include "./Provider.h"
+#include "./impl/boost/preprocessor/seq/for_each_i.hpp"
#include <assert.h>
#include <time.h>
#include <string.h>
#define FB_MESSAGE(name, fields) \
- struct name \
- { \
- FB_MESSAGE_I(name, 2, FB_BOOST_PP_CAT(FB_MESSAGE_X fields, 0)) \
- }
+ FB_MESSAGE_I(name, 2, FB_BOOST_PP_CAT(FB_MESSAGE_X fields, 0))
#define FB_MESSAGE_X(x, y) ((x, y)) FB_MESSAGE_Y
#define FB_MESSAGE_Y(x, y) ((x, y)) FB_MESSAGE_X
@@ -53,61 +51,136 @@
#define FB_TRIGGER_MESSAGE_Y0
#define FB_MESSAGE_I(name, size, fields) \
- static const unsigned char* getBlr(unsigned* length) \
+ struct name \
{ \
- static const unsigned char blr[] = { \
- blr_version5, \
- blr_begin, \
- blr_message, 0, \
- (2 * (FB_BOOST_PP_SEQ_SIZE(fields))) & 0xFF, \
- (2 * (FB_BOOST_PP_SEQ_SIZE(fields))) >> 8, \
- FB_BOOST_PP_SEQ_FOR_EACH_I(FB_MESSAGE_BLR, size, fields) \
- blr_end, \
- blr_eoc \
+ struct Type \
+ { \
+ FB_BOOST_PP_SEQ_FOR_EACH_I(FB_MESSAGE_FIELD, size, fields) \
}; \
- *length = sizeof(blr); \
- return blr; \
- } \
- \
- static unsigned getSize() \
- { \
- return (unsigned)(size_t) (&((name*) 0)->FB_BOOST_PP_CAT( \
- FB_BOOST_PP_TUPLE_ELEM(size, 1, \
- FB_BOOST_PP_SEQ_ELEM(FB_BOOST_PP_DEC(FB_BOOST_PP_SEQ_SIZE(fields)), fields)), \
- Null) - 0) + sizeof(ISC_SHORT); \
- } \
- \
- void clear() \
- { \
- memset(this, 0, sizeof(*this)); \
- } \
- \
- FB_BOOST_PP_SEQ_FOR_EACH_I(FB_MESSAGE_FIELD, size, fields)
+ \
+ static void setup(IStatus* status, ::Firebird::IMetadataBuilder* builder) \
+ { \
+ unsigned index = 0; \
+ FB_BOOST_PP_SEQ_FOR_EACH_I(FB_MESSAGE_META, size, fields) \
+ } \
+ \
+ name(::Firebird::IMaster* master) \
+ : desc(master, FB_BOOST_PP_SEQ_SIZE(fields), &setup) \
+ { \
+ } \
+ \
+ ::Firebird::IMessageMetadata* getMetadata() const \
+ { \
+ return desc.getMetadata(); \
+ } \
+ \
+ void clear() \
+ { \
+ memset(&data, 0, sizeof(data)); \
+ } \
+ \
+ Type* getData() \
+ { \
+ return &data; \
+ } \
+ \
+ const Type* getData() const \
+ { \
+ return &data; \
+ } \
+ \
+ Type* operator ->() \
+ { \
+ return getData(); \
+ } \
+ \
+ const Type* operator ->() const \
+ { \
+ return getData(); \
+ } \
+ \
+ Type data; \
+ ::Firebird::MessageDesc desc; \
+ }
#define FB_MESSAGE_FIELD(r, _, i, xy) \
FB_BOOST_PP_CAT(FB_TYPE_, FB_BOOST_PP_TUPLE_ELEM(_, 0, xy)) FB_BOOST_PP_TUPLE_ELEM(_, 1, xy); \
ISC_SHORT FB_BOOST_PP_CAT(FB_BOOST_PP_TUPLE_ELEM(_, 1, xy), Null);
-#define FB_MESSAGE_BLR(r, _, i, xy) \
- FB_BOOST_PP_CAT(FB_BLR_, FB_BOOST_PP_TUPLE_ELEM(_, 0, xy)), \
- FB_BLR_FB_SMALLINT,
+#define FB_MESSAGE_META(r, _, i, xy) \
+ FB_BOOST_PP_CAT(FB_META_, FB_BOOST_PP_TUPLE_ELEM(_, 0, xy))
-#define FB_BLR_FB_SCALED_SMALLINT(scale) blr_short, (scale)
-#define FB_BLR_FB_SCALED_INTEGER(scale) blr_long, (scale)
-#define FB_BLR_FB_SCALED_BIGINT(scal...
[truncated message content] |
|
From: <ale...@us...> - 2013-03-04 15:29:10
|
Revision: 57722
http://sourceforge.net/p/firebird/code/57722
Author: alexpeshkoff
Date: 2013-03-04 15:29:05 +0000 (Mon, 04 Mar 2013)
Log Message:
-----------
Fixed CORE-4031: make install wrong under Debian Ubuntu 64 (and fixed some unrelated bugs in linux install)
Modified Paths:
--------------
firebird/trunk/builds/install/arch-specific/linux/Makefile.in
firebird/trunk/builds/install/arch-specific/linux/misc/linuxLibrary.sh.in
firebird/trunk/builds/install/arch-specific/linux/misc/makeInstallImage.sh.in
firebird/trunk/builds/install/arch-specific/linux/misc/postinstall.sh.in
firebird/trunk/builds/install/arch-specific/linux/misc/tarMainInstall.sh.in
firebird/trunk/builds/install/misc/posixLibrary.sh.in
firebird/trunk/configure.in
Modified: firebird/trunk/builds/install/arch-specific/linux/Makefile.in
===================================================================
--- firebird/trunk/builds/install/arch-specific/linux/Makefile.in 2013-03-04 15:18:26 UTC (rev 57721)
+++ firebird/trunk/builds/install/arch-specific/linux/Makefile.in 2013-03-04 15:29:05 UTC (rev 57722)
@@ -118,11 +118,6 @@
objcopy --strip-debug --strip-unneeded $${FIL}; \
fi; \
done
-# Work around GDB 6.0 bug
-# mkdir -p $(GEN_ROOT)/$(DebugDir)@libdir@/.debug
-# for x in `ls $(GEN_ROOT)/$(DebugDir)@prefix@/lib/.debug`; do \
-# ln -f -s @prefix@/lib/.debug/`basename $$x` $(GEN_ROOT)/$(DebugDir)@libdir@/.debug; \
-# done
# Use this line if you don't want to use separate debug info
#buildImageDir: buildRoot
Modified: firebird/trunk/builds/install/arch-specific/linux/misc/linuxLibrary.sh.in
===================================================================
--- firebird/trunk/builds/install/arch-specific/linux/misc/linuxLibrary.sh.in 2013-03-04 15:18:26 UTC (rev 57721)
+++ firebird/trunk/builds/install/arch-specific/linux/misc/linuxLibrary.sh.in 2013-03-04 15:29:05 UTC (rev 57722)
@@ -432,3 +432,25 @@
fi
return 1
}
+
+#------------------------------------------------------------------------
+# Corrects build-time "libdir" value
+
+CorrectLibDir() {
+ ld=${1}
+ l=/usr/lib
+ l64=/usr/lib64
+
+ if [ "$ld" = "$l64" ]
+ then
+ if [ -d "$l" ]
+ then
+ if [ ! -d "$l64" ]
+ then
+ ld="$l"
+ fi
+ fi
+ fi
+
+ echo "$ld"
+}
Modified: firebird/trunk/builds/install/arch-specific/linux/misc/makeInstallImage.sh.in
===================================================================
--- firebird/trunk/builds/install/arch-specific/linux/misc/makeInstallImage.sh.in 2013-03-04 15:18:26 UTC (rev 57721)
+++ firebird/trunk/builds/install/arch-specific/linux/misc/makeInstallImage.sh.in 2013-03-04 15:29:05 UTC (rev 57722)
@@ -143,7 +143,6 @@
makeDirs @FB_MISCDIR@/upgrade/$i
done
- makeDirs @libdir@
makeDirs /usr/include
#bin
@@ -318,13 +317,6 @@
chown root:root ${TargetDir}@FB_CONFDIR@/*License.txt
chmod 0444 ${TargetDir}@FB_CONFDIR@/*License.txt
-# Create links from @libdir@ to install area.
- origDir=`pwd`
- cd $BuiltFBDir/lib
- Libraries=`echo libfb*.so* libib_util.so`
- cd $origDir
- linkFiles "@FB_LIBDIR@" "$Libraries" "${TargetDir}@libdir@" "${TargetDir}@FB_LIBDIR@"
-
# link include files to /usr/include
linkFiles "@FB_INCDIR@" "iberror.h ibase.h ib_util.h" "${TargetDir}/usr/include" "${TargetDir}@FB_INCDIR@"
Modified: firebird/trunk/builds/install/arch-specific/linux/misc/postinstall.sh.in
===================================================================
--- firebird/trunk/builds/install/arch-specific/linux/misc/postinstall.sh.in 2013-03-04 15:18:26 UTC (rev 57721)
+++ firebird/trunk/builds/install/arch-specific/linux/misc/postinstall.sh.in 2013-03-04 15:29:05 UTC (rev 57722)
@@ -46,16 +46,19 @@
# Install script in /etc/init.d (exact location is distro dependent)
installInitdScript
+# Prepare for uninstall
+buildUninstallFile
+
+# Create links to libraries in system lib directory
+createLinksInSystemLib
+
# Create libgds.so links
createLinksForBackCompatibility
-# Prepare for uninstall
-buildUninstallFile
-
# Update the /etc/inetd.conf or xinetd entry
updateInetdServiceEntry
-# Change sysdba password (use embedded access)
+# Add sysdba and set password (use embedded access)
setDBAPassword
# Get inetd to reread new init files.
Modified: firebird/trunk/builds/install/arch-specific/linux/misc/tarMainInstall.sh.in
===================================================================
--- firebird/trunk/builds/install/arch-specific/linux/misc/tarMainInstall.sh.in 2013-03-04 15:18:26 UTC (rev 57721)
+++ firebird/trunk/builds/install/arch-specific/linux/misc/tarMainInstall.sh.in 2013-03-04 15:29:05 UTC (rev 57722)
@@ -39,7 +39,7 @@
then
cat <<EOF
-Firebird classic $Version Installation
+Firebird $Version Installation
EOF
@@ -49,6 +49,7 @@
# Here we are installing from a install tar.gz file
if [ -e scripts ]; then
+ MANIFEXT_TXT=`pwd`/manifest.txt
displayMessage "Extracting install data"
runAndCheckExit "./scripts/preinstall.sh"
runAndCheckExit "./scripts/tarinstall.sh"
Modified: firebird/trunk/builds/install/misc/posixLibrary.sh.in
===================================================================
--- firebird/trunk/builds/install/misc/posixLibrary.sh.in 2013-03-04 15:18:26 UTC (rev 57721)
+++ firebird/trunk/builds/install/misc/posixLibrary.sh.in 2013-03-04 15:29:05 UTC (rev 57722)
@@ -42,6 +42,7 @@
Answer=""
OrigPasswd=""
TmpFile=""
+MANIFEST_TXT=""
SecurityDatabase=security3.fdb
DefaultLibrary=libfbclient
UninstallScript=FirebirdUninstall.sh
@@ -71,7 +72,7 @@
AskQuestion() {
Test=$1
DefaultAns=$2
- echo -n "${1}"
+ echo -n "$Test"
Answer="$DefaultAns"
read Answer
@@ -203,7 +204,7 @@
checkIfServerRunning() {
- checkString=`ps -ef$psOptions | egrep "\b(fbserver|fbguard|fb_smp_server|firebird)\b" |grep -v grep`
+ checkString=`ps -ef$psOptions | egrep "[[:space:]]\b(fbserver|fbguard|fb_smp_server|firebird)\b[[:space:]]" |grep -v grep`
if [ ! -z "$checkString" ]
then
serverMode=super
@@ -218,7 +219,7 @@
# Check is server is being actively used.
- checkString=`ps -ef$psOptions | egrep "\b(firebird)\b" |grep -v grep`
+ checkString=`ps -ef$psOptions | egrep "[[:space:]]\b(firebird)\b[[:space:]]" |grep -v grep`
if [ ! -z "$checkString" ]
then
echo "An instance of the Firebird server seems to be running."
@@ -226,7 +227,7 @@
exit 1
fi
- checkString=`ps -ef$psOptions | egrep "\b(fb_smp_server)\b" |grep -v grep`
+ checkString=`ps -ef$psOptions | egrep "[[:space:]]\b(fb_smp_server)\b[[:space:]]" |grep -v grep`
if [ ! -z "$checkString" ]
then
echo "An instance of the Firebird SuperClassic server seems to be running."
@@ -234,7 +235,7 @@
exit 1
fi
- checkString=`ps -ef$psOptions | egrep "\b(fbserver|fbguard)\b" |grep -v grep`
+ checkString=`ps -ef$psOptions | egrep "[[:space:]]\b(fbserver|fbguard)\b[[:space:]]" |grep -v grep`
if [ ! -z "$checkString" ]
then
echo "An instance of the Firebird Super server seems to be running."
@@ -242,7 +243,7 @@
exit 1
fi
- checkString=`ps -ef$psOptions | egrep "\b(fb_inet_server|gds_pipe)\b" |grep -v grep`
+ checkString=`ps -ef$psOptions | egrep "[[:space:]]\b(fb_inet_server|gds_pipe)\b[[:space:]]" |grep -v grep`
if [ ! -z "$checkString" ]
then
echo "An instance of the Firebird Classic server seems to be running."
@@ -303,7 +304,7 @@
getNewDBAPasswordFromUser()
{
AskQuestion "Please enter new password for SYSDBA user: "
- echo $Answer
+ NewPasswd=$Answer
}
@@ -324,7 +325,7 @@
NewPasswd=""
while [ -z "$NewPasswd" ]
do
- NewPasswd=`getNewDBAPasswordFromUser`
+ getNewDBAPasswordFromUser
if [ ! -z "$NewPasswd" ]
then
if ! runSilent "@FB_BINDIR@/gsec -user sysdba -password $OrigPasswd -modify sysdba -pw $NewPasswd"
@@ -452,10 +453,12 @@
setDBAPassword() {
if [ -z "$InteractiveInstall" ]
- then
+ then
passwd=`createNewPassword`
- else
- passwd=`getNewDBAPasswordFromUser`
+ else
+ NewPasswd=""
+ getNewDBAPasswordFromUser
+ passwd=$NewPasswd
fi
if [ ! -z "$passwd" ]
@@ -481,6 +484,7 @@
fi
cp manifest.txt @FB_MISCDIR@
+ MANIFEST_TXT=@FB_MISCDIR@/manifest.txt
cp -r scripts @FB_MISCDIR@
[ -f scripts/tarMainUninstall.sh ] && cp scripts/tarMainUninstall.sh @FB_SBINDIR@/$UninstallScript
@@ -508,18 +512,26 @@
safeLink() {
Source=$1
Target=$2
-
- removeIfOnlyAlink $Target
- if [ ! -e $Target ]
- then
- ln -s $Source $Target
+ Manifest=$3
+
+ if [ $Source != $Target ]
+ then
+ removeIfOnlyAlink $Target
+ if [ ! -e $Target ]
+ then
+ ln -s $Source $Target
+ if [ -f "$Manifest" ]
+ then
+ echo $Target >>$Manifest
+ fi
+ fi
fi
}
#------------------------------------------------------------------------
# createLinksForBackCompatibility
-# Create links for back compatibility to InterBase and Firebird1.0
+# Create links for back compatibility to InterBase and Firebird1.0
# linked systems.
createLinksForBackCompatibility() {
@@ -529,19 +541,42 @@
# to ensure it loads the fb equivalent. MOD 7-Nov-2002.
newLibrary=@FB_LIBDIR@/$DefaultLibrary.@SHRLIB_EXT@
- safeLink $newLibrary @libdir@/libgds.@SHRLIB_EXT@
- safeLink $newLibrary @libdir@/libgds.@SHRLIB_EXT@.0
+ LibDir=`CorrectLibDir @libdir@`
+ safeLink $newLibrary $LibDir/libgds.@SHRLIB_EXT@
+ safeLink $newLibrary $LibDir/libgds.@SHRLIB_EXT@.0
}
#------------------------------------------------------------------------
+# createLinksInSystemLib
+# Create links to firebird client library in system directory.
+
+createLinksInSystemLib() {
+ LibDir=`CorrectLibDir @libdir@`
+
+ origDirLinksInSystemLib=`pwd`
+ cd @FB_LIBDIR@
+ Libraries=`echo libfbclient.@SHRLIB_EXT@* libib_util.@SHRLIB_EXT@`
+
+ cd /
+ for l in $Libraries
+ do
+ safeLink @FB_LIBDIR@/$l .$LibDir/$l ${MANIFEST_TXT}
+ done
+
+ cd $origDirLinksInSystemLib
+}
+
+#------------------------------------------------------------------------
# removeLinksForBackCompatibility
-# Remove links for back compatibility to InterBase and Firebird1.0
+# Remove links for back compatibility to InterBase and Firebird1.0
# linked systems.
removeLinksForBackCompatibility() {
- removeIfOnlyAlink @libdir@/libgds.@SHRLIB_EXT@
- removeIfOnlyAlink @libdir@/libgds.@SHRLIB_EXT@.0
+ LibDir=`CorrectLibDir @libdir@`
+
+ removeIfOnlyAlink $LibDir/libgds.@SHRLIB_EXT@
+ removeIfOnlyAlink $LibDir/libgds.@SHRLIB_EXT@.0
}
@@ -692,7 +727,7 @@
fi
origDir=`pwd`
-
+
cd /
for i in `cat $manifestFile`
Modified: firebird/trunk/configure.in
===================================================================
--- firebird/trunk/configure.in 2013-03-04 15:18:26 UTC (rev 57721)
+++ firebird/trunk/configure.in 2013-03-04 15:29:05 UTC (rev 57722)
@@ -213,11 +213,7 @@
AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
EDITLINE_FLG=Y
SHRLIB_EXT=so
- if test -L /usr/lib64; then
- libdir=/usr/lib
- else
- libdir=/usr/lib64
- fi
+ libdir=/usr/lib64
CPU_TYPE=amd64
;;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2013-03-05 01:55:33
|
Revision: 57723
http://sourceforge.net/p/firebird/code/57723
Author: firebirds
Date: 2013-03-05 01:55:31 +0000 (Tue, 05 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2013-03-04 15:29:05 UTC (rev 57722)
+++ firebird/trunk/ChangeLog 2013-03-05 01:55:31 UTC (rev 57723)
@@ -1,3 +1,41 @@
+ 2013-03-04 15:29 alexpeshkoff
+ M builds/install/arch-specific/linux/Makefile.in
+ M builds/install/arch-specific/linux/misc/linuxLibrary.sh.in
+ M builds/install/arch-specific/linux/misc/makeInstallImage.sh.in
+ M builds/install/arch-specific/linux/misc/postinstall.sh.in
+ M builds/install/arch-specific/linux/misc/tarMainInstall.sh.in
+ M builds/install/misc/posixLibrary.sh.in
+ M configure.in
+Fixed CORE-4031: make install wrong under Debian Ubuntu 64 (and fixed some unrelated bugs in linux install)
+
+ 2013-03-04 12:13 alexpeshkoff
+ M src/auth/SecureRemotePassword/manage/SrpManagement.cpp
+Fixed segfault in user manager
+
+ 2013-03-04 01:42 asfernandes
+ M examples/udr/UdrCppExample.cpp
+ M src/dsql/ExprNodes.cpp
+ M src/dsql/StmtNodes.cpp
+ M src/include/firebird/ExternalEngine.h
+ M src/include/firebird/Message.h
+ M src/include/firebird/UdrCppEngine.h
+ M src/include/firebird/UdrEngine.h
+ M src/jrd/ExtEngineManager.cpp
+ M src/jrd/ExtEngineManager.h
+ M src/jrd/Function.epp
+ M src/jrd/cmp.cpp
+ M src/jrd/dfw.epp
+ M src/jrd/exe.cpp
+ M src/jrd/exe.h
+ M src/jrd/jrd.h
+ M src/jrd/met.epp
+ M src/jrd/met_proto.h
+ M src/jrd/recsrc/ProcedureScan.cpp
+ M src/jrd/recsrc/RecordSource.h
+ M src/plugins/udr_engine/UdrEngine.cpp
+Fixing FB_MESSAGE macro and external functions and procedures.
+Isolate external routines them from request-based ones.
+
2013-03-01 13:50 alexpeshkoff
M src/isql/InputDevices.cpp
M src/isql/InputDevices.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2013-03-04 15:29:05 UTC (rev 57722)
+++ firebird/trunk/src/jrd/build_no.h 2013-03-05 01:55:31 UTC (rev 57723)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:30243
+ FORMAL BUILD NUMBER:30246
*/
-#define PRODUCT_VER_STRING "3.0.0.30243"
-#define FILE_VER_STRING "WI-T3.0.0.30243"
-#define LICENSE_VER_STRING "WI-T3.0.0.30243"
-#define FILE_VER_NUMBER 3, 0, 0, 30243
+#define PRODUCT_VER_STRING "3.0.0.30246"
+#define FILE_VER_STRING "WI-T3.0.0.30246"
+#define LICENSE_VER_STRING "WI-T3.0.0.30246"
+#define FILE_VER_NUMBER 3, 0, 0, 30246
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "30243"
+#define FB_BUILD_NO "30246"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2013-03-04 15:29:05 UTC (rev 57722)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2013-03-05 01:55:31 UTC (rev 57723)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=30243
+BuildNum=30246
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2013-03-06 00:49:18
|
Revision: 57727
http://sourceforge.net/p/firebird/code/57727
Author: firebirds
Date: 2013-03-06 00:49:14 +0000 (Wed, 06 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2013-03-05 18:38:42 UTC (rev 57726)
+++ firebird/trunk/ChangeLog 2013-03-06 00:49:14 UTC (rev 57727)
@@ -1,3 +1,10 @@
+ 2013-03-05 12:53 alexpeshkoff
+ M src/burp/burp.cpp
+ M src/burp/burp.h
+ M src/burp/mvol.cpp
+ M src/burp/restore.epp
+Fixed CORE-3575:Support of backup volumes with size more than 4Gb
+
2013-03-04 15:29 alexpeshkoff
M builds/install/arch-specific/linux/Makefile.in
M builds/install/arch-specific/linux/misc/linuxLibrary.sh.in
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2013-03-05 18:38:42 UTC (rev 57726)
+++ firebird/trunk/src/jrd/build_no.h 2013-03-06 00:49:14 UTC (rev 57727)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:30246
+ FORMAL BUILD NUMBER:30247
*/
-#define PRODUCT_VER_STRING "3.0.0.30246"
-#define FILE_VER_STRING "WI-T3.0.0.30246"
-#define LICENSE_VER_STRING "WI-T3.0.0.30246"
-#define FILE_VER_NUMBER 3, 0, 0, 30246
+#define PRODUCT_VER_STRING "3.0.0.30247"
+#define FILE_VER_STRING "WI-T3.0.0.30247"
+#define LICENSE_VER_STRING "WI-T3.0.0.30247"
+#define FILE_VER_NUMBER 3, 0, 0, 30247
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "30246"
+#define FB_BUILD_NO "30247"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2013-03-05 18:38:42 UTC (rev 57726)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2013-03-06 00:49:14 UTC (rev 57727)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=30246
+BuildNum=30247
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <di...@us...> - 2013-03-06 14:30:08
|
Revision: 57729
http://sourceforge.net/p/firebird/code/57729
Author: dimitr
Date: 2013-03-06 14:30:05 +0000 (Wed, 06 Mar 2013)
Log Message:
-----------
An ultimate solution for the CRT warnings targeted at both native and external (ICU, BTYACC) modules. Inspired by the ICU-only patch contributed by Dmitry Kovalenko.
Modified Paths:
--------------
firebird/trunk/builds/win32/msvc10/btyacc.vcxproj
firebird/trunk/builds/win32/msvc10/firebird2.props
firebird/trunk/builds/win32/msvc8/empbuild.vcproj
firebird/trunk/builds/win32/msvc8/firebird2.vsprops
firebird/trunk/builds/win32/msvc9/empbuild.vcproj
firebird/trunk/builds/win32/msvc9/firebird2.vsprops
firebird/trunk/extern/icu/source/allinone/firebird2intl.props
firebird/trunk/extern/icu/source/allinone/firebird2intl.vsprops
Modified: firebird/trunk/builds/win32/msvc10/btyacc.vcxproj
===================================================================
--- firebird/trunk/builds/win32/msvc10/btyacc.vcxproj 2013-03-06 11:33:08 UTC (rev 57728)
+++ firebird/trunk/builds/win32/msvc10/btyacc.vcxproj 2013-03-06 14:30:05 UTC (rev 57729)
@@ -94,7 +94,7 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<PrecompiledHeader>
@@ -109,7 +109,7 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<PrecompiledHeader>
</PrecompiledHeader>
Modified: firebird/trunk/builds/win32/msvc10/firebird2.props
===================================================================
--- firebird/trunk/builds/win32/msvc10/firebird2.props 2013-03-06 11:33:08 UTC (rev 57728)
+++ firebird/trunk/builds/win32/msvc10/firebird2.props 2013-03-06 14:30:05 UTC (rev 57729)
@@ -26,6 +26,7 @@
<CompileAs>Default</CompileAs>
<UseFullPaths>false</UseFullPaths>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SuppressStartupBanner>true</SuppressStartupBanner>
Modified: firebird/trunk/builds/win32/msvc8/empbuild.vcproj
===================================================================
--- firebird/trunk/builds/win32/msvc8/empbuild.vcproj 2013-03-06 11:33:08 UTC (rev 57728)
+++ firebird/trunk/builds/win32/msvc8/empbuild.vcproj 2013-03-06 14:30:05 UTC (rev 57729)
@@ -48,7 +48,7 @@
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
AdditionalIncludeDirectories="../../../src/include,../../../src/include/gen,../../../src/jrd"
- PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;WIN32"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -125,7 +125,7 @@
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
AdditionalIncludeDirectories="../../../src/include,../../../src/include/gen,../../../src/jrd"
- PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;WIN32"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -196,7 +196,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../../../src/include,../../../src/include/gen,../../../src/jrd"
- PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;WIN32;DEV_BUILD"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;DEV_BUILD"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -269,7 +269,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../../../src/include,../../../src/include/gen,../../../src/jrd"
- PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;WIN32;DEV_BUILD"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;DEV_BUILD"
Detect64BitPortabilityProblems="true"
/>
<Tool
Modified: firebird/trunk/builds/win32/msvc8/firebird2.vsprops
===================================================================
--- firebird/trunk/builds/win32/msvc8/firebird2.vsprops 2013-03-06 11:33:08 UTC (rev 57728)
+++ firebird/trunk/builds/win32/msvc8/firebird2.vsprops 2013-03-06 14:30:05 UTC (rev 57729)
@@ -25,6 +25,7 @@
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
+ PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS"
CompileAs="0"
UseFullPaths="false"
/>
Modified: firebird/trunk/builds/win32/msvc9/empbuild.vcproj
===================================================================
--- firebird/trunk/builds/win32/msvc9/empbuild.vcproj 2013-03-06 11:33:08 UTC (rev 57728)
+++ firebird/trunk/builds/win32/msvc9/empbuild.vcproj 2013-03-06 14:30:05 UTC (rev 57729)
@@ -48,7 +48,7 @@
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
AdditionalIncludeDirectories="../../../src/include,../../../src/include/gen,../../../src/jrd"
- PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;WIN32"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -125,7 +125,7 @@
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
AdditionalIncludeDirectories="../../../src/include,../../../src/include/gen,../../../src/jrd"
- PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS;NDEBUG;_CONSOLE;WIN32"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -196,7 +196,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../../../src/include,../../../src/include/gen,../../../src/jrd"
- PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;WIN32;DEV_BUILD"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;DEV_BUILD"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@@ -269,7 +269,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../../../src/include,../../../src/include/gen,../../../src/jrd"
- PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS;_DEBUG;_CONSOLE;WIN32;DEV_BUILD"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;DEV_BUILD"
Detect64BitPortabilityProblems="true"
/>
<Tool
Modified: firebird/trunk/builds/win32/msvc9/firebird2.vsprops
===================================================================
--- firebird/trunk/builds/win32/msvc9/firebird2.vsprops 2013-03-06 11:33:08 UTC (rev 57728)
+++ firebird/trunk/builds/win32/msvc9/firebird2.vsprops 2013-03-06 14:30:05 UTC (rev 57729)
@@ -25,6 +25,7 @@
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
+ PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS"
CompileAs="0"
UseFullPaths="false"
/>
Modified: firebird/trunk/extern/icu/source/allinone/firebird2intl.props
===================================================================
--- firebird/trunk/extern/icu/source/allinone/firebird2intl.props 2013-03-06 11:33:08 UTC (rev 57728)
+++ firebird/trunk/extern/icu/source/allinone/firebird2intl.props 2013-03-06 14:30:05 UTC (rev 57729)
@@ -11,6 +11,7 @@
<DisableLanguageExtensions>true</DisableLanguageExtensions>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
</Project>
\ No newline at end of file
Modified: firebird/trunk/extern/icu/source/allinone/firebird2intl.vsprops
===================================================================
--- firebird/trunk/extern/icu/source/allinone/firebird2intl.vsprops 2013-03-06 11:33:08 UTC (rev 57728)
+++ firebird/trunk/extern/icu/source/allinone/firebird2intl.vsprops 2013-03-06 14:30:05 UTC (rev 57729)
@@ -12,5 +12,6 @@
DisableLanguageExtensions="true"
WarningLevel="3"
DebugInformationFormat="3"
+ PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS"
/>
</VisualStudioPropertySheet>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2013-03-07 00:49:11
|
Revision: 57736
http://sourceforge.net/p/firebird/code/57736
Author: firebirds
Date: 2013-03-07 00:49:09 +0000 (Thu, 07 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2013-03-06 18:35:37 UTC (rev 57735)
+++ firebird/trunk/ChangeLog 2013-03-07 00:49:09 UTC (rev 57736)
@@ -1,3 +1,14 @@
+ 2013-03-06 14:30 dimitr
+ M builds/win32/msvc10/btyacc.vcxproj
+ M builds/win32/msvc10/firebird2.props
+ M builds/win32/msvc8/empbuild.vcproj
+ M builds/win32/msvc8/firebird2.vsprops
+ M builds/win32/msvc9/empbuild.vcproj
+ M builds/win32/msvc9/firebird2.vsprops
+ M extern/icu/source/allinone/firebird2intl.props
+ M extern/icu/source/allinone/firebird2intl.vsprops
+An ultimate solution for the CRT warnings targeted at both native and external (ICU, BTYACC) modules. Inspired by the ICU-only patch contributed by Dmitry Kovalenko.
+
2013-03-05 12:53 alexpeshkoff
M src/burp/burp.cpp
M src/burp/burp.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2013-03-06 18:35:37 UTC (rev 57735)
+++ firebird/trunk/src/jrd/build_no.h 2013-03-07 00:49:09 UTC (rev 57736)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:30247
+ FORMAL BUILD NUMBER:30248
*/
-#define PRODUCT_VER_STRING "3.0.0.30247"
-#define FILE_VER_STRING "WI-T3.0.0.30247"
-#define LICENSE_VER_STRING "WI-T3.0.0.30247"
-#define FILE_VER_NUMBER 3, 0, 0, 30247
+#define PRODUCT_VER_STRING "3.0.0.30248"
+#define FILE_VER_STRING "WI-T3.0.0.30248"
+#define LICENSE_VER_STRING "WI-T3.0.0.30248"
+#define FILE_VER_NUMBER 3, 0, 0, 30248
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "30247"
+#define FB_BUILD_NO "30248"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2013-03-06 18:35:37 UTC (rev 57735)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2013-03-07 00:49:09 UTC (rev 57736)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=30247
+BuildNum=30248
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <asf...@us...> - 2013-03-07 15:29:47
|
Revision: 57747
http://sourceforge.net/p/firebird/code/57747
Author: asfernandes
Date: 2013-03-07 15:29:44 +0000 (Thu, 07 Mar 2013)
Log Message:
-----------
Make line numbers of processed y-file matches parser.y lines.
Modified Paths:
--------------
firebird/trunk/builds/posix/make.shared.targets
firebird/trunk/builds/win32/parse.bat
firebird/trunk/src/dsql/parse.y
Modified: firebird/trunk/builds/posix/make.shared.targets
===================================================================
--- firebird/trunk/builds/posix/make.shared.targets 2013-03-07 15:29:22 UTC (rev 57746)
+++ firebird/trunk/builds/posix/make.shared.targets 2013-03-07 15:29:44 UTC (rev 57747)
@@ -42,9 +42,8 @@
# This rule creates parse.cpp from parse.y
$(OBJ)/dsql/parse.cpp $(SRC_ROOT)/include/gen/parse.h: $(SRC_ROOT)/dsql/parse.y $(SRC_ROOT)/dsql/btyacc_fb.ske
- sed -n '/%type .*/p' < $< > $(GEN_ROOT)/y.types
+ sed -n '/%type .*/p' < $< > $(GEN_ROOT)/types.y
sed 's/%type .*//' < $< > $(GEN_ROOT)/y.y
- sed $(INLINE_EDIT_SED) '/\/*\*\* TYPES \*\*\*\//r $(GEN_ROOT)/y.types' $(GEN_ROOT)/y.y
$(BTYACC) -l -d -S $(SRC_ROOT)/dsql/btyacc_fb.ske $(GEN_ROOT)/y.y
$(MV) $(GEN_ROOT)/y_tab.c $(OBJ)/dsql/parse.cpp
$(MV) $(GEN_ROOT)/y_tab.h $(SRC_ROOT)/include/gen/parse.h
Modified: firebird/trunk/builds/win32/parse.bat
===================================================================
--- firebird/trunk/builds/win32/parse.bat 2013-03-07 15:29:22 UTC (rev 57746)
+++ firebird/trunk/builds/win32/parse.bat 2013-03-07 15:29:44 UTC (rev 57747)
@@ -9,16 +9,15 @@
@echo Generating parse.cpp and dsql.tab.h
-@sed -n "/%%type .*/p" < %FB_ROOT_PATH%\src\dsql\parse.y > y.types
+@sed -n "/%%type .*/p" < %FB_ROOT_PATH%\src\dsql\parse.y > types.y
@sed "s/%%type .*//" < %FB_ROOT_PATH%\src\dsql\parse.y > y.y
-@sed -i "/\/*\*\* TYPES \*\*\*\//r y.types" y.y
%FB_ROOT_PATH%\temp\%FB_OBJ_DIR%\btyacc\btyacc -l -d -S %FB_ROOT_PATH%\src\dsql\btyacc_fb.ske y.y
@if errorlevel 1 (exit /B 1)
@copy y_tab.h %FB_ROOT_PATH%\src\include\gen\parse.h > nul
@copy y_tab.c %FB_ROOT_PATH%\src\dsql\parse.cpp > nul
@del y.y
-@del y.types
+@del types.y
@del y_tab.h
@del y_tab.c
@del sed*
Modified: firebird/trunk/src/dsql/parse.y
===================================================================
--- firebird/trunk/src/dsql/parse.y 2013-03-07 15:29:22 UTC (rev 57746)
+++ firebird/trunk/src/dsql/parse.y 2013-03-07 15:29:44 UTC (rev 57747)
@@ -683,7 +683,7 @@
Jrd::dsql_req* dsqlReq;
}
-/*** TYPES ***/
+%include types.y
%%
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2013-03-08 01:42:22
|
Revision: 57749
http://sourceforge.net/p/firebird/code/57749
Author: firebirds
Date: 2013-03-08 01:42:18 +0000 (Fri, 08 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2013-03-07 15:41:52 UTC (rev 57748)
+++ firebird/trunk/ChangeLog 2013-03-08 01:42:18 UTC (rev 57749)
@@ -1,3 +1,59 @@
+ 2013-03-07 15:41 asfernandes
+ M src/dsql/parse.y
+Correction.
+
+ 2013-03-07 15:29 asfernandes
+ M builds/posix/make.shared.targets
+ M builds/win32/parse.bat
+ M src/dsql/parse.y
+Make line numbers of processed y-file matches parser.y lines.
+
+ 2013-03-07 15:29 asfernandes
+ M src/include/gen/msgs.h
+Update generated file.
+
+ 2013-03-07 13:59 dimitr
+ M src/dsql/DdlNodes.epp
+ M src/dsql/DdlNodes.h
+ M src/dsql/ExprNodes.cpp
+ M src/dsql/ExprNodes.h
+ M src/dsql/Nodes.h
+ M src/dsql/StmtNodes.cpp
+ M src/dsql/StmtNodes.h
+ M src/dsql/parse.y
+ M src/jrd/RecordSourceNodes.cpp
+ M src/jrd/acl.h
+ M src/jrd/dfw.epp
+ M src/jrd/dyn.h
+ M src/jrd/filters.cpp
+ M src/jrd/grant.epp
+ M src/jrd/idx.cpp
+ M src/jrd/ini.epp
+ M src/jrd/irq.h
+ M src/jrd/met.epp
+ M src/jrd/met_proto.h
+ M src/jrd/opt.cpp
+ M src/jrd/scl.epp
+ M src/jrd/scl.h
+ M src/jrd/tra.h
+ M src/jrd/vio.cpp
+ M src/yvalve/keywords.cpp
+1) Cleanup and renaming in the SCL code.
+2) Reimplemented the USAGE privilege as a separate one.
+3) Added USAGE permission checks for generators/sequences and exceptions.
+4) Supported USAGE in GRANT/REVOKE for all object types.
+5) Refactored SET GENERATOR and ALTER SEQUENCE as true DDL. blr_set_generator is supported only for backward compatibility, it's not generated by DSQL anymore.
+6) Added START WITH clause for [RE]CREATE SEQUENCE and CREATE OR ALTER SEQUENCE.
+7) Fixed a number of related errors.
+
+ 2013-03-07 12:23 dimitr
+ M src/msgs/messages2.sql
+Misc.
+
+ 2013-03-07 05:34 dimitr
+ M src/isql/isql.epp
+Fixed Windows build. Thanks to Dmitry Kovalenko.
+
2013-03-06 14:30 dimitr
M builds/win32/msvc10/btyacc.vcxproj
M builds/win32/msvc10/firebird2.props
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2013-03-07 15:41:52 UTC (rev 57748)
+++ firebird/trunk/src/jrd/build_no.h 2013-03-08 01:42:18 UTC (rev 57749)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:30248
+ FORMAL BUILD NUMBER:30254
*/
-#define PRODUCT_VER_STRING "3.0.0.30248"
-#define FILE_VER_STRING "WI-T3.0.0.30248"
-#define LICENSE_VER_STRING "WI-T3.0.0.30248"
-#define FILE_VER_NUMBER 3, 0, 0, 30248
+#define PRODUCT_VER_STRING "3.0.0.30254"
+#define FILE_VER_STRING "WI-T3.0.0.30254"
+#define LICENSE_VER_STRING "WI-T3.0.0.30254"
+#define FILE_VER_NUMBER 3, 0, 0, 30254
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "30248"
+#define FB_BUILD_NO "30254"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2013-03-07 15:41:52 UTC (rev 57748)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2013-03-08 01:42:18 UTC (rev 57749)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=30248
+BuildNum=30254
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2013-03-09 01:32:59
|
Revision: 57753
http://sourceforge.net/p/firebird/code/57753
Author: firebirds
Date: 2013-03-09 01:32:56 +0000 (Sat, 09 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2013-03-08 15:31:25 UTC (rev 57752)
+++ firebird/trunk/ChangeLog 2013-03-09 01:32:56 UTC (rev 57753)
@@ -1,3 +1,17 @@
+ 2013-03-08 15:31 asfernandes
+ M src/dsql/StmtNodes.cpp
+ M src/dsql/StmtNodes.h
+Cleanup.
+
+ 2013-03-08 02:37 asfernandes
+ M src/auth/SecureRemotePassword/manage/SrpManagement.cpp
+ M src/dsql/DdlNodes.epp
+ M src/dsql/ExprNodes.cpp
+ M src/dsql/ExprNodes.h
+ M src/dsql/parse.y
+ M src/jrd/grant.epp
+Misc.
+
2013-03-07 15:41 asfernandes
M src/dsql/parse.y
Correction.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2013-03-08 15:31:25 UTC (rev 57752)
+++ firebird/trunk/src/jrd/build_no.h 2013-03-09 01:32:56 UTC (rev 57753)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:30254
+ FORMAL BUILD NUMBER:30256
*/
-#define PRODUCT_VER_STRING "3.0.0.30254"
-#define FILE_VER_STRING "WI-T3.0.0.30254"
-#define LICENSE_VER_STRING "WI-T3.0.0.30254"
-#define FILE_VER_NUMBER 3, 0, 0, 30254
+#define PRODUCT_VER_STRING "3.0.0.30256"
+#define FILE_VER_STRING "WI-T3.0.0.30256"
+#define LICENSE_VER_STRING "WI-T3.0.0.30256"
+#define FILE_VER_NUMBER 3, 0, 0, 30256
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "30254"
+#define FB_BUILD_NO "30256"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2013-03-08 15:31:25 UTC (rev 57752)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2013-03-09 01:32:56 UTC (rev 57753)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=30254
+BuildNum=30256
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2013-03-10 01:30:54
|
Revision: 57756
http://sourceforge.net/p/firebird/code/57756
Author: firebirds
Date: 2013-03-10 01:30:50 +0000 (Sun, 10 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2013-03-10 00:55:43 UTC (rev 57755)
+++ firebird/trunk/ChangeLog 2013-03-10 01:30:50 UTC (rev 57756)
@@ -1,3 +1,7 @@
+ 2013-03-09 22:00 asfernandes
+ M src/jrd/filters.cpp
+Add missing entries.
+
2013-03-08 15:31 asfernandes
M src/dsql/StmtNodes.cpp
M src/dsql/StmtNodes.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2013-03-10 00:55:43 UTC (rev 57755)
+++ firebird/trunk/src/jrd/build_no.h 2013-03-10 01:30:50 UTC (rev 57756)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:30256
+ FORMAL BUILD NUMBER:30257
*/
-#define PRODUCT_VER_STRING "3.0.0.30256"
-#define FILE_VER_STRING "WI-T3.0.0.30256"
-#define LICENSE_VER_STRING "WI-T3.0.0.30256"
-#define FILE_VER_NUMBER 3, 0, 0, 30256
+#define PRODUCT_VER_STRING "3.0.0.30257"
+#define FILE_VER_STRING "WI-T3.0.0.30257"
+#define LICENSE_VER_STRING "WI-T3.0.0.30257"
+#define FILE_VER_NUMBER 3, 0, 0, 30257
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "30256"
+#define FB_BUILD_NO "30257"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2013-03-10 00:55:43 UTC (rev 57755)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2013-03-10 01:30:50 UTC (rev 57756)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=30256
+BuildNum=30257
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2013-03-11 01:25:06
|
Revision: 57762
http://sourceforge.net/p/firebird/code/57762
Author: firebirds
Date: 2013-03-11 01:25:03 +0000 (Mon, 11 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2013-03-10 20:38:44 UTC (rev 57761)
+++ firebird/trunk/ChangeLog 2013-03-11 01:25:03 UTC (rev 57762)
@@ -1,3 +1,31 @@
+ 2013-03-10 20:38 asfernandes
+ M src/jrd/exe.cpp
+ M src/jrd/req.h
+Cleanup.
+
+ 2013-03-10 15:39 asfernandes
+ M src/jrd/dpm.epp
+Misc.
+
+ 2013-03-10 14:48 hvlad
+ M src/jrd/Relation.cpp
+ M src/jrd/dpm.epp
+ M src/jrd/jrd.h
+ M src/jrd/pag.cpp
+ M src/jrd/vio.cpp
+ M src/jrd/vio_debug.h
+Make tracing VIO works and more easy to use:
+- log into file instead of console
+- rebuild only small set of affected modules when VIO_DEBUG is changed
+
+ 2013-03-10 07:03 dimitr
+ M src/dsql/parse.y
+Misc syntax adjustments suggested by Adriano.
+
+ 2013-03-10 00:55 asfernandes
+ M src/isql/isql.epp
+Misc.
+
2013-03-09 22:00 asfernandes
M src/jrd/filters.cpp
Add missing entries.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2013-03-10 20:38:44 UTC (rev 57761)
+++ firebird/trunk/src/jrd/build_no.h 2013-03-11 01:25:03 UTC (rev 57762)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:30257
+ FORMAL BUILD NUMBER:30262
*/
-#define PRODUCT_VER_STRING "3.0.0.30257"
-#define FILE_VER_STRING "WI-T3.0.0.30257"
-#define LICENSE_VER_STRING "WI-T3.0.0.30257"
-#define FILE_VER_NUMBER 3, 0, 0, 30257
+#define PRODUCT_VER_STRING "3.0.0.30262"
+#define FILE_VER_STRING "WI-T3.0.0.30262"
+#define LICENSE_VER_STRING "WI-T3.0.0.30262"
+#define FILE_VER_NUMBER 3, 0, 0, 30262
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "30257"
+#define FB_BUILD_NO "30262"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2013-03-10 20:38:44 UTC (rev 57761)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2013-03-11 01:25:03 UTC (rev 57762)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=30257
+BuildNum=30262
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2013-03-12 01:08:40
|
Revision: 57766
http://sourceforge.net/p/firebird/code/57766
Author: firebirds
Date: 2013-03-12 01:08:36 +0000 (Tue, 12 Mar 2013)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2013-03-11 15:44:58 UTC (rev 57765)
+++ firebird/trunk/ChangeLog 2013-03-12 01:08:36 UTC (rev 57766)
@@ -1,3 +1,9 @@
+ 2013-03-11 15:43 alexpeshkoff
+ M src/dsql/ExprNodes.cpp
+ M src/dsql/StmtNodes.cpp
+ M src/jrd/exe.h
+Fixed CORE-3360: update ... returning ... raises -551 (no perm to update) for a column present only in the returning clause
+
2013-03-10 20:38 asfernandes
M src/jrd/exe.cpp
M src/jrd/req.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2013-03-11 15:44:58 UTC (rev 57765)
+++ firebird/trunk/src/jrd/build_no.h 2013-03-12 01:08:36 UTC (rev 57766)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:30262
+ FORMAL BUILD NUMBER:30263
*/
-#define PRODUCT_VER_STRING "3.0.0.30262"
-#define FILE_VER_STRING "WI-T3.0.0.30262"
-#define LICENSE_VER_STRING "WI-T3.0.0.30262"
-#define FILE_VER_NUMBER 3, 0, 0, 30262
+#define PRODUCT_VER_STRING "3.0.0.30263"
+#define FILE_VER_STRING "WI-T3.0.0.30263"
+#define LICENSE_VER_STRING "WI-T3.0.0.30263"
+#define FILE_VER_NUMBER 3, 0, 0, 30263
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "30262"
+#define FB_BUILD_NO "30263"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2013-03-11 15:44:58 UTC (rev 57765)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2013-03-12 01:08:36 UTC (rev 57766)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=30262
+BuildNum=30263
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|