From: <fir...@us...> - 2011-02-26 03:16:10
|
Revision: 52466 http://firebird.svn.sourceforge.net/firebird/?rev=52466&view=rev Author: firebirds Date: 2011-02-26 03:16:03 +0000 (Sat, 26 Feb 2011) 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 2011-02-26 01:10:26 UTC (rev 52465) +++ firebird/trunk/ChangeLog 2011-02-26 03:16:03 UTC (rev 52466) @@ -1,3 +1,31 @@ + 2011-02-26 01:10 asfernandes + M src/dsql/StmtNodes.cpp + M src/dsql/StmtNodes.h +Replace some blr_block by blr_begin, as before. + + 2011-02-25 15:28 asfernandes + M src/jrd/vio.cpp +The (bad) definition of fb_assert cause this code to not work in clang. It's a surprive if it works in MSVC. + + 2011-02-25 13:06 dimitr + M src/dsql/ExprNodes.cpp +Let's process the sub-node before using it in CMP_get_desc. It helps to avoid a crash if the sub-node is a variable (its e_var_variable argument is not assigned yet). + + 2011-02-25 12:26 hvlad + M src/jrd/req.h + M src/jrd/tra.h + M src/jrd/vio.cpp +Implement improvement CORE-3362 : Cursors should ignore changes made by the same statement + + 2011-02-25 10:42 dimitr + M src/dsql/BoolNodes.cpp +Fixed the assertion reported by Vlad privately. + + 2011-02-25 07:32 dimitr + M src/jrd/Database.cpp + M src/jrd/Database.h +Front ported fix for CORE-3356. + 2011-02-25 02:52 asfernandes M src/dsql/DdlNodes.epp M src/dsql/StmtNodes.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2011-02-26 01:10:26 UTC (rev 52465) +++ firebird/trunk/src/jrd/build_no.h 2011-02-26 03:16:03 UTC (rev 52466) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29140 + FORMAL BUILD NUMBER:29146 */ -#define PRODUCT_VER_STRING "3.0.0.29140" -#define FILE_VER_STRING "WI-T3.0.0.29140" -#define LICENSE_VER_STRING "WI-T3.0.0.29140" -#define FILE_VER_NUMBER 3, 0, 0, 29140 +#define PRODUCT_VER_STRING "3.0.0.29146" +#define FILE_VER_STRING "WI-T3.0.0.29146" +#define LICENSE_VER_STRING "WI-T3.0.0.29146" +#define FILE_VER_NUMBER 3, 0, 0, 29146 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29140" +#define FB_BUILD_NO "29146" #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 2011-02-26 01:10:26 UTC (rev 52465) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-02-26 03:16:03 UTC (rev 52466) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29140 +BuildNum=29146 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...> - 2011-02-26 21:52:54
|
Revision: 52477 http://firebird.svn.sourceforge.net/firebird/?rev=52477&view=rev Author: asfernandes Date: 2011-02-26 21:52:47 +0000 (Sat, 26 Feb 2011) Log Message: ----------- Removed the legacy DSQL hash table module (HSHD). Modified Paths: -------------- firebird/trunk/builds/make.new/config/install-sh firebird/trunk/builds/win32/msvc10/engine.vcxproj firebird/trunk/builds/win32/msvc10/engine.vcxproj.filters firebird/trunk/builds/win32/msvc8/engine.vcproj firebird/trunk/builds/win32/msvc9/engine.vcproj firebird/trunk/src/dsql/dsql.cpp firebird/trunk/src/dsql/dsql.h firebird/trunk/src/dsql/make.cpp firebird/trunk/src/dsql/make_proto.h firebird/trunk/src/dsql/metd.epp firebird/trunk/src/dsql/parse.y firebird/trunk/src/dsql/pass1.cpp firebird/trunk/src/dsql/sym.h firebird/trunk/src/include/fb_blk.h Removed Paths: ------------- firebird/trunk/src/dsql/hsh.cpp firebird/trunk/src/dsql/hsh_proto.h firebird/trunk/src/dsql/parse_proto.h Property Changed: ---------------- firebird/trunk/builds/make.new/config/install-sh Property changes on: firebird/trunk/builds/make.new/config/install-sh ___________________________________________________________________ Added: svn:executable + * Modified: firebird/trunk/builds/win32/msvc10/engine.vcxproj =================================================================== --- firebird/trunk/builds/win32/msvc10/engine.vcxproj 2011-02-26 21:51:45 UTC (rev 52476) +++ firebird/trunk/builds/win32/msvc10/engine.vcxproj 2011-02-26 21:52:47 UTC (rev 52477) @@ -47,7 +47,6 @@ <ClCompile Include="..\..\..\src\dsql\errd.cpp" /> <ClCompile Include="..\..\..\src\dsql\ExprNodes.cpp" /> <ClCompile Include="..\..\..\src\dsql\gen.cpp" /> - <ClCompile Include="..\..\..\src\dsql\hsh.cpp" /> <ClCompile Include="..\..\..\src\dsql\make.cpp" /> <ClCompile Include="..\..\..\src\dsql\movd.cpp" /> <ClCompile Include="..\..\..\src\dsql\parse.cpp" /> @@ -177,7 +176,6 @@ <ClInclude Include="..\..\..\src\dsql\errd_proto.h" /> <ClInclude Include="..\..\..\src\dsql\ExprNodes.h" /> <ClInclude Include="..\..\..\src\dsql\gen_proto.h" /> - <ClInclude Include="..\..\..\src\dsql\hsh_proto.h" /> <ClInclude Include="..\..\..\src\dsql\make_proto.h" /> <ClInclude Include="..\..\..\src\dsql\metd_proto.h" /> <ClInclude Include="..\..\..\src\dsql\movd_proto.h" /> @@ -185,7 +183,6 @@ <ClInclude Include="..\..\..\src\dsql\Nodes.h" /> <ClInclude Include="..\..\..\src\dsql\PackageNodes.h" /> <ClInclude Include="..\..\..\src\dsql\Parser.h" /> - <ClInclude Include="..\..\..\src\dsql\parse_proto.h" /> <ClInclude Include="..\..\..\src\dsql\pass1_proto.h" /> <ClInclude Include="..\..\..\src\dsql\sqlda.h" /> <ClInclude Include="..\..\..\src\dsql\sqlda_pub.h" /> @@ -564,4 +561,4 @@ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> -</Project> \ No newline at end of file +</Project> Modified: firebird/trunk/builds/win32/msvc10/engine.vcxproj.filters =================================================================== --- firebird/trunk/builds/win32/msvc10/engine.vcxproj.filters 2011-02-26 21:51:45 UTC (rev 52476) +++ firebird/trunk/builds/win32/msvc10/engine.vcxproj.filters 2011-02-26 21:52:47 UTC (rev 52477) @@ -144,9 +144,6 @@ <ClCompile Include="..\..\..\src\dsql\gen.cpp"> <Filter>DSQL</Filter> </ClCompile> - <ClCompile Include="..\..\..\src\dsql\hsh.cpp"> - <Filter>DSQL</Filter> - </ClCompile> <ClCompile Include="..\..\..\src\dsql\make.cpp"> <Filter>DSQL</Filter> </ClCompile> @@ -518,9 +515,6 @@ <ClInclude Include="..\..\..\src\dsql\gen_proto.h"> <Filter>Header files</Filter> </ClInclude> - <ClInclude Include="..\..\..\src\dsql\hsh_proto.h"> - <Filter>Header files</Filter> - </ClInclude> <ClInclude Include="..\..\..\src\dsql\make_proto.h"> <Filter>Header files</Filter> </ClInclude> @@ -539,9 +533,6 @@ <ClInclude Include="..\..\..\src\dsql\PackageNodes.h"> <Filter>Header files</Filter> </ClInclude> - <ClInclude Include="..\..\..\src\dsql\parse_proto.h"> - <Filter>Header files</Filter> - </ClInclude> <ClInclude Include="..\..\..\src\dsql\Parser.h"> <Filter>Header files</Filter> </ClInclude> @@ -1085,4 +1076,4 @@ <Filter>Resource files</Filter> </ResourceCompile> </ItemGroup> -</Project> \ No newline at end of file +</Project> Modified: firebird/trunk/builds/win32/msvc8/engine.vcproj =================================================================== --- firebird/trunk/builds/win32/msvc8/engine.vcproj 2011-02-26 21:51:45 UTC (rev 52476) +++ firebird/trunk/builds/win32/msvc8/engine.vcproj 2011-02-26 21:52:47 UTC (rev 52477) @@ -1184,10 +1184,6 @@ > </File> <File - RelativePath="..\..\..\src\dsql\hsh_proto.h" - > - </File> - <File RelativePath="..\..\..\src\jrd\ibase.h" > </File> @@ -1404,10 +1400,6 @@ > </File> <File - RelativePath="..\..\..\src\dsql\parse_proto.h" - > - </File> - <File RelativePath="..\..\..\src\dsql\Parser.h" > </File> @@ -1740,10 +1732,6 @@ > </File> <File - RelativePath="..\..\..\src\dsql\hsh.cpp" - > - </File> - <File RelativePath="..\..\..\src\dsql\make.cpp" > </File> Modified: firebird/trunk/builds/win32/msvc9/engine.vcproj =================================================================== --- firebird/trunk/builds/win32/msvc9/engine.vcproj 2011-02-26 21:51:45 UTC (rev 52476) +++ firebird/trunk/builds/win32/msvc9/engine.vcproj 2011-02-26 21:52:47 UTC (rev 52477) @@ -1184,10 +1184,6 @@ > </File> <File - RelativePath="..\..\..\src\dsql\hsh_proto.h" - > - </File> - <File RelativePath="..\..\..\src\jrd\ibase.h" > </File> @@ -1404,10 +1400,6 @@ > </File> <File - RelativePath="..\..\..\src\dsql\parse_proto.h" - > - </File> - <File RelativePath="..\..\..\src\dsql\Parser.h" > </File> @@ -1740,10 +1732,6 @@ > </File> <File - RelativePath="..\..\..\src\dsql\hsh.cpp" - > - </File> - <File RelativePath="..\..\..\src\dsql\make.cpp" > </File> Modified: firebird/trunk/src/dsql/dsql.cpp =================================================================== --- firebird/trunk/src/dsql/dsql.cpp 2011-02-26 21:51:45 UTC (rev 52476) +++ firebird/trunk/src/dsql/dsql.cpp 2011-02-26 21:52:47 UTC (rev 52477) @@ -49,10 +49,8 @@ #include "../dsql/dsql_proto.h" #include "../dsql/errd_proto.h" #include "../dsql/gen_proto.h" -#include "../dsql/hsh_proto.h" #include "../dsql/make_proto.h" #include "../dsql/movd_proto.h" -#include "../dsql/parse_proto.h" #include "../dsql/pass1_proto.h" #include "../jrd/blb_proto.h" #include "../jrd/cmp_proto.h" @@ -143,7 +141,6 @@ dsql_dbb::~dsql_dbb() { - HSHD_finish(this); } @@ -694,7 +691,7 @@ Jrd::ContextPoolHolder context(tdbb, &request->getPool()); const size_t MAX_CURSOR_LENGTH = 132 - 1; - Firebird::string cursor = input_cursor; + string cursor = input_cursor; if (cursor[0] == '\"') { @@ -702,7 +699,7 @@ // Note that "" will be replaced with ". // The code is very strange, because it doesn't check for "" really // and thus deletes one isolated " in the middle of the cursor. - for (Firebird::string::iterator i = cursor.begin(); i < cursor.end(); ++i) + for (string::iterator i = cursor.begin(); i < cursor.end(); ++i) { if (*i == '\"') cursor.erase(i); @@ -710,8 +707,8 @@ } else // not quoted name { - const Firebird::string::size_type i = cursor.find(' '); - if (i != Firebird::string::npos) + const string::size_type i = cursor.find(' '); + if (i != string::npos) cursor.resize(i); cursor.upper(); @@ -733,28 +730,31 @@ // If there already is a different cursor by the same name, bitch - const dsql_sym* symbol = HSHD_lookup(request->req_dbb, cursor.c_str(), length, SYM_cursor, 0); + dsql_req* const* symbol = request->req_dbb->dbb_cursors.get(cursor); if (symbol) { - if (request->req_cursor == symbol) + if (request == *symbol) return; ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-502) << Arg::Gds(isc_dsql_decl_err) << - Arg::Gds(isc_dsql_cursor_redefined) << Arg::Str(symbol->sym_string)); + Arg::Gds(isc_dsql_cursor_redefined) << cursor); } // If there already is a cursor and its name isn't the same, ditto. // We already know there is no cursor by this name in the hash table - if (!request->req_cursor) - request->req_cursor = MAKE_symbol(request->req_dbb, cursor.c_str(), length, SYM_cursor, request); + if (request->req_cursor.isEmpty()) + { + request->req_cursor = cursor; + request->req_dbb->dbb_cursors.put(cursor, request); + } else { - fb_assert(request->req_cursor != symbol); + fb_assert(request != (*symbol)); ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-502) << Arg::Gds(isc_dsql_decl_err) << - Arg::Gds(isc_dsql_cursor_redefined) << Arg::Str(request->req_cursor->sym_string)); + Arg::Gds(isc_dsql_cursor_redefined) << request->req_cursor); } } @@ -2287,10 +2287,10 @@ } request->req_traced = false; - if (request->req_cursor) + if (request->req_cursor.hasData()) { - HSHD_remove(request->req_cursor); - request->req_cursor = NULL; + request->req_dbb->dbb_cursors.remove(request->req_cursor); + request->req_cursor = ""; } // If a request has been compiled, release it now Modified: firebird/trunk/src/dsql/dsql.h =================================================================== --- firebird/trunk/src/dsql/dsql.h 2011-02-26 21:51:45 UTC (rev 52476) +++ firebird/trunk/src/dsql/dsql.h 2011-02-26 21:52:47 UTC (rev 52477) @@ -140,6 +140,9 @@ Firebird::MetaName, class dsql_intlsym*> > > dbb_collations; // known collations in database Firebird::GenericMap<Firebird::Pair<Firebird::NonPooled< SSHORT, dsql_intlsym*> > > dbb_charsets_by_id; // charsets sorted by charset_id + Firebird::GenericMap<Firebird::Pair<Firebird::Left< + Firebird::string, class dsql_req*> > > dbb_cursors; // known cursors in database + MemoryPool& dbb_pool; // The current pool for the dbb Database* dbb_database; Attachment* dbb_attachment; @@ -157,6 +160,7 @@ dbb_charsets(p), dbb_collations(p), dbb_charsets_by_id(p), + dbb_cursors(p), dbb_pool(p) {} @@ -541,6 +545,7 @@ statement(aStatement), cursors(req_pool), req_msg_buffers(req_pool), + req_cursor(req_pool), req_user_descs(req_pool) { } @@ -577,7 +582,7 @@ unsigned req_flags; // flags Firebird::Array<UCHAR*> req_msg_buffers; - dsql_sym* req_cursor; // Cursor symbol, if any + Firebird::string req_cursor; // Cursor name, if any blb* req_blb; // JRD blob Firebird::GenericMap<Firebird::NonPooled<const dsql_par*, dsc> > req_user_descs; // SQLDA data type Deleted: firebird/trunk/src/dsql/hsh.cpp =================================================================== --- firebird/trunk/src/dsql/hsh.cpp 2011-02-26 21:51:45 UTC (rev 52476) +++ firebird/trunk/src/dsql/hsh.cpp 2011-02-26 21:52:47 UTC (rev 52477) @@ -1,448 +0,0 @@ -/* - * PROGRAM: Dynamic SQL runtime support - * MODULE: hsh.cpp - * DESCRIPTION: Hash table and symbol manager - * - * The contents of this file are subject to the Interbase Public - * License Version 1.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy - * of the License at http://www.Inprise.com/IPL.html - * - * Software distributed under the License is distributed on an - * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express - * or implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code was created by Inprise Corporation - * and its predecessors. Portions created by Inprise Corporation are - * Copyright (C) Inprise Corporation. - * - * All Rights Reserved. - * Contributor(s): ______________________________________. - */ - -#include "firebird.h" -#include <string.h> -#include "../dsql/dsql.h" -#include "../jrd/ibase.h" -#include "../yvalve/gds_proto.h" -#include "../dsql/errd_proto.h" -#include "../dsql/hsh_proto.h" -#include "../dsql/parse_proto.h" -#include "../common/classes/init.h" - -using namespace Jrd; - -static USHORT hash(const SCHAR*, USHORT); -static bool remove_symbol(dsql_sym**, dsql_sym*); -static bool scompare(const TEXT*, USHORT, const TEXT*, const USHORT); - -namespace -{ - const int HASH_SIZE = 1021; - - class HashTable : public Firebird::Array<dsql_sym*> - { - public: - explicit HashTable(MemoryPool& pool) - : Firebird::Array<dsql_sym*>(pool) - { - grow(HASH_SIZE); - } - - static void init() - { - LEX_dsql_init(*getDefaultMemoryPool()); - } - }; - - Firebird::InitInstance<HashTable> hash_table; - Firebird::InitMutex<HashTable> hash_startup; - Firebird::GlobalPtr<Firebird::RWLock> hash_sync; -} - -#ifdef DEV_BUILD - -#include <stdio.h> - -/** - - HSHD_debug - - @brief Print out the hash table for debugging. - - - - **/ -void HSHD_debug() -{ - Firebird::ReadLockGuard guard(hash_sync); - - // dump each hash table entry - for (SSHORT h = 0; h < HASH_SIZE; h++) - { - for (dsql_sym* collision = hash_table()[h]; collision; collision = collision->sym_collision) - { - // check any homonyms first - fprintf(stderr, "Symbol type %d: %s %p\n", - collision->sym_type, collision->sym_string, collision->sym_dbb); - for (dsql_sym* homptr = collision->sym_homonym; homptr; homptr = homptr->sym_homonym) - { - fprintf(stderr, "Homonym Symbol type %d: %s %p\n", - homptr->sym_type, homptr->sym_string, homptr->sym_dbb); - } - } - } -} -#endif - - -/** - - HSHD_finish - - @brief Remove symbols used by a particular database. - Don't bother to release them since their pools - will be released. - - - @param database - - **/ -void HSHD_finish(const void* database) -{ - Firebird::WriteLockGuard guard(hash_sync); - - // check each hash table entry - for (SSHORT h = 0; h < HASH_SIZE; h++) - { - for (dsql_sym** collision = &hash_table()[h]; *collision;) - { - // check any homonyms first - dsql_sym* chain = *collision; - for (dsql_sym** homptr = &chain->sym_homonym; *homptr;) - { - dsql_sym* symbol = *homptr; - if (symbol->sym_dbb == database) - { - *homptr = symbol->sym_homonym; - symbol = symbol->sym_homonym; - } - else - { - homptr = &symbol->sym_homonym; - } - } - - // now, see if the root entry has to go - if (chain->sym_dbb == database) - { - if (chain->sym_homonym) - { - chain->sym_homonym->sym_collision = chain->sym_collision; - *collision = chain->sym_homonym; - } - else - { - *collision = chain->sym_collision; - } - chain = *collision; - } - else - { - collision = &chain->sym_collision; - } - } - } -} - - -/** - - HSHD_insert - - @brief Insert a symbol into the hash table. - - - @param symbol - - **/ -void HSHD_insert(dsql_sym* symbol) -{ - const USHORT h = hash(symbol->sym_string, symbol->sym_length); - const void* database = symbol->sym_dbb; - - //fb_assert(symbol->sym_type >= SYM_statement && symbol->sym_type <= SYM_eof); - fb_assert(symbol->sym_type >= SYM_cursor && symbol->sym_type <= SYM_eof); - - Firebird::WriteLockGuard guard(hash_sync); - - for (dsql_sym* old = hash_table()[h]; old; old = old->sym_collision) - { - if ((!database || (database == old->sym_dbb)) && - scompare(symbol->sym_string, symbol->sym_length, old->sym_string, old->sym_length)) - { - symbol->sym_homonym = old->sym_homonym; - old->sym_homonym = symbol; - return; - } - } - - symbol->sym_collision = hash_table()[h]; - hash_table()[h] = symbol; -} - - -/** - - HSHD_lookup - - @brief Perform a string lookup against hash table. - Make sure to only return a symbol of the desired type. - - - @param database - @param string - @param length - @param type - @param parser_version - - **/ -dsql_sym* HSHD_lookup(const void* database, - const TEXT* string, - SSHORT length, - SYM_TYPE type, - USHORT parser_version) -{ - hash_startup.init(); - - const USHORT h = hash(string, length); - - Firebird::ReadLockGuard guard(hash_sync); - - for (dsql_sym* symbol = hash_table()[h]; symbol; symbol = symbol->sym_collision) - { - if ((database == symbol->sym_dbb) && - scompare(string, length, symbol->sym_string, symbol->sym_length)) - { - // Search for a symbol of the proper type - while (symbol && symbol->sym_type != type) - { - symbol = symbol->sym_homonym; - } - - // If the symbol found was not part of the list of keywords for the - // client connecting, then assume nothing was found - - if (symbol) - { - if (parser_version < symbol->sym_version && type == SYM_keyword) - { - return NULL; - } - } - return symbol; - } - } - - return NULL; -} - - -/** - - HSHD_remove - - @brief Remove a symbol from the hash table. - - - @param symbol - - **/ -void HSHD_remove(dsql_sym* symbol) -{ - Firebird::WriteLockGuard guard(hash_sync); - - const USHORT h = hash(symbol->sym_string, symbol->sym_length); - - for (dsql_sym** collision = &hash_table()[h]; *collision; collision = &(*collision)->sym_collision) - { - if (remove_symbol(collision, symbol)) - { - return; - } - } - - ERRD_error("HSHD_remove failed"); -} - - -/** - - HSHD_set_flag - - @brief Set a flag in all similar objects in a chain. - This is used primarily to mark relations - as deleted. The object must have the same name and - type, but not the same database, and must belong to - some database. Later access to such an object by - another user or thread should result in that object's - being refreshed. Note that even if the name and ID - both match, it may still not represent an exact match. - This is because there's no way at present for DSQL to tell - if two databases as represented in DSQL are attachments to - the same physical database. - - - @param database - @param string - @param length - @param type - @param flag - - **/ -void HSHD_set_flag(const void* database, - const TEXT* string, - SSHORT length, - SYM_TYPE type, - SSHORT flag) -{ - // as of now, there's no work to do if there is no database or if - // the type is not a relation - - if (!database || type != SYM_relation) - return; - - const USHORT h = hash(string, length); - - Firebird::WriteLockGuard guard(hash_sync); - - for (dsql_sym* symbol = hash_table()[h]; symbol; symbol = symbol->sym_collision) - { - if (symbol->sym_dbb && (database != symbol->sym_dbb) && - scompare(string, length, symbol->sym_string, symbol->sym_length)) - { - // the symbol name matches and it's from a different database - - for (dsql_sym* homonym = symbol; homonym; homonym = homonym->sym_homonym) - { - if (homonym->sym_type == type) - { - // the homonym is of the correct type - - // the next check is for the same relation ID, - // which indicates that it MAY be the same relation - fb_assert(type == SYM_relation); - - dsql_rel* sym_rel = (dsql_rel*) homonym->sym_object; - sym_rel->rel_flags |= flag; - } - } - } - } -} - - -/** - - hash - - @brief Returns the hash function of a string. - - - @param - @param - - **/ -static USHORT hash(const SCHAR* string, USHORT length) -{ - ULONG value = 0; - - while (length--) - { - UCHAR c = *string++; - value = (value << 1) + c; - } - - return value % HASH_SIZE; -} - - -/** - - remove_symbol - - @brief Given the address of a collision, - remove a symbol from the collision - and homonym linked lists. - - - @param collision - @param symbol - - **/ -static bool remove_symbol(dsql_sym** collision, dsql_sym* symbol) -{ - if (symbol == *collision) - { - dsql_sym* homonym = symbol->sym_homonym; - if (homonym != NULL) - { - homonym->sym_collision = symbol->sym_collision; - *collision = homonym; - } - else - { - *collision = symbol->sym_collision; - } - - return true; - } - - for (dsql_sym** ptr = &(*collision)->sym_homonym; *ptr; ptr = &(*ptr)->sym_homonym) - { - if (symbol == *ptr) - { - *ptr = symbol->sym_homonym; - return true; - } - } - - return false; -} - - -/** - - scompare - - @brief Compare two symbolic strings - The character set for these strings is either ASCII or - Unicode in UTF format. - Symbols are case-significant - so no uppercase operation - is performed. - - - @param string1 - @param length1 - @param string2 - @param length2 - - **/ -static bool scompare(const TEXT* string1, - USHORT length1, - const TEXT* string2, - const USHORT length2) -{ - - if (length1 != length2) - return false; - - while (length1--) - { - if ((*string1++) != (*string2++)) - return false; - } - - return true; -} Deleted: firebird/trunk/src/dsql/hsh_proto.h =================================================================== --- firebird/trunk/src/dsql/hsh_proto.h 2011-02-26 21:51:45 UTC (rev 52476) +++ firebird/trunk/src/dsql/hsh_proto.h 2011-02-26 21:52:47 UTC (rev 52477) @@ -1,34 +0,0 @@ -/* - * PROGRAM: Dynamic SQL runtime support - * MODULE: hsh_proto.h - * DESCRIPTION: Prototype Header file for hsh.cpp - * - * The contents of this file are subject to the Interbase Public - * License Version 1.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy - * of the License at http://www.Inprise.com/IPL.html - * - * Software distributed under the License is distributed on an - * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express - * or implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code was created by Inprise Corporation - * and its predecessors. Portions created by Inprise Corporation are - * Copyright (C) Inprise Corporation. - * - * All Rights Reserved. - * Contributor(s): ______________________________________. - */ - -#ifndef DSQL_HSH_PROTO_H -#define DSQL_HSH_PROTO_H - -void HSHD_finish(const void*); -void HSHD_insert(Jrd::dsql_sym*); -Jrd::dsql_sym* HSHD_lookup(const void*, const TEXT*, SSHORT, Jrd::SYM_TYPE, USHORT); -void HSHD_remove(Jrd::dsql_sym*); -void HSHD_set_flag(const void *, const TEXT*, SSHORT, Jrd::SYM_TYPE, SSHORT); - -#endif //DSQL_HSH_PROTO_H - Modified: firebird/trunk/src/dsql/make.cpp =================================================================== --- firebird/trunk/src/dsql/make.cpp 2011-02-26 21:51:45 UTC (rev 52476) +++ firebird/trunk/src/dsql/make.cpp 2011-02-26 21:52:47 UTC (rev 52477) @@ -45,7 +45,6 @@ #include "../jrd/constants.h" #include "../jrd/align.h" #include "../dsql/errd_proto.h" -#include "../dsql/hsh_proto.h" #include "../dsql/make_proto.h" #include "../dsql/metd_proto.h" #include "../dsql/utld_proto.h" @@ -707,47 +706,6 @@ /** - MAKE_symbol - - @brief Make a symbol for an object and insert symbol into hash table. - - - @param database - @param name - @param length - @param type - @param object - - **/ -dsql_sym* MAKE_symbol(dsql_dbb* database, - const TEXT* name, USHORT length, SYM_TYPE type, dsql_req* object) -{ - DEV_BLKCHK(database, dsql_type_dbb); - DEV_BLKCHK(object, dsql_type_req); - fb_assert(name); - fb_assert(length > 0); - - thread_db* tdbb = JRD_get_thread_data(); - - dsql_sym* symbol = FB_NEW_RPT(*tdbb->getDefaultPool(), length) dsql_sym; - symbol->sym_type = type; - symbol->sym_object = object; - symbol->sym_dbb = database; - symbol->sym_length = length; - TEXT* p = symbol->sym_name; - symbol->sym_string = p; - - if (length) - memcpy(p, name, length); - - HSHD_insert(symbol); - - return symbol; -} - - -/** - MAKE_tagged_string @brief Generalized routine for making a string block. Modified: firebird/trunk/src/dsql/make_proto.h =================================================================== --- firebird/trunk/src/dsql/make_proto.h 2011-02-26 21:51:45 UTC (rev 52476) +++ firebird/trunk/src/dsql/make_proto.h 2011-02-26 21:52:47 UTC (rev 52477) @@ -63,7 +63,6 @@ Jrd::dsql_par* MAKE_parameter(Jrd::dsql_msg*, bool, bool, USHORT, const Jrd::dsql_nod*); void MAKE_parameter_names(Jrd::dsql_par*, const Jrd::dsql_nod*); Jrd::dsql_str* MAKE_string(const char*, int); -Jrd::dsql_sym* MAKE_symbol(Jrd::dsql_dbb*, const TEXT*, USHORT, Jrd::sym_type, Jrd::dsql_req*); Jrd::dsql_str* MAKE_tagged_string(const char* str, size_t length, const char* charset); #endif // DSQL_MAKE_PROTO_H Modified: firebird/trunk/src/dsql/metd.epp =================================================================== --- firebird/trunk/src/dsql/metd.epp 2011-02-26 21:51:45 UTC (rev 52476) +++ firebird/trunk/src/dsql/metd.epp 2011-02-26 21:52:47 UTC (rev 52477) @@ -42,7 +42,6 @@ #include "../jrd/tra.h" #include "../dsql/ddl_proto.h" #include "../dsql/metd_proto.h" -#include "../dsql/hsh_proto.h" #include "../dsql/make_proto.h" #include "../dsql/errd_proto.h" #include "../jrd/blb_proto.h" Modified: firebird/trunk/src/dsql/parse.y =================================================================== --- firebird/trunk/src/dsql/parse.y 2011-02-26 21:51:45 UTC (rev 52476) +++ firebird/trunk/src/dsql/parse.y 2011-02-26 21:52:47 UTC (rev 52477) @@ -89,7 +89,6 @@ #include "../jrd/flags.h" #include "../jrd/jrd.h" #include "../dsql/errd_proto.h" -#include "../dsql/hsh_proto.h" #include "../dsql/make_proto.h" #include "../yvalve/keywords.h" #include "../yvalve/gds_proto.h" @@ -6477,34 +6476,52 @@ */ -void LEX_dsql_init(MemoryPool& pool) +namespace { -/************************************** - * - * L E X _ d s q l _ i n i t - * - ************************************** - * - * Functional description - * Initialize LEX for processing. This is called only once - * per session. - * - **************************************/ - for (const TOK* token = KEYWORD_getTokens(); token->tok_string; ++token) + const int HASH_SIZE = 1021; + + struct KeywordVersion { - dsql_sym* symbol = FB_NEW_RPT(pool, 0) dsql_sym; - symbol->sym_string = token->tok_string; - symbol->sym_length = strlen(token->tok_string); - symbol->sym_type = SYM_keyword; - symbol->sym_keyword = token->tok_ident; - symbol->sym_version = token->tok_version; - dsql_str* str = FB_NEW_RPT(pool, symbol->sym_length) dsql_str; - str->str_length = symbol->sym_length; - strncpy(str->str_data, symbol->sym_string, symbol->sym_length); - //str->str_data[str->str_length] = 0; Is it necessary? - symbol->sym_object = (void *) str; - HSHD_insert(symbol); - } + KeywordVersion(int aKeyword, dsql_str* aStr, USHORT aVersion) + : keyword(aKeyword), + str(aStr), + version(aVersion) + { + } + + KeywordVersion() + : keyword(-1), + str(NULL), + version(0) + { + } + + int keyword; + dsql_str* str; + USHORT version; + }; + + class KeywordsMap : public GenericMap<Pair<Left<string, KeywordVersion> > > + { + public: + explicit KeywordsMap(MemoryPool& pool) + : GenericMap<Pair<Left<string, KeywordVersion> > >(pool) + { + for (const TOK* token = KEYWORD_getTokens(); token->tok_string; ++token) + { + size_t len = strlen(token->tok_string); + dsql_str* str = FB_NEW_RPT(pool, len) dsql_str; + str->str_length = len; + strncpy(str->str_data, token->tok_string, len); + //str->str_data[str->str_length] = 0; Is it necessary? + + put(string(token->tok_string, len), + KeywordVersion(token->tok_ident, str, token->tok_version)); + } + } + }; + + GlobalPtr<KeywordsMap> keywordsMap; } @@ -7587,7 +7604,6 @@ // end of number-recognition code - if (tok_class & CHR_LETTER) { char* p = string; @@ -7601,15 +7617,18 @@ check_bound(p, string); *p = 0; - dsql_sym* sym = - HSHD_lookup (NULL, string, (SSHORT)(p - string), SYM_keyword, parser_version); - if (sym && (sym->sym_keyword != COMMENT || lex.prev_keyword == -1)) + + Firebird::string str(string, p - string); + KeywordVersion keyVer; + + if (keywordsMap->get(str, keyVer) && parser_version >= keyVer.version && + (keyVer.keyword != COMMENT || lex.prev_keyword == -1)) { - yylval.legacyNode = (dsql_nod*) sym->sym_object; + yylval.legacyNode = (dsql_nod*) keyVer.str; lex.last_token_bk = lex.last_token; lex.line_start_bk = lex.line_start; lex.lines_bk = lex.lines; - return sym->sym_keyword; + return keyVer.keyword; } if (p > &string[MAX_SQL_IDENTIFIER_LEN]) @@ -7626,12 +7645,13 @@ if (lex.last_token + 1 < lex.end) { - dsql_sym* sym = - HSHD_lookup (NULL, lex.last_token, (SSHORT) 2, SYM_keyword, (USHORT) parser_version); - if (sym) + Firebird::string str(lex.last_token, 2); + KeywordVersion keyVer; + + if (keywordsMap->get(str, keyVer) && parser_version >= keyVer.version) { ++lex.ptr; - return sym->sym_keyword; + return keyVer.keyword; } } Deleted: firebird/trunk/src/dsql/parse_proto.h =================================================================== --- firebird/trunk/src/dsql/parse_proto.h 2011-02-26 21:51:45 UTC (rev 52476) +++ firebird/trunk/src/dsql/parse_proto.h 2011-02-26 21:52:47 UTC (rev 52477) @@ -1,30 +0,0 @@ -/* - * PROGRAM: Dynamic SQL runtime support - * MODULE: parse_proto.h - * DESCRIPTION: Prototype Header file for parse.cpp - * - * The contents of this file are subject to the Interbase Public - * License Version 1.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy - * of the License at http://www.Inprise.com/IPL.html - * - * Software distributed under the License is distributed on an - * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express - * or implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code was created by Inprise Corporation - * and its predecessors. Portions created by Inprise Corporation are - * Copyright (C) Inprise Corporation. - * - * All Rights Reserved. - * Contributor(s): ______________________________________. - */ - -#ifndef DSQL_PARSE_PROTO_H -#define DSQL_PARSE_PROTO_H - -void LEX_dsql_init(MemoryPool&); - -#endif // DSQL_PARSE_PROTO_H - Modified: firebird/trunk/src/dsql/pass1.cpp =================================================================== --- firebird/trunk/src/dsql/pass1.cpp 2011-02-26 21:51:45 UTC (rev 52476) +++ firebird/trunk/src/dsql/pass1.cpp 2011-02-26 21:52:47 UTC (rev 52477) @@ -158,7 +158,6 @@ #include "../dsql/ddl_proto.h" #include "../dsql/errd_proto.h" #include "../dsql/gen_proto.h" -#include "../dsql/hsh_proto.h" #include "../dsql/make_proto.h" #include "../dsql/metd_proto.h" #include "../dsql/pass1_proto.h" @@ -2252,8 +2251,7 @@ const MetaName& cursorName = StmtNode::as<DeclareCursorNode>(cursor)->dsqlName; - const dsql_sym* symbol = HSHD_lookup(dsqlScratch->getAttachment(), cursorName.c_str(), - static_cast<SSHORT>(cursorName.length()), SYM_cursor, 0); + dsql_req* const* symbol = dsqlScratch->getAttachment()->dbb_cursors.get(cursorName.c_str()); if (!symbol) { @@ -2263,7 +2261,7 @@ Arg::Gds(isc_dsql_cursor_not_found) << cursorName); } - dsql_req* parent = (dsql_req*) symbol->sym_object; + dsql_req* parent = *symbol; // Verify that the cursor is appropriate and updatable @@ -6946,10 +6944,6 @@ trace_line("%sFIELD: %s\n", buffer, ((dsql_fld*) node)->fld_name.c_str()); return; - case dsql_type_sym: - trace_line("%sSYMBOL: %s\n", buffer, ((dsql_sym*) node)->sym_string); - return; - case dsql_type_nod: break; Modified: firebird/trunk/src/dsql/sym.h =================================================================== --- firebird/trunk/src/dsql/sym.h 2011-02-26 21:51:45 UTC (rev 52476) +++ firebird/trunk/src/dsql/sym.h 2011-02-26 21:52:47 UTC (rev 52477) @@ -32,10 +32,10 @@ enum sym_type { //SYM_statement, // used only in an assertion in HSHD_insert() - SYM_cursor = 1, - SYM_keyword, + //SYM_cursor = 1, + //SYM_keyword, //SYM_context, - SYM_relation, + SYM_relation = 1, //SYM_field, //SYM_stream, SYM_udf, @@ -47,25 +47,7 @@ typedef sym_type SYM_TYPE; -// symbol block -class dsql_sym : public pool_alloc_rpt<UCHAR, dsql_type_sym> -{ -public: - void *sym_dbb; // generic DB structure handle - const TEXT *sym_string; // address of asciz string - USHORT sym_length; // length of string (exc. term.) - SYM_TYPE sym_type; // symbol type - USHORT sym_keyword; // keyword number, if keyword - USHORT sym_version; // dialect version the symbol was introduced - void *sym_object; // general pointer to object - dsql_sym* sym_collision; // collision pointer - dsql_sym* sym_homonym; // homonym pointer - TEXT sym_name[2]; // space for name, if necessary -}; - - } // namespace #endif // DSQL_SYM_H - Modified: firebird/trunk/src/include/fb_blk.h =================================================================== --- firebird/trunk/src/include/fb_blk.h 2011-02-26 21:51:45 UTC (rev 52476) +++ firebird/trunk/src/include/fb_blk.h 2011-02-26 21:52:47 UTC (rev 52477) @@ -64,7 +64,6 @@ dsql_type_fil, dsql_type_nod, dsql_type_str, - dsql_type_sym, dsql_type_tra, dsql_type_udf, dsql_type_blb, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2011-02-27 03:15:02
|
Revision: 52480 http://firebird.svn.sourceforge.net/firebird/?rev=52480&view=rev Author: firebirds Date: 2011-02-27 03:14:55 +0000 (Sun, 27 Feb 2011) 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 2011-02-26 22:03:43 UTC (rev 52479) +++ firebird/trunk/ChangeLog 2011-02-27 03:14:55 UTC (rev 52480) @@ -1,3 +1,93 @@ + 2011-02-26 22:03 asfernandes + M src/dsql/parse.y +Misc + + 2011-02-26 21:58 asfernandes + M src/dsql/parse.y +Explicitelly delete the strings created. + + 2011-02-26 21:52 asfernandes + M builds/make.new/config/install-sh + M builds/win32/msvc10/engine.vcxproj + M builds/win32/msvc10/engine.vcxproj.filters + M builds/win32/msvc8/engine.vcproj + M builds/win32/msvc9/engine.vcproj + M src/dsql/dsql.cpp + M src/dsql/dsql.h + D src/dsql/hsh.cpp + D src/dsql/hsh_proto.h + M src/dsql/make.cpp + M src/dsql/make_proto.h + M src/dsql/metd.epp + M src/dsql/parse.y + D src/dsql/parse_proto.h + M src/dsql/pass1.cpp + M src/dsql/sym.h + M src/include/fb_blk.h +Removed the legacy DSQL hash table module (HSHD). + + 2011-02-26 21:51 asfernandes + M src/dsql/DsqlCompilerScratch.cpp + M src/dsql/DsqlCompilerScratch.h + M src/dsql/StmtNodes.cpp + M src/dsql/StmtNodes.h + M src/dsql/gen.cpp + M src/dsql/node.h + M src/dsql/parse.y + M src/dsql/pass1.cpp + M src/dsql/pass1_proto.h +Refactor nod_cursor. + + 2011-02-26 19:05 asfernandes + M src/jrd/filters.cpp + M src/jrd/req.h + M src/jrd/tra.h + M src/jrd/vio.cpp +Misc + + 2011-02-26 16:03 asfernandes + M src/alice/alice.h + M src/common/cvt.cpp + M src/common/gdsassert.h + M src/dsql/BoolNodes.cpp + M src/dsql/ExprNodes.cpp + M src/jrd/btr.cpp + M src/jrd/cch.cpp + M src/jrd/fun.epp + M src/jrd/lck.cpp + M src/jrd/pag.cpp + M src/qli/eval.cpp + M src/qli/lex.cpp +Fix definition and usages of fb_assert. + + 2011-02-26 16:02 asfernandes + M src/remote/client/interface.cpp +Misc + + 2011-02-26 15:21 hvlad + M src/jrd/blob_filter.cpp + M src/jrd/filte_proto.h + M src/jrd/filters.cpp +New feature CORE-3364 : Blob filter to translate internal debug info into text representation + + 2011-02-26 09:38 dimitr + M src/jrd/opt.cpp +Cleanup up the code no longer needed. + + 2011-02-26 09:31 dimitr + M src/dsql/BoolNodes.cpp + M src/dsql/Nodes.h +Reworked my yesterday's change. Hopefully, it should resolve the found regressions. + + 2011-02-26 09:02 dimitr + M src/jrd/Optimizer.cpp +Fixed the regression I introduced recently. Temporary solution, to be reworked soon. + + 2011-02-26 07:25 dimitr + M src/dsql/BoolNodes.cpp + M src/jrd/recsrc/RecordSource.h +Better protection from wrong casts. + 2011-02-26 01:10 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 2011-02-26 22:03:43 UTC (rev 52479) +++ firebird/trunk/src/jrd/build_no.h 2011-02-27 03:14:55 UTC (rev 52480) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29146 + FORMAL BUILD NUMBER:29158 */ -#define PRODUCT_VER_STRING "3.0.0.29146" -#define FILE_VER_STRING "WI-T3.0.0.29146" -#define LICENSE_VER_STRING "WI-T3.0.0.29146" -#define FILE_VER_NUMBER 3, 0, 0, 29146 +#define PRODUCT_VER_STRING "3.0.0.29158" +#define FILE_VER_STRING "WI-T3.0.0.29158" +#define LICENSE_VER_STRING "WI-T3.0.0.29158" +#define FILE_VER_NUMBER 3, 0, 0, 29158 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29146" +#define FB_BUILD_NO "29158" #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 2011-02-26 22:03:43 UTC (rev 52479) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-02-27 03:14:55 UTC (rev 52480) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29146 +BuildNum=29158 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...> - 2011-03-01 03:15:55
|
Revision: 52488 http://firebird.svn.sourceforge.net/firebird/?rev=52488&view=rev Author: firebirds Date: 2011-03-01 03:15:48 +0000 (Tue, 01 Mar 2011) 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 2011-03-01 01:07:44 UTC (rev 52487) +++ firebird/trunk/ChangeLog 2011-03-01 03:15:48 UTC (rev 52488) @@ -1,3 +1,15 @@ + 2011-03-01 01:07 asfernandes + M src/dsql/dsql.cpp +Misc + + 2011-02-28 15:29 hvlad + M src/jrd/Database.cpp +System requests should run with valid attachment assigned + + 2011-02-28 10:11 hvlad + M src/dsql/StmtNodes.cpp +Additional patch for CORE-3362 : Cursors should ignore changes made by the same statement + 2011-02-26 22:03 asfernandes M src/dsql/parse.y Misc Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2011-03-01 01:07:44 UTC (rev 52487) +++ firebird/trunk/src/jrd/build_no.h 2011-03-01 03:15:48 UTC (rev 52488) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29158 + FORMAL BUILD NUMBER:29161 */ -#define PRODUCT_VER_STRING "3.0.0.29158" -#define FILE_VER_STRING "WI-T3.0.0.29158" -#define LICENSE_VER_STRING "WI-T3.0.0.29158" -#define FILE_VER_NUMBER 3, 0, 0, 29158 +#define PRODUCT_VER_STRING "3.0.0.29161" +#define FILE_VER_STRING "WI-T3.0.0.29161" +#define LICENSE_VER_STRING "WI-T3.0.0.29161" +#define FILE_VER_NUMBER 3, 0, 0, 29161 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29158" +#define FB_BUILD_NO "29161" #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 2011-03-01 01:07:44 UTC (rev 52487) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-03-01 03:15:48 UTC (rev 52488) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29158 +BuildNum=29161 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...> - 2011-03-02 13:43:08
|
Revision: 52492 http://firebird.svn.sourceforge.net/firebird/?rev=52492&view=rev Author: alexpeshkoff Date: 2011-03-02 13:42:56 +0000 (Wed, 02 Mar 2011) Log Message: ----------- Fixed CORE-3369: first step to make it possible to specify non-default security database for specific database Modified Paths: -------------- firebird/trunk/builds/posix/make.shared.variables firebird/trunk/src/auth/AuthInterface.h firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.epp firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.h firebird/trunk/src/common/call_service.cpp firebird/trunk/src/common/call_service.h firebird/trunk/src/common/classes/ImplementHelper.h firebird/trunk/src/common/classes/PublicHandle.cpp firebird/trunk/src/common/classes/PublicHandle.h firebird/trunk/src/common/classes/alloc.cpp firebird/trunk/src/common/classes/alloc.h firebird/trunk/src/common/classes/init.h firebird/trunk/src/common/config/config.cpp firebird/trunk/src/common/config/config.h firebird/trunk/src/common/config/config_file.cpp firebird/trunk/src/common/config/config_file.h firebird/trunk/src/common/fb_exception.cpp firebird/trunk/src/common/isc_sync.cpp firebird/trunk/src/dbs/security.sql firebird/trunk/src/include/FirebirdPluginApi.h firebird/trunk/src/include/Interface.h firebird/trunk/src/jrd/ExtEngineManager.cpp firebird/trunk/src/jrd/UserManagement.cpp firebird/trunk/src/jrd/UserManagement.h firebird/trunk/src/jrd/dyn.epp firebird/trunk/src/jrd/jrd.cpp firebird/trunk/src/jrd/svc.cpp firebird/trunk/src/jrd/trace/TraceManager.cpp firebird/trunk/src/remote/client/interface.cpp firebird/trunk/src/remote/server/os/posix/inet_server.cpp firebird/trunk/src/remote/server/os/win32/srvr_w32.cpp firebird/trunk/src/remote/server/server.cpp firebird/trunk/src/utilities/gsec/gsec.cpp firebird/trunk/src/utilities/gsec/gsec.h firebird/trunk/src/utilities/gsec/gsecswi.h firebird/trunk/src/utilities/gstat/dba.epp firebird/trunk/src/yvalve/MasterImplementation.cpp firebird/trunk/src/yvalve/PluginManager.cpp firebird/trunk/src/yvalve/PluginManager.h firebird/trunk/src/yvalve/alt.cpp firebird/trunk/src/yvalve/why.cpp Added Paths: ----------- firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp firebird/trunk/src/auth/SecurityDatabase/LegacyServer.h firebird/trunk/src/common/classes/GetPlugins.h firebird/trunk/src/common/security.cpp firebird/trunk/src/common/security.h Removed Paths: ------------- firebird/trunk/src/auth/SecurityDatabase/jrd_pwd.h firebird/trunk/src/auth/SecurityDatabase/pwd.cpp firebird/trunk/src/utilities/gsec/secur_proto.h firebird/trunk/src/utilities/gsec/security.cpp Modified: firebird/trunk/builds/posix/make.shared.variables =================================================================== --- firebird/trunk/builds/posix/make.shared.variables 2011-03-02 12:25:11 UTC (rev 52491) +++ firebird/trunk/builds/posix/make.shared.variables 2011-03-02 13:42:56 UTC (rev 52492) @@ -36,7 +36,8 @@ GPRE_Common_Objects:= $(call dirObjects,gpre) $(call makeObjects,gpre/languages,@GPRE_LANGUAGE_MODULES@) GPRE_std:= $(call dirObjects,gpre/std) GPRE_Objects:= $(GPRE_Common_Objects) $(GPRE_std) -GPRE_boot:= $(call dirObjects,gpre/boot) $(call makeObjects,yvalve,gds.cpp) +GPRE_boot:= $(call dirObjects,gpre/boot) $(call makeObjects,yvalve,gds.cpp) \ + $(call makeObjects,yvalve,MasterImplementation.cpp) $(call makeObjects,yvalve,PluginManager.cpp) GPRE_Boot_Objects:= $(GPRE_Common_Objects) $(GPRE_boot) AllObjects += $(GPRE_Common_Objects) $(GPRE_std) $(GPRE_boot) @@ -50,8 +51,8 @@ # Remote Remote_Common:= $(call dirObjects,remote) -Remote_Server:= $(call dirObjects,remote/server) $(call makeObjects,auth/SecurityDatabase,pwd.cpp) - # legacy security database pwd.cpp should become SA plugin +Remote_Server:= $(call dirObjects,remote/server) $(call makeObjects,auth/SecurityDatabase,LegacyServer.cpp) + # legacy security database LegacyServer.cpp should become SA plugin Remote_Client:= $(call dirObjects,remote/client) $(call makeObjects,auth/SecurityDatabase,LegacyClient.cpp) Remote_Server_Objects:= $(Remote_Common) $(Remote_Server) Remote_Client_Objects:= $(Remote_Common) $(Remote_Client) Modified: firebird/trunk/src/auth/AuthInterface.h =================================================================== --- firebird/trunk/src/auth/AuthInterface.h 2011-03-02 12:25:11 UTC (rev 52491) +++ firebird/trunk/src/auth/AuthInterface.h 2011-03-02 13:42:56 UTC (rev 52492) @@ -31,10 +31,6 @@ #include "FirebirdPluginApi.h" -// This is temporal measure - see later -struct internal_user_data; -#include "../utilities/gsec/secur_proto.h" - namespace Firebird { class Status; } @@ -81,16 +77,79 @@ }; #define FB_AUTH_CLIENT_VERSION (FB_PLUGIN_VERSION + 3) +class UserField : public Firebird::Interface +{ +public: + virtual int FB_CARG entered() = 0; + virtual int FB_CARG specified() = 0; + virtual void FB_CARG setEntered(int newValue) = 0; +}; +#define FB_USER_FIELD_VERSION (FB_INTERFACE_VERSION + 3) + +class CharUserField : public UserField +{ +public: + virtual const char* FB_CARG get() = 0; + virtual void FB_CARG set(const char* newValue) = 0; +}; +#define FB_AUTH_CHAR_USER_VERSION (FB_USER_FIELD_VERSION + 2) + +class IntUserField : public UserField +{ +public: + virtual int FB_CARG get() = 0; + virtual void FB_CARG set(int newValue) = 0; +}; +#define FB_AUTH_INT_USER_VERSION (FB_USER_FIELD_VERSION + 2) + +class User : public Firebird::Interface +{ +public: + virtual int FB_CARG operation() = 0; + + virtual CharUserField* FB_CARG userName() = 0; + virtual CharUserField* FB_CARG password() = 0; + + virtual CharUserField* FB_CARG firstName() = 0; + virtual CharUserField* FB_CARG lastName() = 0; + virtual CharUserField* FB_CARG middleName() = 0; + virtual CharUserField* FB_CARG groupName() = 0; + + virtual IntUserField* FB_CARG uid() = 0; + virtual IntUserField* FB_CARG gid() = 0; + virtual IntUserField* FB_CARG admin() = 0; + + virtual void FB_CARG clear() = 0; +}; +#define FB_AUTH_USER_VERSION (FB_INTERFACE_VERSION + 11) + +class ListUsers : public Firebird::Interface +{ +public: + virtual void FB_CARG list(User* user) = 0; +}; +#define FB_AUTH_LIST_USERS_VERSION (FB_INTERFACE_VERSION + 1) + +class LogonInfo : public Firebird::Interface +{ +public: + virtual const char* FB_CARG name() = 0; + virtual const char* FB_CARG role() = 0; + virtual int FB_CARG forceAdmin() = 0; + virtual const char* FB_CARG networkProtocol() = 0; + virtual const char* FB_CARG remoteAddress() = 0; +}; +#define FB_AUTH_LOGON_INFO_VERSION (FB_INTERFACE_VERSION + 5) + class Management : public Firebird::Plugin { public: - // work in progress - we must avoid both internal_user_data and callback function - virtual int FB_CARG execLine(ISC_STATUS* isc_status, const char *realUser, - FB_API_HANDLE db, FB_API_HANDLE trans, - internal_user_data* io_user_data, - FPTR_SECURITY_CALLBACK display_func, void* callback_arg) = 0; + virtual void FB_CARG start(Firebird::Status* status, LogonInfo* logonInfo) = 0; + virtual int FB_CARG execute(Firebird::Status* status, User* user, ListUsers* callback) = 0; + virtual void FB_CARG commit(Firebird::Status* status) = 0; + virtual void FB_CARG rollback(Firebird::Status* status) = 0; }; -#define FB_AUTH_MANAGE_VERSION (FB_PLUGIN_VERSION + 1) +#define FB_AUTH_MANAGE_VERSION (FB_PLUGIN_VERSION + 4) } // namespace Auth Modified: firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.epp =================================================================== --- firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.epp 2011-03-02 12:25:11 UTC (rev 52491) +++ firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.epp 2011-03-02 13:42:56 UTC (rev 52492) @@ -29,7 +29,7 @@ #include <ctype.h> #include "../common/common.h" #include "../jrd/ibase.h" -#include "../auth/SecurityDatabase/jrd_pwd.h" +#include "../auth/SecurityDatabase/LegacyServer.h" #include "../common/enc_proto.h" #include "../yvalve/gds_proto.h" #include "../common/isc_proto.h" @@ -42,34 +42,34 @@ #include "FirebirdPluginApi.h" // Here we use version-independent symbolic link (or copy) of actual database -DATABASE DB = STATIC FILENAME "security.fdb"; +DATABASE database = STATIC FILENAME "security.fdb"; static Firebird::GlobalPtr<Firebird::Mutex> execLineMutex; // protects various gpre generated structures -static bool grantRevokeAdmin(ISC_STATUS* isc_status, FB_API_HANDLE DB, FB_API_HANDLE trans, - const internal_user_data* io_user_data) +static bool grantRevokeAdmin(ISC_STATUS* isc_status, FB_API_HANDLE database, FB_API_HANDLE trans, + Auth::User* user) { - if (!io_user_data->admin_entered) + if (!user->admin()->entered()) { return true; } Firebird::string sql; - sql.printf((io_user_data->admin ? "GRANT %s TO \"%s\"" : "REVOKE %s FROM \"%s\""), - "RDB$ADMIN", io_user_data->user_name); - isc_dsql_execute_immediate(isc_status, &DB, &trans, sql.length(), sql.c_str(), SQL_DIALECT_V6, NULL); + sql.printf((user->admin()->get() ? "GRANT %s TO \"%s\"" : "REVOKE %s FROM \"%s\""), + "RDB$ADMIN", user->userName()->get()); + isc_dsql_execute_immediate(isc_status, &database, &trans, sql.length(), sql.c_str(), SQL_DIALECT_V6, NULL); - if (isc_status[1] && io_user_data->admin == 0) + if (isc_status[1] && user->admin()->get() == 0) { isc_req_handle request = 0; FOR (TRANSACTION_HANDLE trans REQUEST_HANDLE request) R IN RDB$USER_PRIVILEGES - WITH R.RDB$USER EQ io_user_data->user_name + WITH R.RDB$USER EQ user->userName()->get() AND R.RDB$RELATION_NAME EQ 'RDB$ADMIN' AND R.RDB$PRIVILEGE EQ 'M' sql.printf("REVOKE RDB$ADMIN FROM \"%s\" GRANTED BY \"%s\"", - io_user_data->user_name, R.RDB$GRANTOR); + user->userName()->get(), R.RDB$GRANTOR); END_FOR if (request) @@ -81,20 +81,20 @@ } } - isc_dsql_execute_immediate(isc_status, &DB, &trans, sql.length(), sql.c_str(), SQL_DIALECT_V6, NULL); + isc_dsql_execute_immediate(isc_status, &database, &trans, sql.length(), sql.c_str(), SQL_DIALECT_V6, NULL); } return isc_status[1] == 0; } /* -static bool storePasswd(ISC_STATUS* isc_status, FB_API_HANDLE DB, FB_API_HANDLE trans, +static bool storePasswd(ISC_STATUS* isc_status, FB_API_HANDLE database, FB_API_HANDLE trans, ISC_QUAD& blobId, const Firebird::string& passwd) { UserBlob blob(isc_status); const UCHAR blob_desc[] = {isc_bpb_version1, isc_bpb_type, 1, isc_blob_untyped}; - if (!blob.create(DB, trans, blobId, sizeof(blob_desc), blob_desc)) + if (!blob.create(database, trans, blobId, sizeof(blob_desc), blob_desc)) { return false; } @@ -108,15 +108,143 @@ } */ -// work in progress - we must avoid both internal_user_data and callback function -int Auth::SecurityDatabaseManagement::execLine(ISC_STATUS* isc_status, - const char* realUser, - FB_API_HANDLE DB, - FB_API_HANDLE trans, - internal_user_data* io_user_data, - FPTR_SECURITY_CALLBACK display_func, - void* callback_arg) +const static unsigned int INIT_KEY = ((~0) - 1); +static unsigned int secDbKey = INIT_KEY; + +namespace Auth { + +SecurityDatabaseManagement::SecurityDatabaseManagement(Firebird::IFactoryParameter* par) + : config(par->getFirebirdConf()), database(0), transaction(0), userName(getPool()) { + config->release(); +} + +void FB_CARG SecurityDatabaseManagement::start(Firebird::Status* st, LogonInfo* logonInfo) +{ + try + { + st->init(); + + if (secDbKey == INIT_KEY) + { + secDbKey = config->getKey("SecurityDatabase"); + } + const char* secDbName = config->asString(secDbKey); + + if (!(secDbName && secDbName[0])) + { + (Firebird::Arg::Gds(isc_random) << "Error getting security database name").raise(); + } + + Firebird::ClumpletWriter dpb(Firebird::ClumpletReader::dpbList, MAX_DPB_SIZE); + dpb.insertByte(isc_dpb_gsec_attach, TRUE); + + const char* str = logonInfo->name(); + if (str && str[0]) + { + dpb.insertString(isc_dpb_trusted_auth, str, strlen(str)); + userName = str; + } + else + { + userName = "<Unknown>"; + } + + str = logonInfo->role(); + if (str && str[0]) + dpb.insertString(isc_dpb_sql_role_name, str, strlen(str)); + else if (logonInfo->forceAdmin()) + dpb.insertString(isc_dpb_trusted_role, ADMIN_ROLE, strlen(ADMIN_ROLE)); + + // Work in progress - should put remote data to DPB !!! + + ISC_STATUS_ARRAY status; + if (isc_attach_database(status, 0, secDbName, &database, + dpb.getBufferLength(), reinterpret_cast<const char*>(dpb.getBuffer()))) + { + Firebird::status_exception::raise(status); + } + + if (isc_start_transaction(status, &transaction, 1, &database, 0, NULL)) + { + Firebird::status_exception::raise(status); + } + } + catch (const Firebird::Exception& ex) + { + ex.stuffException(st); + } +} + +void FB_CARG SecurityDatabaseManagement::commit(Firebird::Status* st) +{ + try + { + st->init(); + + ISC_STATUS_ARRAY status; + if (transaction) + { + if (isc_commit_transaction(status, &transaction)) + { + Firebird::status_exception::raise(status); + } + } + } + catch (const Firebird::Exception& ex) + { + ex.stuffException(st); + } +} + +void FB_CARG SecurityDatabaseManagement::rollback(Firebird::Status* st) +{ + try + { + st->init(); + + ISC_STATUS_ARRAY status; + if (transaction) + { + if (isc_rollback_transaction(status, &transaction)) + { + Firebird::status_exception::raise(status); + } + } + } + catch (const Firebird::Exception& ex) + { + ex.stuffException(st); + } +} + +int FB_CARG SecurityDatabaseManagement::release() +{ + if (--refCounter == 0) + { + ISC_STATUS_ARRAY status; + if (transaction) + isc_rollback_transaction(status, &transaction); + if (database) + isc_detach_database(status, &database); + + delete this; + return 0; + } + + return 1; +} + +#define STR_STORE(to, from) strStore(to, from, sizeof(to)) + +static inline void strStore(char* to, const char* from, size_t len) +{ + to[--len] = '\0'; + strncpy(to, from, len); +} + +int FB_CARG SecurityDatabaseManagement::execute(Firebird::Status* st, User* user, ListUsers* callback) +{ /************************************* * * S E C U R I T Y _ e x e c _ l i n e @@ -177,380 +305,346 @@ * -lname <lastname> * **************************************/ - Firebird::MutexLockGuard guard(execLineMutex); - - SCHAR encrypted1[Auth::MAX_PASSWORD_LENGTH + 2]; - Firebird::string encrypted2; - bool found; int ret = 0; - // check for non-printable characters in user name - for (const TEXT* p = io_user_data->user_name; *p; p++) + try { - if (! isprint(*p)) { - return GsecMsg75; // Add special error message for this case ? - } - } + ISC_STATUS_ARRAY isc_status; + fb_utils::init_status(isc_status); + st->init(); - isc_req_handle request = 0; - isc_req_handle request2 = 0; + Firebird::MutexLockGuard guard(execLineMutex); - switch (io_user_data->operation) - { - case MAP_DROP_OPER: - case MAP_SET_OPER: - if (realUser) + SCHAR encrypted1[MAX_PASSWORD_LENGTH + 2]; + Firebird::string encrypted2; + bool found; + + // check for non-printable characters in user name + for (const TEXT* p = user->userName()->get(); *p; p++) { - ret = GsecMsg104; - break; - } - { - Firebird::string sql; - sql.printf("ALTER ROLE RDB$ADMIN %s AUTO ADMIN MAPPING", - io_user_data->operation == MAP_SET_OPER ? "SET" : "DROP"); - isc_dsql_execute_immediate(isc_status, &DB, &trans, sql.length(), sql.c_str(), 1, NULL); - if (isc_status[1] != 0) + if (!isprint(*p)) { - ret = GsecMsg97; + return GsecMsg75; // Add special error message for this case ? } } - break; - case ADD_OPER: - if (realUser) + + isc_req_handle request = 0; + isc_req_handle request2 = 0; + + switch (user->operation()) { - ret = GsecMsg104; - break; - } - // this checks the "entered" flags for each parameter (except the name) - // and makes all non-entered parameters null valued - - STORE (TRANSACTION_HANDLE trans REQUEST_HANDLE request) U IN PLG$USERS USING - strcpy(U.PLG$USER_NAME, io_user_data->user_name); - if (io_user_data->uid_entered) + case MAP_DROP_OPER: + case MAP_SET_OPER: { - U.PLG$UID = io_user_data->uid; - U.PLG$UID.NULL = ISC_FALSE; + Firebird::string sql; + sql.printf("ALTER ROLE RDB$ADMIN %s AUTO ADMIN MAPPING", + user->operation() == MAP_SET_OPER ? "SET" : "DROP"); + isc_dsql_execute_immediate(isc_status, &database, &transaction, sql.length(), sql.c_str(), 1, NULL); + if (isc_status[1] != 0) + { + ret = GsecMsg97; + } } - else - U.PLG$UID.NULL = ISC_TRUE; - if (io_user_data->gid_entered) - { - U.PLG$GID = io_user_data->gid; - U.PLG$GID.NULL = ISC_FALSE; - } - else - U.PLG$GID.NULL = ISC_TRUE; - if (io_user_data->group_name_entered) - { - strcpy(U.PLG$GROUP_NAME, io_user_data->group_name); - U.PLG$GROUP_NAME.NULL = ISC_FALSE; - } - else - U.PLG$GROUP_NAME.NULL = ISC_TRUE; - if (io_user_data->password_entered) - { - ENC_crypt(encrypted1, sizeof encrypted1, io_user_data->password, Auth::PASSWORD_SALT); - Auth::SecurityDatabase::hash(encrypted2, io_user_data->user_name, &encrypted1[2]); - strcpy(U.PLG$PASSWD, encrypted2.c_str()); - U.PLG$PASSWD.NULL = ISC_FALSE; - } - else - U.PLG$PASSWD.NULL = ISC_TRUE; - if (io_user_data->first_name_entered) - { - strcpy(U.PLG$FIRST_NAME, io_user_data->first_name); - U.PLG$FIRST_NAME.NULL = ISC_FALSE; - } - else - U.PLG$FIRST_NAME.NULL = ISC_TRUE; - if (io_user_data->middle_name_entered) - { - strcpy(U.PLG$MIDDLE_NAME, io_user_data->middle_name); - U.PLG$MIDDLE_NAME.NULL = ISC_FALSE; - } - else - U.PLG$MIDDLE_NAME.NULL = ISC_TRUE; - if (io_user_data->last_name_entered) - { - strcpy(U.PLG$LAST_NAME, io_user_data->last_name); - U.PLG$LAST_NAME.NULL = ISC_FALSE; - } - else - U.PLG$LAST_NAME.NULL = ISC_TRUE; - END_STORE - ON_ERROR - ret = GsecMsg19; // gsec - add record error - END_ERROR; - if (ret == 0 && !grantRevokeAdmin(isc_status, DB, trans, io_user_data)) - { - ret = GsecMsg19; // gsec - add record error - } - break; - - case MOD_OPER: - if (realUser && strcmp(realUser, io_user_data->user_name)) - { - ret = GsecMsg104; break; - } - // this updates an existing record, replacing all fields that are - // entered, and for those that were specified but not entered, it - // changes the current value to the null value + case ADD_OPER: + // this checks the "entered" flags for each parameter (except the name) + // and makes all non-entered parameters null valued - found = false; - FOR (TRANSACTION_HANDLE trans REQUEST_HANDLE request) U IN PLG$USERS - WITH U.PLG$USER_NAME EQ io_user_data->user_name - found = true; - MODIFY U USING - if (io_user_data->uid_entered) + STORE (TRANSACTION_HANDLE transaction REQUEST_HANDLE request) U IN PLG$VIEW_USERS USING + STR_STORE(U.PLG$USER_NAME, user->userName()->get()); + if (user->uid()->entered()) { - U.PLG$UID = io_user_data->uid; + U.PLG$UID = user->uid()->get(); U.PLG$UID.NULL = ISC_FALSE; } - else if (io_user_data->uid_specified) + else U.PLG$UID.NULL = ISC_TRUE; - if (io_user_data->gid_entered) + if (user->gid()->entered()) { - U.PLG$GID = io_user_data->gid; + U.PLG$GID = user->gid()->get(); U.PLG$GID.NULL = ISC_FALSE; } - else if (io_user_data->gid_specified) + else U.PLG$GID.NULL = ISC_TRUE; - if (io_user_data->group_name_entered) + if (user->groupName()->entered()) { - strcpy(U.PLG$GROUP_NAME, io_user_data->group_name); + STR_STORE(U.PLG$GROUP_NAME, user->groupName()->get()); U.PLG$GROUP_NAME.NULL = ISC_FALSE; } - else if (io_user_data->group_name_specified) + else U.PLG$GROUP_NAME.NULL = ISC_TRUE; - if (io_user_data->password_entered) + if (user->password()->entered()) { - ENC_crypt(encrypted1, sizeof encrypted1, io_user_data->password, Auth::PASSWORD_SALT); - Auth::SecurityDatabase::hash(encrypted2, io_user_data->user_name, &encrypted1[2]); - strcpy(U.PLG$PASSWD, encrypted2.c_str()); + ENC_crypt(encrypted1, sizeof encrypted1, user->password()->get(), PASSWORD_SALT); + SecurityDatabase::hash(encrypted2, user->userName()->get(), &encrypted1[2]); + STR_STORE(U.PLG$PASSWD, encrypted2.c_str()); U.PLG$PASSWD.NULL = ISC_FALSE; } - else if (io_user_data->password_specified) + else U.PLG$PASSWD.NULL = ISC_TRUE; - if (io_user_data->first_name_entered) + if (user->firstName()->entered()) { - strcpy(U.PLG$FIRST_NAME, io_user_data->first_name); + STR_STORE(U.PLG$FIRST_NAME, user->firstName()->get()); U.PLG$FIRST_NAME.NULL = ISC_FALSE; } - else if (io_user_data->first_name_specified) + else U.PLG$FIRST_NAME.NULL = ISC_TRUE; - if (io_user_data->middle_name_entered) + if (user->middleName()->entered()) { - strcpy(U.PLG$MIDDLE_NAME, io_user_data->middle_name); + STR_STORE(U.PLG$MIDDLE_NAME, user->middleName()->get()); U.PLG$MIDDLE_NAME.NULL = ISC_FALSE; } - else if (io_user_data->middle_name_specified) + else U.PLG$MIDDLE_NAME.NULL = ISC_TRUE; - if (io_user_data->last_name_entered) + if (user->lastName()->entered()) { - strcpy(U.PLG$LAST_NAME, io_user_data->last_name); + STR_STORE(U.PLG$LAST_NAME, user->lastName()->get()); U.PLG$LAST_NAME.NULL = ISC_FALSE; } - else if (io_user_data->last_name_specified) + else U.PLG$LAST_NAME.NULL = ISC_TRUE; - END_MODIFY + END_STORE ON_ERROR - ret = GsecMsg20; + ret = GsecMsg19; // gsec - add record error END_ERROR; - END_FOR - ON_ERROR - ret = GsecMsg21; - END_ERROR; - if (!ret && !found) - ret = GsecMsg22; - if (ret == 0 && !grantRevokeAdmin(isc_status, DB, trans, io_user_data)) - { - ret = GsecMsg21; - } - break; - - case DEL_OPER: - if (realUser) - { - ret = GsecMsg104; + if (ret == 0 && !grantRevokeAdmin(isc_status, database, transaction, user)) + { + ret = GsecMsg19; // gsec - add record error + } break; - } - // looks up the specified user record and deletes it + case MOD_OPER: + // this updates an existing record, replacing all fields that are + // entered, and for those that were specified but not entered, it + // changes the current value to the null value - found = false; - // Do not allow SYSDBA user to be deleted - if (!fb_utils::stricmp(io_user_data->user_name, SYSDBA_USER_NAME)) - ret = GsecMsg23; - else - { - FOR (TRANSACTION_HANDLE trans REQUEST_HANDLE request) U IN PLG$USERS - WITH U.PLG$USER_NAME EQ io_user_data->user_name + found = false; + FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request) U IN PLG$VIEW_USERS + WITH U.PLG$USER_NAME EQ user->userName()->get() found = true; - ERASE U + MODIFY U USING + if (user->uid()->entered()) + { + U.PLG$UID = user->uid()->get(); + U.PLG$UID.NULL = ISC_FALSE; + } + else if (user->uid()->specified()) + U.PLG$UID.NULL = ISC_TRUE; + if (user->gid()->entered()) + { + U.PLG$GID = user->gid()->get(); + U.PLG$GID.NULL = ISC_FALSE; + } + else if (user->gid()->specified()) + U.PLG$GID.NULL = ISC_TRUE; + if (user->groupName()->entered()) + { + STR_STORE(U.PLG$GROUP_NAME, user->groupName()->get()); + U.PLG$GROUP_NAME.NULL = ISC_FALSE; + } + else if (user->groupName()->specified()) + U.PLG$GROUP_NAME.NULL = ISC_TRUE; + if (user->password()->entered()) + { + ENC_crypt(encrypted1, sizeof encrypted1, user->password()->get(), PASSWORD_SALT); + SecurityDatabase::hash(encrypted2, user->userName()->get(), &encrypted1[2]); + STR_STORE(U.PLG$PASSWD, encrypted2.c_str()); + U.PLG$PASSWD.NULL = ISC_FALSE; + } + else if (user->password()->specified()) + U.PLG$PASSWD.NULL = ISC_TRUE; + if (user->firstName()->entered()) + { + STR_STORE(U.PLG$FIRST_NAME, user->firstName()->get()); + U.PLG$FIRST_NAME.NULL = ISC_FALSE; + } + else if (user->firstName()->specified()) + U.PLG$FIRST_NAME.NULL = ISC_TRUE; + if (user->middleName()->entered()) + { + STR_STORE(U.PLG$MIDDLE_NAME, user->middleName()->get()); + U.PLG$MIDDLE_NAME.NULL = ISC_FALSE; + } + else if (user->middleName()->specified()) + U.PLG$MIDDLE_NAME.NULL = ISC_TRUE; + if (user->lastName()->entered()) + { + STR_STORE(U.PLG$LAST_NAME, user->lastName()->get()); + U.PLG$LAST_NAME.NULL = ISC_FALSE; + } + else if (user->lastName()->specified()) + U.PLG$LAST_NAME.NULL = ISC_TRUE; + END_MODIFY ON_ERROR - ret = GsecMsg23; // gsec - delete record error + ret = GsecMsg20; END_ERROR; END_FOR ON_ERROR - ret = GsecMsg24; // gsec - find/delete record error + ret = GsecMsg21; END_ERROR; - } + if (!ret && !found) + ret = GsecMsg22; + if (ret == 0 && !grantRevokeAdmin(isc_status, database, transaction, user)) + { + ret = GsecMsg21; + } + break; - if (!ret && !found) - ret = GsecMsg22; // gsec - record not found for user: + case DEL_OPER: + // looks up the specified user record and deletes it - io_user_data->admin = 0; - io_user_data->admin_entered = true; - if (ret == 0 && ! grantRevokeAdmin(isc_status, DB, trans, io_user_data)) - { - ret = GsecMsg24; - } - break; - - case DIS_OPER: - case OLD_DIS_OPER: - if (realUser) - { - if (io_user_data->user_name_entered && strcmp(realUser, io_user_data->user_name)) + found = false; + // Do not allow SYSDBA user to be deleted + if (!fb_utils::stricmp(user->userName()->get(), SYSDBA_USER_NAME)) + ret = GsecMsg23; + else { - ret = GsecMsg104; - break; + FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request) U IN PLG$VIEW_USERS + WITH U.PLG$USER_NAME EQ user->userName()->get() + found = true; + ERASE U + ON_ERROR + ret = GsecMsg23; // gsec - delete record error + END_ERROR; + END_FOR + ON_ERROR + ret = GsecMsg24; // gsec - find/delete record error + END_ERROR; } - if (!io_user_data->user_name_entered) + + if (!ret && !found) + ret = GsecMsg22; // gsec - record not found for user: + + user->admin()->set(0); + user->admin()->setEntered(1); + if (ret == 0 && !grantRevokeAdmin(isc_status, database, transaction, user)) { - if (strlen(realUser) > sizeof(io_user_data->user_name) - 1) - { - ret = GsecMsg104; - break; - } - strcpy(io_user_data->user_name, realUser); - io_user_data->user_name_entered = true; + ret = GsecMsg24; } - } + break; - // gets either the desired record, or all records, and displays them + case DIS_OPER: + case OLD_DIS_OPER: + // gets either the desired record, or all records, and displays them - found = false; - if (!io_user_data->user_name_entered) - { - FOR (TRANSACTION_HANDLE trans REQUEST_HANDLE request) U IN PLG$USERS - io_user_data->uid = U.PLG$UID; - io_user_data->uid_entered = !U.PLG$UID.NULL; - io_user_data->gid = U.PLG$GID; - io_user_data->gid_entered = !U.PLG$GID.NULL; - strcpy(io_user_data->user_name, U.PLG$USER_NAME); - io_user_data->user_name_entered = !U.PLG$USER_NAME.NULL; - strcpy(io_user_data->group_name, U.PLG$GROUP_NAME); - io_user_data->group_name_entered = !U.PLG$GROUP_NAME.NULL; - io_user_data->password[0] = 0; - io_user_data->password_entered = false; - strcpy(io_user_data->first_name, U.PLG$FIRST_NAME); - io_user_data->first_name_entered = !U.PLG$FIRST_NAME.NULL; - strcpy(io_user_data->middle_name, U.PLG$MIDDLE_NAME); - io_user_data->middle_name_entered = !U.PLG$MIDDLE_NAME.NULL; - strcpy(io_user_data->last_name, U.PLG$LAST_NAME); - io_user_data->last_name_entered = !U.PLG$LAST_NAME.NULL; + found = false; + if (!user->userName()->entered()) + { + FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request) U IN PLG$VIEW_USERS + user->uid()->set(U.PLG$UID); + user->uid()->setEntered(U.PLG$UID.NULL ? 0 : 1); + user->gid()->set(U.PLG$GID); + user->gid()->setEntered(U.PLG$GID.NULL ? 0 : 1); + user->userName()->set(U.PLG$USER_NAME); + user->userName()->setEntered(U.PLG$USER_NAME.NULL ? 0 : 1); + user->groupName()->set(U.PLG$GROUP_NAME); + user->groupName()->setEntered(U.PLG$GROUP_NAME.NULL ? 0 : 1); + user->password()->set(""); + user->password()->setEntered(0); + user->firstName()->set(U.PLG$FIRST_NAME); + user->firstName()->setEntered(U.PLG$FIRST_NAME.NULL ? 0 : 1); + user->middleName()->set(U.PLG$MIDDLE_NAME); + user->middleName()->setEntered(U.PLG$MIDDLE_NAME.NULL ? 0 : 1); + user->lastName()->set(U.PLG$LAST_NAME); + user->lastName()->setEntered(U.PLG$LAST_NAME.NULL ? 0 : 1); - io_user_data->admin = 0; - FOR (TRANSACTION_HANDLE trans REQUEST_HANDLE request2) P IN RDB$USER_PRIVILEGES - WITH P.RDB$USER EQ U.PLG$USER_NAME - AND P.RDB$RELATION_NAME EQ 'RDB$ADMIN' - AND P.RDB$PRIVILEGE EQ 'M' - io_user_data->admin = 1; + user->admin()->set(0); + FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request2) P IN RDB$USER_PRIVILEGES + WITH P.RDB$USER EQ U.PLG$USER_NAME + AND P.RDB$RELATION_NAME EQ 'RDB$ADMIN' + AND P.RDB$PRIVILEGE EQ 'M' + user->admin()->set(1); + END_FOR + + callback->list(user); + + found = true; END_FOR + ON_ERROR + ret = GsecMsg28; // gsec - find/display record error + END_ERROR; + } + else + { + FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request) U IN PLG$VIEW_USERS + WITH U.PLG$USER_NAME EQ user->userName()->get() + user->uid()->set(U.PLG$UID); + user->uid()->setEntered(U.PLG$UID.NULL ? 0 : 1); + user->gid()->set(U.PLG$GID); + user->gid()->setEntered(U.PLG$GID.NULL ? 0 : 1); + user->userName()->set(U.PLG$USER_NAME); + user->userName()->setEntered(U.PLG$USER_NAME.NULL ? 0 : 1); + user->groupName()->set(U.PLG$GROUP_NAME); + user->groupName()->setEntered(U.PLG$GROUP_NAME.NULL ? 0 : 1); + user->password()->set(""); + user->password()->setEntered(0); + user->firstName()->set(U.PLG$FIRST_NAME); + user->firstName()->setEntered(U.PLG$FIRST_NAME.NULL ? 0 : 1); + user->middleName()->set(U.PLG$MIDDLE_NAME); + user->middleName()->setEntered(U.PLG$MIDDLE_NAME.NULL ? 0 : 1); + user->lastName()->set(U.PLG$LAST_NAME); + user->lastName()->setEntered(U.PLG$LAST_NAME.NULL ? 0 : 1); - display_func(callback_arg, io_user_data, !found); + user->admin()->set(0); + FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request2) P IN RDB$USER_PRIVILEGES + WITH P.RDB$USER EQ U.PLG$USER_NAME + AND P.RDB$RELATION_NAME EQ 'RDB$ADMIN' + AND P.RDB$PRIVILEGE EQ 'M' + user->admin()->set(1); + END_FOR - found = true; - END_FOR - ON_ERROR - ret = GsecMsg28; // gsec - find/display record error - END_ERROR; - } - else - { - FOR (TRANSACTION_HANDLE trans REQUEST_HANDLE request) U IN PLG$USERS - WITH U.PLG$USER_NAME EQ io_user_data->user_name - io_user_data->uid = U.PLG$UID; - io_user_data->uid_entered = !U.PLG$UID.NULL; - io_user_data->gid = U.PLG$GID; - io_user_data->gid_entered = !U.PLG$GID.NULL; - strcpy(io_user_data->user_name, U.PLG$USER_NAME); - io_user_data->user_name_entered = !U.PLG$USER_NAME.NULL; - strcpy(io_user_data->group_name, U.PLG$GROUP_NAME); - io_user_data->group_name_entered = !U.PLG$GROUP_NAME.NULL; - io_user_data->password[0] = 0; - io_user_data->password_entered = false; - strcpy(io_user_data->first_name, U.PLG$FIRST_NAME); - io_user_data->first_name_entered = !U.PLG$FIRST_NAME.NULL; - strcpy(io_user_data->middle_name, U.PLG$MIDDLE_NAME); - io_user_data->middle_name_entered = !U.PLG$MIDDLE_NAME.NULL; - strcpy(io_user_data->last_name, U.PLG$LAST_NAME); - io_user_data->last_name_entered = !U.PLG$LAST_NAME.NULL; + callback->list(user); - io_user_data->admin = 0; - FOR (TRANSACTION_HANDLE trans REQUEST_HANDLE request2) P IN RDB$USER_PRIVILEGES - WITH P.RDB$USER EQ U.PLG$USER_NAME - AND P.RDB$RELATION_NAME EQ 'RDB$ADMIN' - AND P.RDB$PRIVILEGE EQ 'M' - io_user_data->admin = 1; + found = true; END_FOR + ON_ERROR + ret = GsecMsg28; // gsec - find/display record error + END_ERROR; + } + break; - display_func(callback_arg, io_user_data, !found); - - found = true; - END_FOR - ON_ERROR - ret = GsecMsg28; // gsec - find/display record error - END_ERROR; + default: + ret = GsecMsg16; // gsec - error in switch specifications + break; } - break; - default: - ret = GsecMsg16; // gsec - error in switch specifications - break; - } - - if (request) - { - ISC_STATUS_ARRAY s; - if (isc_release_request(s, &request) != FB_SUCCESS) + if (request) { - if (! ret) + ISC_STATUS_ARRAY s; + if (isc_release_request(s, &request) != FB_SUCCESS) { - ret = GsecMsg94; // error releasing request in security database + if (! ret) + { + ret = GsecMsg94; // error releasing request in security database + } } } - } - if (request2) - { - ISC_STATUS_ARRAY s; - if (isc_release_request(s, &request2) != FB_SUCCESS) + if (request2) { - if (! ret) + ISC_STATUS_ARRAY s; + if (isc_release_request(s, &request2) != FB_SUCCESS) { - ret = GsecMsg94; // error releasing request in security database + if (! ret) + { + ret = GsecMsg94; // error releasing request in security database + } } } + + st->set(isc_status); } + catch (const Firebird::Exception& ex) + { + ex.stuffException(st); + } return ret; } -int Auth::SecurityDatabaseManagement::release() -{ - if (--refCounter == 0) - { - delete this; - return 0; - } +} // namespace Auth - return 1; -} - // register plugin static Firebird::SimpleFactory<Auth::SecurityDatabaseManagement> factory; Modified: firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.h =================================================================== --- firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.h 2011-03-02 12:25:11 UTC (rev 52491) +++ firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.h 2011-03-02 13:42:56 UTC (rev 52492) @@ -36,17 +36,19 @@ class SecurityDatabaseManagement : public Firebird::StdPlugin<Management, FB_AUTH_MANAGE_VERSION> { public: - explicit SecurityDatabaseManagement(Firebird::IFactoryParameter*) - { - } + explicit SecurityDatabaseManagement(Firebird::IFactoryParameter* par); - // work in progress - we must avoid both internal_user_data and callback function - int FB_CARG execLine(ISC_STATUS* isc_status, const char* realUser, - FB_API_HANDLE db, FB_API_HANDLE trans, - internal_user_data* io_user_data, - FPTR_SECURITY_CALLBACK display_func, void* callback_arg); + void FB_CARG start(Firebird::Status* status, LogonInfo* logonInfo); + int FB_CARG execute(Firebird::Status* status, User* user, ListUsers* callback); + void FB_CARG commit(Firebird::Status* status); + void FB_CARG rollback(Firebird::Status* status); int FB_CARG release(); + +private: + Firebird::RefPtr<Firebird::IFirebirdConf> config; + FB_API_HANDLE database, transaction; + Firebird::string userName; }; } // namespace Auth Copied: firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp (from rev 52312, firebird/trunk/src/auth/SecurityDatabase/pwd.cpp) =================================================================== --- firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp (rev 0) +++ firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp 2011-03-02 13:42:56 UTC (rev 52492) @@ -0,0 +1,577 @@ +/* + * PROGRAM: JRD Access Method + * MODULE: pwd.cpp + * DESCRIPTION: User information database access + * + * The contents of this file are subject to the Interbase Public + * License Version 1.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy + * of the License at http://www.Inprise.com/IPL.html + * + * Software distributed under the License is distributed on an + * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express + * or implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code was created by Inprise Corporation + * and its predecessors. Portions created by Inprise Corporation are + * Copyright (C) Inprise Corporation. + * + * All Rights Reserved. + * Contributor(s): ______________________________________. + * + * 2003.02.02 Dmitry Yemanov: Implemented cached security database connection + */ + +#include "firebird.h" +#include <string.h> +#include <stdlib.h> +#include <time.h> +#include "../common/common.h" +#include "../jrd/ibase.h" +#include "../jrd/jrd.h" +#include "../auth/SecurityDatabase/LegacyServer.h" +#include "../common/enc_proto.h" +#include "../jrd/err_proto.h" +#include "../yvalve/gds_proto.h" +#include "../common/isc_proto.h" +#include "../jrd/thread_proto.h" +#include "../jrd/jrd_proto.h" +#include "../jrd/scl.h" +#include "../common/config/config.h" +#include "../common/classes/objects_array.h" +#include "../common/classes/init.h" +#include "../common/classes/ImplementHelper.h" + +using namespace Firebird; + +namespace { + +// temporal implementation of timer + +GlobalPtr<Mutex> timerMutex; +FPTR_VOID_PTR toRun = 0; +unsigned int cnt = 0; + +int active = 0; + +int stopTimer(const int, const int mask, void*) +{ + switch(mask) + { + case fb_shut_preproviders: + active = 2; + break; + case fb_shut_finish: + while (active == 2) + { + THREAD_SLEEP(10); + } + break; + } + + return 0; +} + +THREAD_ENTRY_DECLARE threadTimer(THREAD_ENTRY_PARAM) +{ + while (active == 1) + { + { // scope + MutexLockGuard g(timerMutex); + if (cnt == 0) + { + if (toRun) + { + toRun(0); + toRun = 0; + } + } + else + { + --cnt; + } + } + + THREAD_SLEEP(100); + } + + active = 3; + return 0; +} + +int fb_alloc_timer() +{ + if (! active) + { + active = 1; + Thread::start(threadTimer, 0, 0); + fb_shutdown_callback(0, stopTimer, fb_shut_preproviders | fb_shut_finish, 0); + } + + return 1; +} + +void fb_thread_timer(int, int delay, FPTR_VOID_PTR function, void*) +{ + MutexLockGuard g(timerMutex); + + cnt = delay / 100; + if (! cnt) + { + cnt = 1; + } + + toRun = function; +} + +// BLR to search database for user name record + +const UCHAR PWD_REQUEST[] = +{ + blr_version5, + blr_begin, + blr_message, 1, 4, 0, + blr_long, 0, + blr_long, 0, + blr_short, 0, + blr_text, BLR_WORD(Auth::MAX_PASSWORD_LENGTH + 2), + blr_message, 0, 1, 0, + blr_cstring, 129, 0, + blr_receive, 0, + blr_begin, + blr_for, + blr_rse, 1, + blr_relation, 9, 'P', 'L', 'G', '$', 'U', 'S', 'E', 'R', 'S', 0, + blr_first, + blr_literal, blr_short, 0, 1, 0, + blr_boolean, + blr_eql, + blr_field, 0, 13, 'P', 'L', 'G', '$', 'U', 'S', 'E', 'R', '_', 'N', 'A', 'M', 'E', + blr_parameter, 0, 0, 0, + blr_end, + blr_send, 1, + blr_begin, + blr_assignment, + blr_field, 0, 7, 'P', 'L', 'G', '$', 'G', 'I', 'D', + blr_parameter, 1, 0, 0, + blr_assignment, + blr_field, 0, 7, 'P', 'L', 'G', '$', 'U', 'I', 'D', + blr_parameter, 1, 1, 0, + blr_assignment, + blr_literal, blr_short, 0, 1, 0, + blr_parameter, 1, 2, 0, + blr_assignment, + blr_field, 0, 10, 'P', 'L', 'G', '$', 'P', 'A', 'S', 'S', 'W', 'D', + blr_parameter, 1, 3, 0, + blr_end, + blr_send, 1, + blr_assignment, + blr_literal, blr_short, 0, 0, 0, + blr_parameter, 1, 2, 0, + blr_end, + blr_end, + blr_eoc +}; + +// Returns data in the following format + +struct user_record +{ + SLONG gid; + SLONG uid; + SSHORT flag; + SCHAR password[Auth::MAX_PASSWORD_LENGTH + 2]; +}; + +// Transaction parameter buffer + +const UCHAR TPB[4] = +{ + isc_tpb_version1, + isc_tpb_read, + isc_tpb_concurrency, + isc_tpb_wait +}; + +int timer = 0; + +} // anonymous + +namespace Auth { + +/****************************************************************************** + * + * Private interface + */ + +void SecurityDatabase::fini() +{ + isc_db_handle tmp = 0; + + { // scope + MutexLockGuard guard(mutex); + + if (lookup_req) + { + isc_release_request(status, &lookup_req); + checkStatus("isc_release_request"); + } + + tmp = lookup_db; + lookup_db = 0; + } + + if (tmp) + { + isc_detach_database(status, &tmp); + checkStatus("isc_detach_database"); + } +} + +void SecurityDatabase::init() +{ + if (! timer) + { + timer = fb_alloc_timer(); + } +} + +bool SecurityDatabase::lookup_user(const char* user_name, char* pwd) +{ + bool found = false; // user found flag + char uname[129]; // user name buffer + user_record user; // user record + + // Start by clearing the output data + + if (pwd) + *pwd = '\0'; + + strncpy(uname, user_name, sizeof uname); + uname[sizeof uname - 1] = 0; + + MutexLockGuard guard(mutex); + + // Attach database and compile request + + prepare(); + + // Lookup + + isc_tr_handle lookup_trans = 0; + + isc_start_transaction(status, &lookup_trans, 1, &lookup_db, sizeof(TPB), TPB); + checkStatus("isc_start_transaction", isc_psw_start_trans); + + isc_start_and_send(status, &lookup_req, &lookup_trans, 0, sizeof(uname), uname, 0); + checkStatus("isc_start_and_send"); + + while (true) + { + isc_receive(status, &lookup_req, 1, sizeof(user), &user, 0); + checkStatus("isc_receive"); + + if (!user.flag || status[1]) + break; + + found = true; + + if (pwd) + { + strncpy(pwd, user.password, MAX_PASSWORD_LENGTH); + pwd[MAX_PASSWORD_LENGTH] = 0; + } + } + + isc_rollback_transaction(status, &lookup_trans); + checkStatus("isc_rollback_transaction"); + + return found; +} + +void SecurityDatabase::prepare() +{ + if (lookup_db) + { + return; + } + + init(); + + lookup_db = lookup_req = 0; + + // Perhaps build up a dpb + ClumpletWriter dpb(ClumpletReader::Tagged, MAX_DPB_SIZE, isc_dpb_version1); + + // Attachment is for the security database + dpb.insertByte(isc_dpb_sec_attach, TRUE); + + // Attach as SYSDBA + dpb.insertString(isc_dpb_trusted_auth, SYSDBA_USER_NAME, strlen(SYSDBA_USER_NAME)); + + isc_db_handle tempHandle = 0; + isc_attach_database(status, 0, secureDbName, &tempHandle, + dpb.getBufferLength(), reinterpret_cast<const char*>(dpb.getBuffer())); + checkStatus("isc_attach_database", isc_psw_attach); + lookup_db = tempHandle; + + isc_compile_request(status, &lookup_db, &lookup_req, sizeof(PWD_REQUEST), + reinterpret_cast<const char*>(PWD_REQUEST)); + if (status[1]) + { + ISC_STATUS_ARRAY localStatus; + // ignore status returned in order to keep first error + isc_detach_database(localStatus, &lookup_db); + } + + checkStatus("isc_compile_request", isc_psw_attach); +} + +/****************************************************************************** + * + * Public interface + */ + +Result SecurityDatabase::verify(WriterInterface* authBlock, + ClumpletReader& originalDpb) +{ + static AmCache useNative = AM_UNKNOWN; + + if (useNative == AM_UNKNOWN) + { + // We use PathName for string comparison using platform filename comparison + // rules (case-sensitive or case-insensitive). + const PathName authMethod(Config::getAuthMethod()); + useNative = (authMethod == AmNative || authMethod == AmMixed) ? AM_ENABLED : AM_DISABLED; + } + + if (useNative == AM_DISABLED) + { + return AUTH_CONTINUE; + } + + string login, password, passwordEnc; + + for (originalDpb.rewind(); !originalDpb.isEof(); originalDpb.moveNext()) + { + switch (originalDpb.getClumpTag()) + { + case isc_dpb_user_name: + originalDpb.getString(login); + break; + case isc_dpb_password: + originalDpb.getString(password); + break; + case isc_dpb_password_enc: + originalDpb.getString(passwordEnc); + break; + } + } + + if (login.hasData() && (password.hasData() || passwordEnc.hasData())) + { + login.upper(); + + // Look up the user name in the userinfo database and use the parameters + // found there. This means that another database must be accessed, and + // that means the current context must be saved and restored. + + char pw1[MAX_PASSWORD_LENGTH + 1]; + if (!lookup_user(login.c_str(), pw1)) + { + return AUTH_FAILED; + } + pw1[MAX_PASSWORD_LENGTH] = 0; + string storedHash(pw1, MAX_PASSWORD_LENGTH); + storedHash.rtrim(); + + if (!passwordEnc.hasData()) + { + char pwt[MAX_PASSWORD_LENGTH + 2]; + ENC_crypt(pwt, sizeof pwt, password.c_str(), PASSWORD_SALT); + passwordEnc.assign(&pwt[2]); + } + + string newHash; + hash(newHash, login, passwordEnc, storedHash); + if (newHash != storedHash) + { + bool legacyHash = Config::getLegacyHash(); + if (legacyHash) + { + newHash.resize(MAX_PASSWORD_LENGTH + 2); + ENC_crypt(newHash.begin(), newHash.length(), passwordEnc.c_str(), PASSWORD_SALT); + newHash.recalculate_length(); + newHash.erase(0, 2); + legacyHash = newHash == storedHash; + } + if (!legacyHash) + { + return AUTH_FAILED; + } + } + + authBlock->add(login.c_str(), "SecDB", secureDbName); + return AUTH_SUCCESS; + } + + return AUTH_CONTINUE; +} + +void SecurityDatabase::checkStatus(const char* callName, ISC_STATUS userError) +{ + if (status[1] == 0) + { + return; + } + +#ifdef DEV_BUILD + // throw original status error + status_exception::raise(status); +#else + string message; + message.printf("Error in %s() API call when working with security database", callName); + iscLogStatus(message.c_str(), status); + + // showing real problems with security database to users is not good idea + // from security POV - therefore some generic message is used + Arg::Gds(userError).raise(); +#endif +} + +// TODO - avoid races between timer thread and auth thread +// TODO - account for too old instances and cleanup them +// WHEN - when timer interface is ready +typedef HalfStaticArray<SecurityDatabase*, 4> InstancesArray; +GlobalPtr<InstancesArray> instances; +GlobalPtr<Mutex> instancesMutex; + +void SecurityDatabase::shutdown(void*) +{ + try + { + MutexLockGuard g(instancesMutex); + InstancesArray& curInstances(instances); + for (unsigned int i = 0; i < curInstances.getCount(); ++i) + { + if (curInstances[i]) + { + curInstances[i]->fini(); + delete curInstances[i]; + curInstances[i] = NULL; + } + } + curInstances.clear(); + } + catch (Exception &ex) + { + ISC_STATUS_ARRAY status; + ex.stuff_exception(status); + if (status[0] == 1 && status[1] != isc_att_shutdown) + { + iscLogStatus("Legacy security database shutdown", status); + } + } +} + +const static unsigned int INIT_KEY = ((~0) - 1); +static unsigned int secDbKey = INIT_KEY; + +Result SecurityDatabaseServer::startAuthentication(Firebird::Status* status, + bool isService, const char*, + const unsigned char* dpb, unsigned int dpbSize, + WriterInterface* writerInterface) +{ + status->init(); + + try + { + PathName secDbName; + { // config scope + RefPtr<IFirebirdConf> config(iParameter->getFirebirdConf()); + config->release(); + + if (secDbKey == INIT_KEY) + { + secDbKey = config->getKey("SecurityDatabase"); + } + const char* tmp = config->asString(secDbKey); + if (!tmp) + { + (Arg::Gds(isc_random) << "Error getting security database name").raise(); + } + + secDbName = tmp; + } + + SecurityDatabase* instance = 0; + + fb_thread_timer(timer, 10000, SecurityDatabase::shutdown, 0); + { // guard scope + MutexLockGuard g(instancesMutex); + InstancesArray& curInstances(instances); + for (unsigned int i = 0; i < curInstances.getCount(); ++i) + { + if (secDbName == curInstances[i]->secureDbName) + { + instance = curInstances[i]; + break; + } + } + + if (!instance) + { + instance = new SecurityDatabase; + secDbName.copyTo(instance->secureDbName, sizeof(instance->secureDbName)); + curInstances.add(instance); + } + } + + fb_assert(instance); + + ClumpletReader rdr(isService ? ClumpletReader::spbList : ClumpletReader::dpbList, dpb, dpbSize); + return instance->verify(writerInterface, rdr); + } + catch (const Firebird::Exception& ex) + { + ex.stuffException(status); + return AUTH_FAILED; + } +} + +Result SecurityDatabaseServer::contAuthentication(Firebird::Status*, + WriterInterface* /*writerInterface*/, + const unsigned char* /*data*/, unsigned int /*size*/) +{ + return AUTH_FAILED; +} + +void SecurityDatabaseServer::getData(const unsigned char** data, unsigned short* dataSize) +{ + *data = NULL; + *dataSize = 0; +} + +int SecurityDatabaseServer::release() +{ + if (--refCounter == 0) + { + delete this; + return 0; + } + + return 1; +} + +namespace { + Firebird::SimpleFactory<SecurityDatabaseServer> factory; +} + +void registerLegacyServer(Firebird::IPlugin* iPlugin) +{ + factory->addRef(); + iPlugin->registerPlugin(Firebird::PluginType::AuthServer, "Legacy_Auth", &factory); +} + +} // namespace Auth Property changes on: firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Copied: firebird/trunk/src/auth/SecurityDatabase/LegacyServer.h (from rev 52312, firebird/trunk/src/auth/SecurityDatabase/jrd_pwd.h) =================================================================== --- firebird/trunk/src/auth/SecurityDatabase/LegacyServer.h (rev 0) +++ firebird/trunk/src/auth/SecurityDatabase/LegacyServer.h 2011-03-02 13:42:56 UTC (rev 52492) @@ -0,0 +1,130 @@ +/* + * PROGRAM: JRD Access Method + * MODULE: jrd_pwd.h + * DESCRIPTION: User information database name + * + * The contents of this file are subject to the Interbase Public + * License Version 1.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy + * of the License at http://www.Inprise.com/IPL.html + * + * Software distributed under the License is distributed on an + * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express + * or implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code was created by Inprise Corporation + * and its predecessors. Portions created by Inprise Corporation are + * Copyright (C) Inprise Corporation. + * + * All Rights Reserved. + * Contributor(s): ______________________________________. + * + * 2002.10.29 Sean Leyne - Removed obsolete "Netware" port + * 2003.02.02 Dmitry Yemanov: Implemented cached security database connection + */ + +#ifndef AUTH_LEGACY_SERVER_H +#define AUTH_LEGACY_SERVER_H + +#include "../jrd/ibase.h" +#include "../common/utils_proto.h" +#include "../common/sha.h" +#include "gen/iberror.h" +#include "../common/classes/ClumpletWriter.h" +#include "../common/classes/ImplementHelper.h" + +#include "../auth/AuthInterface.h" + +#ifdef HAVE_STDLIB_H +#include <stdlib.h> +#endif +#include <time.h> + +namespace Auth { + +const size_t MAX_PASSWORD_LENGTH = 64; // used to store passwords internally +static const char* const PASSWORD_SALT = "9z"; // for old ENC_crypt() +const size_t SALT_LENGTH = 12; // measured after base64 coding + +class SecurityDatabase : public Firebird::GlobalStorage +{ +public: + Result verify(WriterInterface* authBlock, + Firebird::ClumpletReader& originalDpb); + + static void shutdown(void*); + + static void hash(Firebird::string& h, const Firebird::string& userName, const TEXT* passwd) + { + Firebird::string salt; + Jrd::CryptSupport::random(salt, SALT_LENGTH); + hash(h, userName, passwd, salt); + } + + static void hash(Firebird::string& h, + const Firebird::string& userName, + const Firebird::string& passwd, + const Firebird::string& oldHash) + { + Firebird::string salt(oldHash); + salt.resize(SALT_LENGTH, '='); + Firebird::string allData(salt); + allData += userName; + allData += passwd; + Jrd::CryptSupport::hash(h, allData); + h = salt + h; + } + + char secureDbName[MAXPATHLEN]; + + SecurityDatabase() + : lookup_db(0), lookup_req(0) + { + } + +private: + Firebird::Mutex mutex; + + ISC_STATUS_ARRAY status; + + isc_db_handle lookup_db; + isc_req_handle lookup_req; + + void init(); + void fini(); + bool lookup_user(const char*, char*); + void prepare(); + void checkStatus(const char* callName, ISC_STATUS userError = isc_psw_db_error); +}; + +class SecurityDatabaseServerFactory : public Firebird::StdIface<Firebird::PluginsFactory, FB_PLUGINS_FACTORY_VERSION> +{ +public: + Firebird::Plugin* FB_CARG createPlugin(const char* name, const char* configFile); +}; + +class SecurityDatabaseServer : public Firebird::StdPlugin<Server, FB_AUTH_SERVER_VERSION> +{ +public: + explicit SecurityDatabaseServer(Firebird::IFactoryParameter* p) + : iParameter(p) + { } + + Result FB_CARG startAuthentication(Firebird::Status* status, bool isService, const char* dbName, + const unsigned char* dpb, unsigned int dpbSize, + WriterInterface* writerInterface); + Result FB_CARG contAuthentication(Firebird::Status* status, WriterInterface* writerInterface, + const unsigned char* data, unsigned int size); + void FB_CARG getData(const unsigned char** data, unsigned short* dataSize); + int FB_CARG release(); + +private: + Firebird::RefPtr<Firebird::IFactoryParameter> iParameter; +}; + +void registerLegacyServer(Firebird::IPlugin* iPlugin); + +} // namespace Auth + +#endif // AUTH_LEGACY_SERVER_H Property changes on: firebird/trunk/src/auth/SecurityDatabase/LegacyServer.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Deleted: firebird/trunk/src/auth/SecurityDatabase/jrd_pwd.h =================================================================== --- firebird/trunk/src/auth/SecurityDatabase/jrd_pwd.h 2011-03-02 12:25:11 UTC (rev 52491) +++ firebird/trunk/src/auth/SecurityDatabase/jrd_pwd.h 2011-03-02 13:42:56 UTC (rev 52492) @@ -1,138 +0,0 @@ -/* - * PROGRAM: JRD Access Method - * MODULE: jrd_pwd.h - * DESCRIPTION: User information database name - * - * The contents of this file are subject to the Interbase Public - * License Version 1.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy - * of the License at http://www.Inprise.com/IPL.html - * - * Software distributed under the License is distributed on an - * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express - * or implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code was created by Inprise Corporation - * and its predecessors. Portions created by Inprise Corporation are - * Copyright (C) Inprise Corporation. - * - * All Rights Reserved. - * Contributor(s): ______________________________________. - * - * 2002.10.29 Sean Leyne - Removed obsolete "Netware" port - * 2003.02.02 Dmitry Yemanov: Implemented cached security database connection - */ - -#ifndef JRD_PWD_H -#define JRD_PWD_H - -#include "../jrd/ibase.h" -#include "../common/utils_proto.h" -#include "../common/sha.h" -#include "gen/iberror.h" -#include "../common/classes/ClumpletWriter.h" -#include "../common/classes/ImplementHelper.h" - -#include "../auth/AuthInterface.h" - -#ifdef HAVE_STDLIB_H -#include <stdlib.h> -#endif -#include <time.h> - -namespace Auth { - -const size_t MAX_PASSWORD_ENC_LENGTH = 12; // passed by remote protocol -const size_t MAX_PASSWORD_LENGTH = 64; // used to store passwords internally -static const char* const PASSWORD_SALT = "9z"; // for old ENC_crypt() -const size_t SALT_LENGTH = 12; // measured after base64 coding - -class SecurityDatabase -{ -public: - static void getPath(char* path_buffer) - { - static const char* USER_INFO_NAME = "security3.fdb"; - Firebird::PathName name = fb_utils::getPrefix(fb_utils::FB_DIR_SECDB, USER_INFO_NAME); - name.copyTo(path_buffer, MAXPATHLEN); - } - - static Result verify(WriterInterface* authBlock, - Firebird::ClumpletReader& originalDpb); - - static void shutdown(void*); - - static void hash(Firebird::string& h, const Firebird::string& userName, const TEXT* passwd) - { - Firebird::string salt; - Jrd::CryptSupport::random(salt, SALT_LENGTH); - hash(h, userName, passwd, salt); - } - - static void hash(Firebird::string& h, - const Firebird::string& userName, - const Firebird::string& passwd, - const Firebird::string& oldHash) - { - Firebird::string salt(oldHash); - salt.resize(SALT_LENGTH, '='); - Firebird::string allData(salt); - allData += userName; - allData += passwd; - Jrd::CryptSupport::hash(h, allData); - h = salt + h; - } - -private: - Firebird::Mutex mutex; - - ISC_STATUS_ARRAY status; - - isc_db_handle lookup_db; - isc_req_handle lookup_req; - - int timer; - char user_info_name[MAXPATHLEN]; - - void init(); - void fini(); - bool lookup_user(const char*, char*); - void prepare(); - void checkStatus(const char* callName, ISC_STATUS userError = isc_psw_db_error); - - static SecurityDatabase instance; - - SecurityDatabase() - : lookup_db(0), lookup_req(0), timer(0) - { - } -}; - -class SecurityDatabaseServerFactory : public Firebird::StdIface<Firebird::PluginsFactory, FB_PLUGINS_FACTORY_VERSION> -{ -public: - Firebird::Plugin* FB_CARG createPlugin(const char* name, const char* configFile); -}; - -class SecurityDatabaseServer : public Firebird::StdPlugin<Server, FB_AUTH_SERVER_VERSION> -{ -public: - explicit SecurityDatabaseServer(Firebird::IFactoryParameter*) - { - } - - Result FB_CARG startAuthentication(Firebird::Status* status, bool isService, const char* dbName, - const unsigned char* dpb, unsigned int dpbSize, - WriterInterface* writerInterface); - Result FB_CARG contAuthentication(Firebird::Status* status, WriterInterface* writerInterface, - const unsigned char* data, unsigned int size); - void FB_CARG getData(const unsigned char** data, unsigned short* dataSize); - int FB_CARG release(); -}; - -void registerLegacyServer(Firebird::IPlugin* iPlugin); - -} // namespace Auth - -#endif // JRD_PWD_H Deleted: firebird/trunk/src/auth/SecurityDatabase/pwd.cpp =================================================================== --- firebird/trunk/src/auth/SecurityDatabase/pwd.cpp 2011-03-02 12:25:11 UTC (rev 52491) +++ firebird/trunk/src/auth/SecurityDatabase/pwd.cpp 2011-03-02 13:42:56 UTC (rev 52492) @@ -1,516 +0,0 @@ -/* - * PROGRAM: JRD Access Method - * MODULE: pwd.cpp - * DESCRIPTION: User information database access - * - * The contents of this file are subject to the Interbase Public - * License Version 1.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy - * of the License at http://www.Inprise.com/IPL.html - * - * Software distributed under the License is distributed on an - * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express - * or implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code was created by Inprise Corporation - * and its predecessors. Portions created by Inprise Corporation are - * Copyright (C) Inprise Corporation. - * - * All Rights Reserved. - * Contributor(s): ______________________________________. - * - * 2003.02.02 Dmitry Yemanov: Implemented cached security database connection - */ - -#include "firebird.h" -#include <string.h> -#include <stdlib.h> -#include <time.h> -#include "../common/common.h" -#include "../jrd/ibase.h" -#include "../jrd/jrd.h" -#include "../auth/SecurityDatabase/jrd_pwd.h" -#include "../common/enc_proto.h" -#include "../jrd/err_proto.h" -#include "../yvalve/gds_proto.h" -#include "../common/isc_proto.h" -#include "../jrd/thread_proto.h" -#include "../jrd/jrd_proto.h" -#include "../jrd/scl.h" -#include "../common/config/config.h" -#include "../common/classes/objects_array.h" -#include "../common/classes/init.h" -#include "../common/classes/ImplementHelper.h" - -using namespace Firebird; - -namespace { - -// temporal implementation of timer - -GlobalPtr<Mutex> timerMutex; -FPTR_VOID_PTR toRun = 0; -unsigned int cnt = 0; - -int active = 0; - -int stopTimer(const int, const int mask, void*) -{ - switch(mask) - { - case fb_shut_preproviders: - active = 2; - break; - case fb_shut_finish: - while (active == 2) - { - THREAD_SLEEP(10); - } - break; - } - ... [truncated message content] |
From: <hv...@us...> - 2011-03-02 23:43:04
|
Revision: 52493 http://firebird.svn.sourceforge.net/firebird/?rev=52493&view=rev Author: hvlad Date: 2011-03-02 23:42:58 +0000 (Wed, 02 Mar 2011) Log Message: ----------- Follow Alex changes Modified Paths: -------------- firebird/trunk/builds/win32/msvc10/common.vcxproj firebird/trunk/builds/win32/msvc10/common.vcxproj.filters firebird/trunk/builds/win32/msvc10/engine.vcxproj firebird/trunk/builds/win32/msvc10/engine.vcxproj.filters firebird/trunk/builds/win32/msvc10/fbserver.vcxproj firebird/trunk/builds/win32/msvc10/fbserver.vcxproj.filters firebird/trunk/builds/win32/msvc10/gsec.vcxproj firebird/trunk/builds/win32/msvc10/gsec.vcxproj.filters firebird/trunk/src/gpre/boot/gpre_meta_boot.cpp firebird/trunk/src/remote/server/os/win32/srvr_w32.cpp firebird/trunk/src/utilities/gsec/gsec.cpp Modified: firebird/trunk/builds/win32/msvc10/common.vcxproj =================================================================== --- firebird/trunk/builds/win32/msvc10/common.vcxproj 2011-03-02 13:42:56 UTC (rev 52492) +++ firebird/trunk/builds/win32/msvc10/common.vcxproj 2011-03-02 23:42:58 UTC (rev 52493) @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="utf-8"?> +<?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup Label="ProjectConfigurations"> <ProjectConfiguration Include="Debug|Win32"> @@ -64,6 +64,7 @@ <ClCompile Include="..\..\..\src\common\quad.cpp" /> <ClCompile Include="..\..\..\src\common\ScanDir.cpp" /> <ClCompile Include="..\..\..\src\common\sdl.cpp" /> + <ClCompile Include="..\..\..\src\common\security.cpp" /> <ClCompile Include="..\..\..\src\common\sha.cpp" /> <ClCompile Include="..\..\..\src\common\StatusArg.cpp" /> <ClCompile Include="..\..\..\src\common\StatusHolder.cpp" /> Modified: firebird/trunk/builds/win32/msvc10/common.vcxproj.filters =================================================================== --- firebird/trunk/builds/win32/msvc10/common.vcxproj.filters 2011-03-02 13:42:56 UTC (rev 52492) +++ firebird/trunk/builds/win32/msvc10/common.vcxproj.filters 2011-03-02 23:42:58 UTC (rev 52493) @@ -183,6 +183,9 @@ <ClCompile Include="..\..\..\src\common\os\win32\path_utils.cpp"> <Filter>common</Filter> </ClCompile> + <ClCompile Include="..\..\..\src\common\security.cpp"> + <Filter>common</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <ClInclude Include="..\..\..\src\common\xdr_proto.h"> Modified: firebird/trunk/builds/win32/msvc10/engine.vcxproj =================================================================== --- firebird/trunk/builds/win32/msvc10/engine.vcxproj 2011-03-02 13:42:56 UTC (rev 52492) +++ firebird/trunk/builds/win32/msvc10/engine.vcxproj 2011-03-02 23:42:58 UTC (rev 52493) @@ -158,7 +158,6 @@ <ClCompile Include="..\..\..\src\jrd\VirtualTable.cpp" /> <ClCompile Include="..\..\..\src\lock\lock.cpp" /> <ClCompile Include="..\..\..\src\utilities\gsec\gsec.cpp" /> - <ClCompile Include="..\..\..\src\utilities\gsec\security.cpp" /> <ClCompile Include="..\..\..\src\utilities\gstat\ppg.cpp" /> <ClCompile Include="..\..\..\src\utilities\nbackup\nbackup.cpp" /> </ItemGroup> @@ -561,4 +560,4 @@ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> -</Project> +</Project> \ No newline at end of file Modified: firebird/trunk/builds/win32/msvc10/engine.vcxproj.filters =================================================================== --- firebird/trunk/builds/win32/msvc10/engine.vcxproj.filters 2011-03-02 13:42:56 UTC (rev 52492) +++ firebird/trunk/builds/win32/msvc10/engine.vcxproj.filters 2011-03-02 23:42:58 UTC (rev 52493) @@ -402,9 +402,6 @@ <ClCompile Include="..\..\..\src\utilities\gsec\gsec.cpp"> <Filter>Services</Filter> </ClCompile> - <ClCompile Include="..\..\..\src\utilities\gsec\security.cpp"> - <Filter>Services</Filter> - </ClCompile> <ClCompile Include="..\..\..\src\utilities\gstat\ppg.cpp"> <Filter>Services</Filter> </ClCompile> @@ -465,6 +462,9 @@ <ClCompile Include="..\..\..\gen\utilities\gstat\dba.cpp"> <Filter>Services</Filter> </ClCompile> + <ClCompile Include="..\..\..\src\jrd\recsrc\ConditionalStream.cpp"> + <Filter>JRD files\Data Access</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <ClInclude Include="..\..\..\src\jrd\recsrc\RecordSource.h"> @@ -1076,4 +1076,4 @@ <Filter>Resource files</Filter> </ResourceCompile> </ItemGroup> -</Project> +</Project> \ No newline at end of file Modified: firebird/trunk/builds/win32/msvc10/fbserver.vcxproj =================================================================== --- firebird/trunk/builds/win32/msvc10/fbserver.vcxproj 2011-03-02 13:42:56 UTC (rev 52492) +++ firebird/trunk/builds/win32/msvc10/fbserver.vcxproj 2011-03-02 23:42:58 UTC (rev 52493) @@ -206,7 +206,7 @@ </Link> </ItemDefinitionGroup> <ItemGroup> - <ClCompile Include="..\..\..\src\auth\SecurityDatabase\pwd.cpp" /> + <ClCompile Include="..\..\..\src\auth\SecurityDatabase\LegacyServer.cpp" /> <ClCompile Include="..\..\..\src\remote\server\os\win32\chop.cpp" /> <ClCompile Include="..\..\..\src\remote\server\os\win32\cntl.cpp" /> <ClCompile Include="..\..\..\src\remote\server\os\win32\property.cpp" /> Modified: firebird/trunk/builds/win32/msvc10/fbserver.vcxproj.filters =================================================================== --- firebird/trunk/builds/win32/msvc10/fbserver.vcxproj.filters 2011-03-02 13:42:56 UTC (rev 52492) +++ firebird/trunk/builds/win32/msvc10/fbserver.vcxproj.filters 2011-03-02 23:42:58 UTC (rev 52493) @@ -13,9 +13,6 @@ </Filter> </ItemGroup> <ItemGroup> - <ClCompile Include="..\..\..\src\auth\SecurityDatabase\pwd.cpp"> - <Filter>AUTH files</Filter> - </ClCompile> <ClCompile Include="..\..\..\src\remote\server\os\win32\window.cpp"> <Filter>Remote server</Filter> </ClCompile> @@ -34,6 +31,9 @@ <ClCompile Include="..\..\..\src\remote\server\os\win32\srvr_w32.cpp"> <Filter>Remote server</Filter> </ClCompile> + <ClCompile Include="..\..\..\src\auth\SecurityDatabase\LegacyServer.cpp"> + <Filter>AUTH files</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <None Include="..\..\..\src\remote\server\os\win32\server.ico"> Modified: firebird/trunk/builds/win32/msvc10/gsec.vcxproj =================================================================== --- firebird/trunk/builds/win32/msvc10/gsec.vcxproj 2011-03-02 13:42:56 UTC (rev 52492) +++ firebird/trunk/builds/win32/msvc10/gsec.vcxproj 2011-03-02 23:42:58 UTC (rev 52493) @@ -178,7 +178,6 @@ <ItemGroup> <ClCompile Include="..\..\..\src\utilities\gsec\gsec.cpp" /> <ClCompile Include="..\..\..\src\utilities\gsec\main\gsecMain.cpp" /> - <ClCompile Include="..\..\..\src\utilities\gsec\security.cpp" /> </ItemGroup> <ItemGroup> <ClInclude Include="..\..\..\src\utilities\gsec\gsec.h" /> Modified: firebird/trunk/builds/win32/msvc10/gsec.vcxproj.filters =================================================================== --- firebird/trunk/builds/win32/msvc10/gsec.vcxproj.filters 2011-03-02 13:42:56 UTC (rev 52492) +++ firebird/trunk/builds/win32/msvc10/gsec.vcxproj.filters 2011-03-02 23:42:58 UTC (rev 52493) @@ -17,9 +17,6 @@ <ClCompile Include="..\..\..\src\utilities\gsec\gsec.cpp"> <Filter>UTILITIES files</Filter> </ClCompile> - <ClCompile Include="..\..\..\src\utilities\gsec\security.cpp"> - <Filter>UTILITIES files</Filter> - </ClCompile> <ClCompile Include="..\..\..\src\utilities\gsec\main\gsecMain.cpp"> <Filter>UTILITIES files</Filter> </ClCompile> Modified: firebird/trunk/src/gpre/boot/gpre_meta_boot.cpp =================================================================== --- firebird/trunk/src/gpre/boot/gpre_meta_boot.cpp 2011-03-02 13:42:56 UTC (rev 52492) +++ firebird/trunk/src/gpre/boot/gpre_meta_boot.cpp 2011-03-02 23:42:58 UTC (rev 52493) @@ -670,6 +670,49 @@ return false; } +#include "Interface.h" + +using namespace Firebird; + +class DummyMasterImpl : public IMaster +{ +public: + virtual void FB_CARG addRef() + { + }; + virtual int FB_CARG release() + { + return 1; + }; + virtual int FB_CARG version() + { + return IMaster::VERSION; + }; + + virtual Status* FB_CARG getStatusInstance() + { + fb_assert(false); + return NULL; + }; + virtual IPlugin* FB_CARG getPluginInterface() { + fb_assert(false); + return NULL; + }; + virtual int FB_CARG upgradeInterface(Interface* toUpgrade, int desiredVersion, void* missingFunctionClass) + { + fb_assert(false); + return 0; + }; + virtual const char* FB_CARG circularAlloc(const char* s, size_t len, intptr_t thr) + { + char* buf = (char*) malloc(len+1); + memcpy(buf, s, len); + buf[len] = 0; + return buf; + }; +}; + + extern "C" { void ERR_bugcheck(int) @@ -680,4 +723,9 @@ { } +Firebird::IMaster* ISC_EXPORT fb_get_master_interface() +{ + static DummyMasterImpl dummyMaster; + return &dummyMaster; +} } // extern "C" Modified: firebird/trunk/src/remote/server/os/win32/srvr_w32.cpp =================================================================== --- firebird/trunk/src/remote/server/os/win32/srvr_w32.cpp 2011-03-02 13:42:56 UTC (rev 52492) +++ firebird/trunk/src/remote/server/os/win32/srvr_w32.cpp 2011-03-02 23:42:58 UTC (rev 52493) @@ -113,6 +113,7 @@ #include "FirebirdPluginApi.h" #include "../common/classes/ImplementHelper.h" #include "../auth/trusted/AuthSspi.h" +#include "../auth/SecurityDatabase/LegacyServer.h" static THREAD_ENTRY_DECLARE inet_connect_wait_thread(THREAD_ENTRY_PARAM); Modified: firebird/trunk/src/utilities/gsec/gsec.cpp =================================================================== --- firebird/trunk/src/utilities/gsec/gsec.cpp 2011-03-02 13:42:56 UTC (rev 52492) +++ firebird/trunk/src/utilities/gsec/gsec.cpp 2011-03-02 23:42:58 UTC (rev 52493) @@ -979,7 +979,7 @@ break; #ifdef TRUSTED_AUTH case IN_SW_GSEC_TRUSTED_AUTH: - user_data->trusted_auth = true; + user_data->trustedAuth = true; break; #endif case IN_SW_GSEC_0: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2011-03-03 03:17:13
|
Revision: 52494 http://firebird.svn.sourceforge.net/firebird/?rev=52494&view=rev Author: firebirds Date: 2011-03-03 03:17:05 +0000 (Thu, 03 Mar 2011) 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 2011-03-02 23:42:58 UTC (rev 52493) +++ firebird/trunk/ChangeLog 2011-03-03 03:17:05 UTC (rev 52494) @@ -1,3 +1,77 @@ + 2011-03-02 23:42 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/fbserver.vcxproj + M builds/win32/msvc10/fbserver.vcxproj.filters + M builds/win32/msvc10/gsec.vcxproj + M builds/win32/msvc10/gsec.vcxproj.filters + M src/gpre/boot/gpre_meta_boot.cpp + M src/remote/server/os/win32/srvr_w32.cpp + M src/utilities/gsec/gsec.cpp +Follow Alex changes + + 2011-03-02 13:42 alexpeshkoff + M builds/posix/make.shared.variables + M src/auth/AuthInterface.h + M src/auth/SecurityDatabase/LegacyManagement.epp + M src/auth/SecurityDatabase/LegacyManagement.h + A src/auth/SecurityDatabase/LegacyServer.cpp (from /firebird/trunk/src/auth/SecurityDatabase/pwd.cpp:52312) + A src/auth/SecurityDatabase/LegacyServer.h (from /firebird/trunk/src/auth/SecurityDatabase/jrd_pwd.h:52312) + D src/auth/SecurityDatabase/jrd_pwd.h + D src/auth/SecurityDatabase/pwd.cpp + M src/common/call_service.cpp + M src/common/call_service.h + A src/common/classes/GetPlugins.h + M src/common/classes/ImplementHelper.h + M src/common/classes/PublicHandle.cpp + M src/common/classes/PublicHandle.h + M src/common/classes/alloc.cpp + M src/common/classes/alloc.h + M src/common/classes/init.h + M src/common/config/config.cpp + M src/common/config/config.h + M src/common/config/config_file.cpp + M src/common/config/config_file.h + M src/common/fb_exception.cpp + M src/common/isc_sync.cpp + A src/common/security.cpp (from /firebird/trunk/src/utilities/gsec/security.cpp:52312) + A src/common/security.h (from /firebird/trunk/src/utilities/gsec/secur_proto.h:52312) + M src/dbs/security.sql + M src/include/FirebirdPluginApi.h + M src/include/Interface.h + M src/jrd/ExtEngineManager.cpp + M src/jrd/UserManagement.cpp + M src/jrd/UserManagement.h + M src/jrd/dyn.epp + M src/jrd/jrd.cpp + M src/jrd/svc.cpp + M src/jrd/trace/TraceManager.cpp + M src/remote/client/interface.cpp + M src/remote/server/os/posix/inet_server.cpp + M src/remote/server/os/win32/srvr_w32.cpp + M src/remote/server/server.cpp + M src/utilities/gsec/gsec.cpp + M src/utilities/gsec/gsec.h + M src/utilities/gsec/gsecswi.h + D src/utilities/gsec/secur_proto.h + D src/utilities/gsec/security.cpp + M src/utilities/gstat/dba.epp + M src/yvalve/MasterImplementation.cpp + M src/yvalve/PluginManager.cpp + M src/yvalve/PluginManager.h + M src/yvalve/alt.cpp + M src/yvalve/why.cpp +Fixed CORE-3369: first step to make it possible to specify non-default security database for specific database + + 2011-03-02 09:43 hvlad + M src/dsql/StmtNodes.cpp + M src/dsql/StmtNodes.h + M src/jrd/exe.h +Additional patch for CORE-3362 : Cursors should ignore changes made by the same statement +Statements with more that one cursors should not create savepoint for the first cursor + 2011-03-01 01:07 asfernandes M src/dsql/dsql.cpp Misc Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2011-03-02 23:42:58 UTC (rev 52493) +++ firebird/trunk/src/jrd/build_no.h 2011-03-03 03:17:05 UTC (rev 52494) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29161 + FORMAL BUILD NUMBER:29164 */ -#define PRODUCT_VER_STRING "3.0.0.29161" -#define FILE_VER_STRING "WI-T3.0.0.29161" -#define LICENSE_VER_STRING "WI-T3.0.0.29161" -#define FILE_VER_NUMBER 3, 0, 0, 29161 +#define PRODUCT_VER_STRING "3.0.0.29164" +#define FILE_VER_STRING "WI-T3.0.0.29164" +#define LICENSE_VER_STRING "WI-T3.0.0.29164" +#define FILE_VER_NUMBER 3, 0, 0, 29164 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29161" +#define FB_BUILD_NO "29164" #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 2011-03-02 23:42:58 UTC (rev 52493) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-03-03 03:17:05 UTC (rev 52494) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29161 +BuildNum=29164 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...> - 2011-03-04 03:16:29
|
Revision: 52501 http://firebird.svn.sourceforge.net/firebird/?rev=52501&view=rev Author: firebirds Date: 2011-03-04 03:16:22 +0000 (Fri, 04 Mar 2011) 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 2011-03-04 01:47:49 UTC (rev 52500) +++ firebird/trunk/ChangeLog 2011-03-04 03:16:22 UTC (rev 52501) @@ -1,3 +1,31 @@ + 2011-03-04 01:47 asfernandes + M src/dsql/Nodes.h + M src/dsql/StmtNodes.cpp + M src/dsql/StmtNodes.h + M src/dsql/gen.cpp + M src/dsql/node.h + M src/dsql/parse.y + M src/dsql/pass1.cpp + M src/dsql/pass1_proto.h +Refactor DSQL INSERT, UPDATE, DELETE, MERGE, UPDATE OR INSERT and assignment statements. + + 2011-03-03 14:13 dimitr + M src/jrd/RecordBuffer.cpp + M src/jrd/RecordBuffer.h +Misc. + + 2011-03-03 14:12 dimitr + M src/jrd/recsrc/BufferedStream.cpp +Misc. + + 2011-03-03 14:12 dimitr + M src/burp/burp.cpp +Fixed assertion during restore. + + 2011-03-03 08:36 alexpeshkoff + M builds/posix/make.shared.variables +Follow Vlad's changes in posix build + 2011-03-02 23:42 hvlad M builds/win32/msvc10/common.vcxproj M builds/win32/msvc10/common.vcxproj.filters Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2011-03-04 01:47:49 UTC (rev 52500) +++ firebird/trunk/src/jrd/build_no.h 2011-03-04 03:16:22 UTC (rev 52501) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29164 + FORMAL BUILD NUMBER:29169 */ -#define PRODUCT_VER_STRING "3.0.0.29164" -#define FILE_VER_STRING "WI-T3.0.0.29164" -#define LICENSE_VER_STRING "WI-T3.0.0.29164" -#define FILE_VER_NUMBER 3, 0, 0, 29164 +#define PRODUCT_VER_STRING "3.0.0.29169" +#define FILE_VER_STRING "WI-T3.0.0.29169" +#define LICENSE_VER_STRING "WI-T3.0.0.29169" +#define FILE_VER_NUMBER 3, 0, 0, 29169 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29164" +#define FB_BUILD_NO "29169" #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 2011-03-04 01:47:49 UTC (rev 52500) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-03-04 03:16:22 UTC (rev 52501) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29164 +BuildNum=29169 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...> - 2011-03-05 03:17:08
|
Revision: 52509 http://firebird.svn.sourceforge.net/firebird/?rev=52509&view=rev Author: firebirds Date: 2011-03-05 03:17:02 +0000 (Sat, 05 Mar 2011) 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 2011-03-05 02:47:22 UTC (rev 52508) +++ firebird/trunk/ChangeLog 2011-03-05 03:17:02 UTC (rev 52509) @@ -1,3 +1,43 @@ + 2011-03-05 02:47 asfernandes + M src/dsql/Nodes.h + M src/dsql/StmtNodes.cpp + M src/dsql/StmtNodes.h + M src/dsql/gen.cpp + M src/dsql/node.h + M src/dsql/parse.y + M src/dsql/pass1.cpp +Refactored nod_src_info. + + 2011-03-05 02:24 asfernandes + M src/dsql/ExprNodes.cpp +Fixed assertion in StmtExprNode::copy reported privately by Dmitry. + + 2011-03-04 15:49 alexpeshkoff + M src/common/classes/ImplementHelper.h + M src/common/classes/init.cpp + M src/common/classes/init.h + M src/include/FirebirdPluginApi.h + M src/jrd/jrd.cpp + M src/jrd/trace/TraceManager.cpp + M src/jrd/trace/TraceManager.h + M src/utilities/ntrace/traceplugin.cpp +Detect forced unload of plugin by OS when process is exited + + 2011-03-04 15:48 alexpeshkoff + M src/yvalve/user__proto.h +cleanup + + 2011-03-04 09:16 hvlad + M builds/win32/msvc8/common.vcproj + M builds/win32/msvc8/engine.vcproj + M builds/win32/msvc8/fbserver.vcproj + M builds/win32/msvc8/gsec.vcproj +Update MSVC8 build + + 2011-03-04 07:52 dimitr + M src/jrd/recsrc/BufferedStream.cpp +Corrections to make new assertions working properly. + 2011-03-04 01:47 asfernandes M src/dsql/Nodes.h M src/dsql/StmtNodes.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2011-03-05 02:47:22 UTC (rev 52508) +++ firebird/trunk/src/jrd/build_no.h 2011-03-05 03:17:02 UTC (rev 52509) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29169 + FORMAL BUILD NUMBER:29175 */ -#define PRODUCT_VER_STRING "3.0.0.29169" -#define FILE_VER_STRING "WI-T3.0.0.29169" -#define LICENSE_VER_STRING "WI-T3.0.0.29169" -#define FILE_VER_NUMBER 3, 0, 0, 29169 +#define PRODUCT_VER_STRING "3.0.0.29175" +#define FILE_VER_STRING "WI-T3.0.0.29175" +#define LICENSE_VER_STRING "WI-T3.0.0.29175" +#define FILE_VER_NUMBER 3, 0, 0, 29175 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29169" +#define FB_BUILD_NO "29175" #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 2011-03-05 02:47:22 UTC (rev 52508) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-03-05 03:17:02 UTC (rev 52509) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29169 +BuildNum=29175 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...> - 2011-03-06 03:15:28
|
Revision: 52519 http://firebird.svn.sourceforge.net/firebird/?rev=52519&view=rev Author: firebirds Date: 2011-03-06 03:15:21 +0000 (Sun, 06 Mar 2011) 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 2011-03-06 02:48:34 UTC (rev 52518) +++ firebird/trunk/ChangeLog 2011-03-06 03:15:21 UTC (rev 52519) @@ -1,3 +1,53 @@ + 2011-03-06 02:48 asfernandes + M src/dsql/DdlNodes.epp + M src/dsql/DdlNodes.h + M src/dsql/DsqlCompilerScratch.cpp + M src/dsql/DsqlCompilerScratch.h + M src/dsql/StmtNodes.cpp + M src/dsql/StmtNodes.h + M src/dsql/ddl.cpp + M src/dsql/ddl_proto.h + M src/dsql/parse.y + M src/dsql/pass1.cpp +Reference DML statements in DSQL with StmtNode instead of dsql_nod. + + 2011-03-06 01:06 asfernandes + M src/auth/SecurityDatabase/LegacyManagement.epp + M src/common/config/config.cpp + M src/gpre/boot/gpre_meta_boot.cpp + M src/include/FirebirdPluginApi.h + M src/jrd/ExtEngineManager.cpp + M src/jrd/UserManagement.cpp + M src/jrd/jrd.cpp + M src/jrd/svc.cpp + M src/utilities/gsec/gsec.cpp + M src/utilities/gsec/gsec.h + M src/yvalve/MasterImplementation.cpp + M src/yvalve/PluginManager.cpp + M src/yvalve/alt.cpp +Misc + + 2011-03-05 17:33 dimitr + M src/dsql/StmtNodes.cpp + M src/jrd/vio.cpp + M src/jrd/vio_proto.h +More complex fix for CORE-3374: Server may crash or corrupt data if SELECT WITH LOCK is issued against records not in the latest format. It involves upgrading the record to the current format, like UPDATE does. + + 2011-03-05 17:29 dimitr + M src/dsql/pass1.cpp +Cleanup. + + 2011-03-05 17:28 dimitr + M src/dsql/AggNodes.cpp + M src/dsql/Nodes.h + M src/jrd/recsrc/AggregatedStream.cpp +Fixed the NULL handling for MIN/MAX mapped to an index. +Adriano, please review and rework, if necessary. + + 2011-03-05 17:25 dimitr + M src/jrd/recsrc/FilteredStream.cpp +Fixed incorrect WITH LOCK handling (refactoring error). + 2011-03-05 02:47 asfernandes M src/dsql/Nodes.h M src/dsql/StmtNodes.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2011-03-06 02:48:34 UTC (rev 52518) +++ firebird/trunk/src/jrd/build_no.h 2011-03-06 03:15:21 UTC (rev 52519) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29175 + FORMAL BUILD NUMBER:29181 */ -#define PRODUCT_VER_STRING "3.0.0.29175" -#define FILE_VER_STRING "WI-T3.0.0.29175" -#define LICENSE_VER_STRING "WI-T3.0.0.29175" -#define FILE_VER_NUMBER 3, 0, 0, 29175 +#define PRODUCT_VER_STRING "3.0.0.29181" +#define FILE_VER_STRING "WI-T3.0.0.29181" +#define LICENSE_VER_STRING "WI-T3.0.0.29181" +#define FILE_VER_NUMBER 3, 0, 0, 29181 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29175" +#define FB_BUILD_NO "29181" #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 2011-03-06 02:48:34 UTC (rev 52518) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-03-06 03:15:21 UTC (rev 52519) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29175 +BuildNum=29181 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...> - 2011-03-07 03:18:30
|
Revision: 52523 http://firebird.svn.sourceforge.net/firebird/?rev=52523&view=rev Author: firebirds Date: 2011-03-07 03:18:24 +0000 (Mon, 07 Mar 2011) 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 2011-03-07 03:15:33 UTC (rev 52522) +++ firebird/trunk/ChangeLog 2011-03-07 03:18:24 UTC (rev 52523) @@ -1,3 +1,7 @@ + 2011-03-06 17:18 asfernandes + M src/dsql/StmtNodes.cpp +Misc + 2011-03-06 02:48 asfernandes M src/dsql/DdlNodes.epp M src/dsql/DdlNodes.h Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2011-03-07 03:15:33 UTC (rev 52522) +++ firebird/trunk/src/jrd/build_no.h 2011-03-07 03:18:24 UTC (rev 52523) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29181 + FORMAL BUILD NUMBER:29182 */ -#define PRODUCT_VER_STRING "3.0.0.29181" -#define FILE_VER_STRING "WI-T3.0.0.29181" -#define LICENSE_VER_STRING "WI-T3.0.0.29181" -#define FILE_VER_NUMBER 3, 0, 0, 29181 +#define PRODUCT_VER_STRING "3.0.0.29182" +#define FILE_VER_STRING "WI-T3.0.0.29182" +#define LICENSE_VER_STRING "WI-T3.0.0.29182" +#define FILE_VER_NUMBER 3, 0, 0, 29182 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29181" +#define FB_BUILD_NO "29182" #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 2011-03-07 03:15:33 UTC (rev 52522) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-03-07 03:18:24 UTC (rev 52523) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29181 +BuildNum=29182 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...> - 2011-03-08 03:17:50
|
Revision: 52529 http://firebird.svn.sourceforge.net/firebird/?rev=52529&view=rev Author: firebirds Date: 2011-03-08 03:17:44 +0000 (Tue, 08 Mar 2011) 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 2011-03-07 20:56:17 UTC (rev 52528) +++ firebird/trunk/ChangeLog 2011-03-08 03:17:44 UTC (rev 52529) @@ -1,3 +1,37 @@ + 2011-03-07 20:56 asfernandes + M src/dsql/parse.y +Fixed problem reported by Dmitry about values in DECLARE not being assigned to variables. + + 2011-03-07 19:41 dimitr + M src/dsql/gen.cpp +Cleanup. + + 2011-03-07 18:40 asfernandes + M src/dsql/Parser.h + M src/dsql/parse.y +Replace parser hacks by correct btyacc's token position handling. +This fixes some problems introduced in 3.0 related to backtrackings. +It also fixes some non-precise line/column information in some commands (FOR ... DO <command>) and +stored SQL text prefixed with spaces (in views, for example). + + 2011-03-07 15:48 hvlad + M src/remote/client/interface.cpp + M src/remote/server/server.cpp + M src/yvalve/why.cpp +Front ported fix for bug CORE-3328 : Client writes error messages into firebird.log when database is shutted down + + 2011-03-07 03:15 asfernandes + M src/dsql/parse.y +Misc + + 2011-03-07 03:15 asfernandes + M src/dsql/StmtNodes.cpp + M src/dsql/StmtNodes.h + M src/dsql/node.h + M src/dsql/parse.y + M src/dsql/pass1.cpp +Replace some nod_list by array of nodes and change implementation of nod_returning to ReturningClause. + 2011-03-06 17:18 asfernandes M src/dsql/StmtNodes.cpp Misc Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2011-03-07 20:56:17 UTC (rev 52528) +++ firebird/trunk/src/jrd/build_no.h 2011-03-08 03:17:44 UTC (rev 52529) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29182 + FORMAL BUILD NUMBER:29188 */ -#define PRODUCT_VER_STRING "3.0.0.29182" -#define FILE_VER_STRING "WI-T3.0.0.29182" -#define LICENSE_VER_STRING "WI-T3.0.0.29182" -#define FILE_VER_NUMBER 3, 0, 0, 29182 +#define PRODUCT_VER_STRING "3.0.0.29188" +#define FILE_VER_STRING "WI-T3.0.0.29188" +#define LICENSE_VER_STRING "WI-T3.0.0.29188" +#define FILE_VER_NUMBER 3, 0, 0, 29188 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29182" +#define FB_BUILD_NO "29188" #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 2011-03-07 20:56:17 UTC (rev 52528) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-03-08 03:17:44 UTC (rev 52529) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29182 +BuildNum=29188 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...> - 2011-03-09 03:16:45
|
Revision: 52532 http://firebird.svn.sourceforge.net/firebird/?rev=52532&view=rev Author: firebirds Date: 2011-03-09 03:16:38 +0000 (Wed, 09 Mar 2011) 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 2011-03-08 09:05:28 UTC (rev 52531) +++ firebird/trunk/ChangeLog 2011-03-09 03:16:38 UTC (rev 52532) @@ -1,3 +1,10 @@ + 2011-03-08 09:05 hvlad + M src/dsql/StmtNodes.cpp + M src/dsql/StmtNodes.h + M src/jrd/exe.h +Additional patch for CORE-3362 : Cursors should ignore changes made by the same statement +Better (i hope) fix for implicit cursors stability in PSQL + 2011-03-07 20:56 asfernandes M src/dsql/parse.y Fixed problem reported by Dmitry about values in DECLARE not being assigned to variables. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2011-03-08 09:05:28 UTC (rev 52531) +++ firebird/trunk/src/jrd/build_no.h 2011-03-09 03:16:38 UTC (rev 52532) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29188 + FORMAL BUILD NUMBER:29189 */ -#define PRODUCT_VER_STRING "3.0.0.29188" -#define FILE_VER_STRING "WI-T3.0.0.29188" -#define LICENSE_VER_STRING "WI-T3.0.0.29188" -#define FILE_VER_NUMBER 3, 0, 0, 29188 +#define PRODUCT_VER_STRING "3.0.0.29189" +#define FILE_VER_STRING "WI-T3.0.0.29189" +#define LICENSE_VER_STRING "WI-T3.0.0.29189" +#define FILE_VER_NUMBER 3, 0, 0, 29189 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29188" +#define FB_BUILD_NO "29189" #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 2011-03-08 09:05:28 UTC (rev 52531) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-03-09 03:16:38 UTC (rev 52532) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29188 +BuildNum=29189 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...> - 2011-03-11 03:16:05
|
Revision: 52538 http://firebird.svn.sourceforge.net/firebird/?rev=52538&view=rev Author: firebirds Date: 2011-03-11 03:15:58 +0000 (Fri, 11 Mar 2011) 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 2011-03-11 00:58:55 UTC (rev 52537) +++ firebird/trunk/ChangeLog 2011-03-11 03:15:58 UTC (rev 52538) @@ -1,3 +1,23 @@ + 2011-03-11 00:58 asfernandes + M src/dsql/StmtNodes.cpp + M src/remote/server/server.cpp + M src/yvalve/why.cpp +Misc + + 2011-03-10 15:54 asfernandes + M src/include/ProviderInterface.h +Misc + + 2011-03-10 08:13 dimitr + M src/dsql/ExprNodes.cpp + M src/dsql/ExprNodes.h + M src/dsql/Nodes.h + M src/jrd/Optimizer.cpp + M src/jrd/RecordSourceNodes.cpp + M src/jrd/RecordSourceNodes.h + M src/jrd/opt.cpp +Misc adjustments. + 2011-03-08 09:05 hvlad 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 2011-03-11 00:58:55 UTC (rev 52537) +++ firebird/trunk/src/jrd/build_no.h 2011-03-11 03:15:58 UTC (rev 52538) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29189 + FORMAL BUILD NUMBER:29192 */ -#define PRODUCT_VER_STRING "3.0.0.29189" -#define FILE_VER_STRING "WI-T3.0.0.29189" -#define LICENSE_VER_STRING "WI-T3.0.0.29189" -#define FILE_VER_NUMBER 3, 0, 0, 29189 +#define PRODUCT_VER_STRING "3.0.0.29192" +#define FILE_VER_STRING "WI-T3.0.0.29192" +#define LICENSE_VER_STRING "WI-T3.0.0.29192" +#define FILE_VER_NUMBER 3, 0, 0, 29192 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29189" +#define FB_BUILD_NO "29192" #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 2011-03-11 00:58:55 UTC (rev 52537) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-03-11 03:15:58 UTC (rev 52538) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29189 +BuildNum=29192 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...> - 2011-03-17 03:17:08
|
Revision: 52547 http://firebird.svn.sourceforge.net/firebird/?rev=52547&view=rev Author: firebirds Date: 2011-03-17 03:17:01 +0000 (Thu, 17 Mar 2011) 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 2011-03-16 21:08:32 UTC (rev 52546) +++ firebird/trunk/ChangeLog 2011-03-17 03:17:01 UTC (rev 52547) @@ -1,3 +1,34 @@ + 2011-03-16 21:08 hvlad + M src/dsql/dsql.cpp +Fixed bug CORE-3389 : isc_dsql_exec_immed2 with zero transaction handle could lead to a BUGCHECK(147). +While HEAD is not affected directly by this exact test case i see no harm to repeat the fix there too. + + 2011-03-16 11:04 alexpeshkoff + A src/auth/SecurityDatabase/LegacyHash.h + M src/auth/SecurityDatabase/LegacyManagement.epp + M src/auth/SecurityDatabase/LegacyServer.cpp + M src/auth/SecurityDatabase/LegacyServer.h + M src/common/classes/ImplementHelper.h + M src/common/classes/locks.h + M src/common/os/os_utils.h + M src/common/os/posix/os_utils.cpp + M src/common/os/win32/os_utils.cpp + M src/gpre/boot/gpre_meta_boot.cpp + M src/include/FirebirdPluginApi.h + M src/include/Interface.h + A src/include/Timer.h + M src/jrd/extds/ExtDS.cpp + M src/jrd/extds/ExtDS.h + M src/jrd/jrd.cpp + M src/jrd/trace/TraceConfigStorage.cpp + M src/jrd/trace/TraceConfigStorage.h + M src/plugins/udr_engine/UdrEngine.cpp + M src/yvalve/MasterImplementation.cpp + M src/yvalve/PluginManager.cpp + M src/yvalve/PluginManager.h + M src/yvalve/why.cpp +Added timer-related interfaces. Added helper method to wait for plugin to be released on shutdown. Misc stability changes in PluginManager. + 2011-03-11 00:58 asfernandes M src/dsql/StmtNodes.cpp M src/remote/server/server.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2011-03-16 21:08:32 UTC (rev 52546) +++ firebird/trunk/src/jrd/build_no.h 2011-03-17 03:17:01 UTC (rev 52547) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29192 + FORMAL BUILD NUMBER:29194 */ -#define PRODUCT_VER_STRING "3.0.0.29192" -#define FILE_VER_STRING "WI-T3.0.0.29192" -#define LICENSE_VER_STRING "WI-T3.0.0.29192" -#define FILE_VER_NUMBER 3, 0, 0, 29192 +#define PRODUCT_VER_STRING "3.0.0.29194" +#define FILE_VER_STRING "WI-T3.0.0.29194" +#define LICENSE_VER_STRING "WI-T3.0.0.29194" +#define FILE_VER_NUMBER 3, 0, 0, 29194 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29192" +#define FB_BUILD_NO "29194" #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 2011-03-16 21:08:32 UTC (rev 52546) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-03-17 03:17:01 UTC (rev 52547) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29192 +BuildNum=29194 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...> - 2011-03-18 03:15:51
|
Revision: 52555 http://firebird.svn.sourceforge.net/firebird/?rev=52555&view=rev Author: firebirds Date: 2011-03-18 03:15:44 +0000 (Fri, 18 Mar 2011) 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 2011-03-18 02:00:11 UTC (rev 52554) +++ firebird/trunk/ChangeLog 2011-03-18 03:15:44 UTC (rev 52555) @@ -1,3 +1,16 @@ + 2011-03-18 02:00 asfernandes + M src/common/os/win32/os_utils.cpp + M src/gpre/boot/gpre_meta_boot.cpp + M src/jrd/idx.cpp + M src/yvalve/MasterImplementation.cpp + M src/yvalve/PluginManager.cpp + M src/yvalve/why.cpp +Misc + + 2011-03-17 11:13 hvlad + M src/jrd/idx.cpp +Fixed bug CORE-3394 : Failed attempt to violate unique constraint could leave unneeded "lock conflict" error in status-vector + 2011-03-16 21:08 hvlad M src/dsql/dsql.cpp Fixed bug CORE-3389 : isc_dsql_exec_immed2 with zero transaction handle could lead to a BUGCHECK(147). Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2011-03-18 02:00:11 UTC (rev 52554) +++ firebird/trunk/src/jrd/build_no.h 2011-03-18 03:15:44 UTC (rev 52555) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29194 + FORMAL BUILD NUMBER:29196 */ -#define PRODUCT_VER_STRING "3.0.0.29194" -#define FILE_VER_STRING "WI-T3.0.0.29194" -#define LICENSE_VER_STRING "WI-T3.0.0.29194" -#define FILE_VER_NUMBER 3, 0, 0, 29194 +#define PRODUCT_VER_STRING "3.0.0.29196" +#define FILE_VER_STRING "WI-T3.0.0.29196" +#define LICENSE_VER_STRING "WI-T3.0.0.29196" +#define FILE_VER_NUMBER 3, 0, 0, 29196 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29194" +#define FB_BUILD_NO "29196" #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 2011-03-18 02:00:11 UTC (rev 52554) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-03-18 03:15:44 UTC (rev 52555) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29194 +BuildNum=29196 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...> - 2011-03-19 03:17:49
|
Revision: 52568 http://firebird.svn.sourceforge.net/firebird/?rev=52568&view=rev Author: firebirds Date: 2011-03-19 03:17:42 +0000 (Sat, 19 Mar 2011) 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 2011-03-18 17:48:20 UTC (rev 52567) +++ firebird/trunk/ChangeLog 2011-03-19 03:17:42 UTC (rev 52568) @@ -1,3 +1,42 @@ + 2011-03-18 17:48 alexpeshkoff + M src/common/os/posix/mod_loader.cpp +Fixed CORE-3397: Unresolved symbols in intl and trace libraries + + 2011-03-18 15:36 asfernandes + M src/jrd/inf.cpp +Correction. + + 2011-03-18 15:24 asfernandes + M src/dsql/dsql.cpp + M src/dsql/dsql.h + M src/jrd/inf.cpp + M src/jrd/inf_proto.h +Simplification + + 2011-03-18 14:45 alexpeshkoff + M src/auth/SecurityDatabase/LegacyServer.cpp +Missed return value - thanks to Vlad + + 2011-03-18 13:11 hvlad + M src/common/classes/locks.h +Missed initialization + + 2011-03-18 12:30 hvlad + M src/yvalve/MasterImplementation.cpp +Make it OS-independent + + 2011-03-18 12:28 hvlad + M src/common/classes/locks.h +Missed code + + 2011-03-18 11:38 alexpeshkoff + A src/yvalve/MasterImplementation.h +Forgotten added file + + 2011-03-18 10:41 hvlad + M src/gpre/boot/gpre_meta_boot.cpp +Fixed boot build + 2011-03-18 02:00 asfernandes M src/common/os/win32/os_utils.cpp M src/gpre/boot/gpre_meta_boot.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2011-03-18 17:48:20 UTC (rev 52567) +++ firebird/trunk/src/jrd/build_no.h 2011-03-19 03:17:42 UTC (rev 52568) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29196 + FORMAL BUILD NUMBER:29205 */ -#define PRODUCT_VER_STRING "3.0.0.29196" -#define FILE_VER_STRING "WI-T3.0.0.29196" -#define LICENSE_VER_STRING "WI-T3.0.0.29196" -#define FILE_VER_NUMBER 3, 0, 0, 29196 +#define PRODUCT_VER_STRING "3.0.0.29205" +#define FILE_VER_STRING "WI-T3.0.0.29205" +#define LICENSE_VER_STRING "WI-T3.0.0.29205" +#define FILE_VER_NUMBER 3, 0, 0, 29205 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29196" +#define FB_BUILD_NO "29205" #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 2011-03-18 17:48:20 UTC (rev 52567) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-03-19 03:17:42 UTC (rev 52568) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29196 +BuildNum=29205 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...> - 2011-03-20 03:16:39
|
Revision: 52574 http://firebird.svn.sourceforge.net/firebird/?rev=52574&view=rev Author: firebirds Date: 2011-03-20 03:16:32 +0000 (Sun, 20 Mar 2011) 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 2011-03-19 13:10:51 UTC (rev 52573) +++ firebird/trunk/ChangeLog 2011-03-20 03:16:32 UTC (rev 52574) @@ -1,3 +1,15 @@ + 2011-03-19 13:10 hvlad + M src/jrd/met.epp + M src/jrd/rlck.cpp + M src/jrd/vio.cpp +Improvement CORE-3399 : Allow write operations to temporary tables in read only transactions + + 2011-03-19 11:39 hvlad + M src/remote/os/win32/xnet.cpp + M src/remote/os/win32/xnet.h +XNET was broken. Abnormal client disconnection was not released port and resources. Whole XPM map was corrupted and new connections was not possible. +Renamed back peer_shutdown -> server_shutdown, XPMF_PEER_SHUTDOWN -> XPMF_SERVER_SHUTDOWN and XCCF_PEER_SHUTDOWN -> XCCF_SERVER_SHUTDOWN because this is pure client things and should not be used by server side. + 2011-03-18 17:48 alexpeshkoff M src/common/os/posix/mod_loader.cpp Fixed CORE-3397: Unresolved symbols in intl and trace libraries Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2011-03-19 13:10:51 UTC (rev 52573) +++ firebird/trunk/src/jrd/build_no.h 2011-03-20 03:16:32 UTC (rev 52574) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29205 + FORMAL BUILD NUMBER:29207 */ -#define PRODUCT_VER_STRING "3.0.0.29205" -#define FILE_VER_STRING "WI-T3.0.0.29205" -#define LICENSE_VER_STRING "WI-T3.0.0.29205" -#define FILE_VER_NUMBER 3, 0, 0, 29205 +#define PRODUCT_VER_STRING "3.0.0.29207" +#define FILE_VER_STRING "WI-T3.0.0.29207" +#define LICENSE_VER_STRING "WI-T3.0.0.29207" +#define FILE_VER_NUMBER 3, 0, 0, 29207 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29205" +#define FB_BUILD_NO "29207" #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 2011-03-19 13:10:51 UTC (rev 52573) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-03-20 03:16:32 UTC (rev 52574) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29205 +BuildNum=29207 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...> - 2011-03-21 03:15:47
|
Revision: 52581 http://firebird.svn.sourceforge.net/firebird/?rev=52581&view=rev Author: firebirds Date: 2011-03-21 03:15:39 +0000 (Mon, 21 Mar 2011) 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 2011-03-20 19:15:55 UTC (rev 52580) +++ firebird/trunk/ChangeLog 2011-03-21 03:15:39 UTC (rev 52581) @@ -1,3 +1,44 @@ + 2011-03-20 19:15 asfernandes + M src/dsql/dsql.h + M src/include/ProviderInterface.h + M src/jrd/extds/InternalDS.cpp + M src/jrd/jrd.cpp + M src/remote/client/interface.cpp + M src/yvalve/why.cpp +Removed commented out Sqlda support and rename methods removing the word 'messsage'. + + 2011-03-20 19:15 asfernandes + M src/dsql/dsql.h + M src/include/ProviderInterface.h + M src/jrd/Attachment.h + M src/jrd/extds/InternalDS.cpp + M src/jrd/jrd.cpp + M src/remote/client/interface.cpp + M src/yvalve/why.cpp +Remove unused message types. + + 2011-03-20 19:14 asfernandes + M src/include/ProviderInterface.h +Names + + 2011-03-20 19:14 asfernandes + M src/dsql/dsql.h + M src/include/ProviderInterface.h + M src/jrd/Attachment.h + M src/jrd/extds/InternalDS.cpp + M src/jrd/jrd.cpp + M src/remote/client/interface.cpp + M src/yvalve/why.cpp +Use MessageBuffer in executeMessage and fetchMessage. + + 2011-03-20 16:24 asfernandes + M src/common/classes/locks.h + M src/dsql/dsql.cpp + M src/jrd/rlck.cpp + M src/jrd/vio.cpp + M src/remote/os/win32/xnet.cpp +Misc + 2011-03-19 13:10 hvlad M src/jrd/met.epp M src/jrd/rlck.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2011-03-20 19:15:55 UTC (rev 52580) +++ firebird/trunk/src/jrd/build_no.h 2011-03-21 03:15:39 UTC (rev 52581) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29207 + FORMAL BUILD NUMBER:29212 */ -#define PRODUCT_VER_STRING "3.0.0.29207" -#define FILE_VER_STRING "WI-T3.0.0.29207" -#define LICENSE_VER_STRING "WI-T3.0.0.29207" -#define FILE_VER_NUMBER 3, 0, 0, 29207 +#define PRODUCT_VER_STRING "3.0.0.29212" +#define FILE_VER_STRING "WI-T3.0.0.29212" +#define LICENSE_VER_STRING "WI-T3.0.0.29212" +#define FILE_VER_NUMBER 3, 0, 0, 29212 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29207" +#define FB_BUILD_NO "29212" #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 2011-03-20 19:15:55 UTC (rev 52580) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-03-21 03:15:39 UTC (rev 52581) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29207 +BuildNum=29212 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...> - 2011-03-22 03:17:00
|
Revision: 52589 http://firebird.svn.sourceforge.net/firebird/?rev=52589&view=rev Author: firebirds Date: 2011-03-22 03:16:54 +0000 (Tue, 22 Mar 2011) 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 2011-03-21 22:51:48 UTC (rev 52588) +++ firebird/trunk/ChangeLog 2011-03-22 03:16:54 UTC (rev 52589) @@ -1,3 +1,28 @@ + 2011-03-21 22:51 asfernandes + M src/dsql/ExprNodes.cpp +Misc + + 2011-03-21 21:56 asfernandes + M src/include/ProviderInterface.h + M src/jrd/Attachment.h + M src/jrd/extds/InternalDS.cpp + M src/jrd/jrd.cpp + M src/jrd/tra.h + M src/remote/client/interface.cpp + M src/yvalve/why.cpp +Move transactRequest, createBlob, openBlob, getSlice, putSlice and ddl from ITransaction to IAttachment. +It's better to have one standard than two, and "ddl" was broken from API POV. +So make the IAttachment always the caller, explicit or implicit (via IStatement or IRequest), and pass the ITransaction as parameter. + + 2011-03-21 18:15 alexpeshkoff + M src/yvalve/user__proto.h + M src/yvalve/user_dsql.cpp +Fixed issue, reported by Damyan in devel - missing symbols in libfbclient. Make prototypes match with ibase.h. + + 2011-03-21 13:43 alexpeshkoff + M builds/posix/make.defaults +Fix boot build + 2011-03-20 19:15 asfernandes M src/dsql/dsql.h M src/include/ProviderInterface.h Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2011-03-21 22:51:48 UTC (rev 52588) +++ firebird/trunk/src/jrd/build_no.h 2011-03-22 03:16:54 UTC (rev 52589) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29212 + FORMAL BUILD NUMBER:29216 */ -#define PRODUCT_VER_STRING "3.0.0.29212" -#define FILE_VER_STRING "WI-T3.0.0.29212" -#define LICENSE_VER_STRING "WI-T3.0.0.29212" -#define FILE_VER_NUMBER 3, 0, 0, 29212 +#define PRODUCT_VER_STRING "3.0.0.29216" +#define FILE_VER_STRING "WI-T3.0.0.29216" +#define LICENSE_VER_STRING "WI-T3.0.0.29216" +#define FILE_VER_NUMBER 3, 0, 0, 29216 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29212" +#define FB_BUILD_NO "29216" #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 2011-03-21 22:51:48 UTC (rev 52588) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-03-22 03:16:54 UTC (rev 52589) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29212 +BuildNum=29216 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...> - 2011-03-23 03:16:38
|
Revision: 52594 http://firebird.svn.sourceforge.net/firebird/?rev=52594&view=rev Author: firebirds Date: 2011-03-23 03:16:31 +0000 (Wed, 23 Mar 2011) 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 2011-03-22 18:59:13 UTC (rev 52593) +++ firebird/trunk/ChangeLog 2011-03-23 03:16:31 UTC (rev 52594) @@ -1,3 +1,10 @@ + 2011-03-22 18:59 asfernandes + M src/dsql/DdlNodes.epp + M src/dsql/gen.cpp + M src/jrd/met.epp + M src/yvalve/gds.cpp +Fixed CORE-3401 - Collation errors with [type of] <domain>, type of column. + 2011-03-21 22:51 asfernandes M src/dsql/ExprNodes.cpp Misc Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2011-03-22 18:59:13 UTC (rev 52593) +++ firebird/trunk/src/jrd/build_no.h 2011-03-23 03:16:31 UTC (rev 52594) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29216 + FORMAL BUILD NUMBER:29217 */ -#define PRODUCT_VER_STRING "3.0.0.29216" -#define FILE_VER_STRING "WI-T3.0.0.29216" -#define LICENSE_VER_STRING "WI-T3.0.0.29216" -#define FILE_VER_NUMBER 3, 0, 0, 29216 +#define PRODUCT_VER_STRING "3.0.0.29217" +#define FILE_VER_STRING "WI-T3.0.0.29217" +#define LICENSE_VER_STRING "WI-T3.0.0.29217" +#define FILE_VER_NUMBER 3, 0, 0, 29217 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29216" +#define FB_BUILD_NO "29217" #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 2011-03-22 18:59:13 UTC (rev 52593) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-03-23 03:16:31 UTC (rev 52594) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29216 +BuildNum=29217 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...> - 2011-03-27 11:23:05
|
Revision: 52597 http://firebird.svn.sourceforge.net/firebird/?rev=52597&view=rev Author: alexpeshkoff Date: 2011-03-27 11:22:57 +0000 (Sun, 27 Mar 2011) Log Message: ----------- Applied patch from Damyan Ivanov: no compiler flag repetinion when CXXFLAGS is set in the environment Modified Paths: -------------- firebird/trunk/builds/posix/make.rules firebird/trunk/builds/posix/prefix.example firebird/trunk/builds/posix/prefix.linux_amd64 firebird/trunk/builds/posix/prefix.linux_generic firebird/trunk/builds/posix/prefix.linux_ia64 firebird/trunk/builds/posix/prefix.linux_sparc32 firebird/trunk/configure.in Modified: firebird/trunk/builds/posix/make.rules =================================================================== --- firebird/trunk/builds/posix/make.rules 2011-03-23 03:31:44 UTC (rev 52596) +++ firebird/trunk/builds/posix/make.rules 2011-03-27 11:22:57 UTC (rev 52597) @@ -45,7 +45,8 @@ endif WCFLAGS:= $(WFLAGS) $(THR_FLAGS) $(CFLAGS) -WCXXFLAGS:= $(WFLAGS) $(THR_FLAGS) $(CXXFLAGS) +# Firebird needs no RTTI +WCXXFLAGS:= $(WFLAGS) $(THR_FLAGS) -fno-rtti $(CXXFLAGS) # Here we have definitions for using the preprocessor. Modified: firebird/trunk/builds/posix/prefix.example =================================================================== --- firebird/trunk/builds/posix/prefix.example 2011-03-23 03:31:44 UTC (rev 52596) +++ firebird/trunk/builds/posix/prefix.example 2011-03-27 11:22:57 UTC (rev 52597) @@ -6,6 +6,3 @@ if $(eq $(ModuleName), "intl") LIB_LINK_OPTIONS := -assert pure-text -assert nosymbolic endif - -# Firebird needs no RTTI -CXXFLAGS:= $(CXXFLAGS) -fno-rtti Modified: firebird/trunk/builds/posix/prefix.linux_amd64 =================================================================== --- firebird/trunk/builds/posix/prefix.linux_amd64 2011-03-23 03:31:44 UTC (rev 52596) +++ firebird/trunk/builds/posix/prefix.linux_amd64 2011-03-27 11:22:57 UTC (rev 52597) @@ -21,7 +21,6 @@ COMMON_FLAGS=-ggdb -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -DAMD64 -pipe -MMD -fPIC -fmessage-length=0 OPTIMIZE_FLAGS=-O3 -fno-omit-frame-pointer WARN_FLAGS=-Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable -Wno-invalid-offsetof -CXXFLAGS:= $(CXXFLAGS) -fno-rtti PROD_FLAGS=$(COMMON_FLAGS) $(OPTIMIZE_FLAGS) #DEV_FLAGS=-DUSE_VALGRIND $(COMMON_FLAGS) $(WARN_FLAGS) Modified: firebird/trunk/builds/posix/prefix.linux_generic =================================================================== --- firebird/trunk/builds/posix/prefix.linux_generic 2011-03-23 03:31:44 UTC (rev 52596) +++ firebird/trunk/builds/posix/prefix.linux_generic 2011-03-27 11:22:57 UTC (rev 52597) @@ -22,4 +22,3 @@ PROD_FLAGS=-ggdb -O3 $(COMMON_FLAGS) DEV_FLAGS=-ggdb -p -Wall -Wno-switch $(COMMON_FLAGS) -Wno-non-virtual-dtor -CXXFLAGS:= $(CXXFLAGS) -fno-rtti Modified: firebird/trunk/builds/posix/prefix.linux_ia64 =================================================================== --- firebird/trunk/builds/posix/prefix.linux_ia64 2011-03-23 03:31:44 UTC (rev 52596) +++ firebird/trunk/builds/posix/prefix.linux_ia64 2011-03-27 11:22:57 UTC (rev 52597) @@ -21,7 +21,6 @@ COMMON_FLAGS=-ggdb -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -DIA64 -pipe -MMD -fPIC -fmessage-length=0 OPTIMIZE_FLAGS=-O3 -fno-omit-frame-pointer WARN_FLAGS=-Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable -Wno-non-virtual-dtor -CXXFLAGS:= $(CXXFLAGS) -fno-rtti PROD_FLAGS=$(COMMON_FLAGS) $(OPTIMIZE_FLAGS) DEV_FLAGS=$(COMMON_FLAGS) $(WARN_FLAGS) Modified: firebird/trunk/builds/posix/prefix.linux_sparc32 =================================================================== --- firebird/trunk/builds/posix/prefix.linux_sparc32 2011-03-23 03:31:44 UTC (rev 52596) +++ firebird/trunk/builds/posix/prefix.linux_sparc32 2011-03-27 11:22:57 UTC (rev 52597) @@ -21,4 +21,3 @@ COMMON_FLAGS=-DLINUX -pipe -MMD -fPIC -Dsparc -DFB_SEND_FLAGS=MSG_NOSIGNAL PROD_FLAGS=-ggdb -mcpu=ultrasparc -mtune=ultrasparc -O3 $(COMMON_FLAGS) DEV_FLAGS=-ggdb -p -Wall -Wno-switch $(COMMON_FLAGS) -Wno-non-virtual-dtor -CXXFLAGS:= $(CXXFLAGS) -fno-rtti Modified: firebird/trunk/configure.in =================================================================== --- firebird/trunk/configure.in 2011-03-23 03:31:44 UTC (rev 52596) +++ firebird/trunk/configure.in 2011-03-27 11:22:57 UTC (rev 52597) @@ -459,6 +459,7 @@ dnl Find out how to use threads on this platform pre_acx_pthread_cflags=$CFLAGS +pre_acx_pthread_cxxflags=$CXXFLAGS pre_acx_pthread_libs=$LIBS ACX_PTHREAD([ AC_DEFINE(HAVE_MULTI_THREAD, 1, @@ -468,10 +469,6 @@ AC_SUBST(PTHREAD_LIBS) AC_SUBST(PTHREAD_CFLAGS) -dnl Later we always build threaded binaries -CFLAGS="$CFLAGS $PTHREAD_CFLAGS" -CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS" -LIBS="$LIBS $PTHREAD_LIBS" AC_ARG_ENABLE(raw-devices, [ --enable-raw-devices enable databases on raw devices (default on POSIX)], This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2011-03-29 03:16:22
|
Revision: 52603 http://firebird.svn.sourceforge.net/firebird/?rev=52603&view=rev Author: firebirds Date: 2011-03-29 03:16:16 +0000 (Tue, 29 Mar 2011) 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 2011-03-29 00:58:01 UTC (rev 52602) +++ firebird/trunk/ChangeLog 2011-03-29 03:16:16 UTC (rev 52603) @@ -1,3 +1,24 @@ + 2011-03-29 00:54 asfernandes + M extern/btyacc/main.c +Fixed memory corruption in btyacc code. + + 2011-03-28 14:54 hvlad + M src/utilities/ntrace/TraceConfiguration.cpp + M src/utilities/ntrace/TracePluginImpl.cpp + M src/utilities/ntrace/TracePluginImpl.h + M src/utilities/ntrace/traceplugin.cpp +Frontported improvement CORE-3413 : Improve diagnostics of internal trace errors + + 2011-03-27 11:22 alexpeshkoff + M builds/posix/make.rules + M builds/posix/prefix.example + M builds/posix/prefix.linux_amd64 + M builds/posix/prefix.linux_generic + M builds/posix/prefix.linux_ia64 + M builds/posix/prefix.linux_sparc32 + M configure.in +Applied patch from Damyan Ivanov: no compiler flag repetinion when CXXFLAGS is set in the environment + 2011-03-22 18:59 asfernandes M src/dsql/DdlNodes.epp M src/dsql/gen.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2011-03-29 00:58:01 UTC (rev 52602) +++ firebird/trunk/src/jrd/build_no.h 2011-03-29 03:16:16 UTC (rev 52603) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29217 + FORMAL BUILD NUMBER:29220 */ -#define PRODUCT_VER_STRING "3.0.0.29217" -#define FILE_VER_STRING "WI-T3.0.0.29217" -#define LICENSE_VER_STRING "WI-T3.0.0.29217" -#define FILE_VER_NUMBER 3, 0, 0, 29217 +#define PRODUCT_VER_STRING "3.0.0.29220" +#define FILE_VER_STRING "WI-T3.0.0.29220" +#define LICENSE_VER_STRING "WI-T3.0.0.29220" +#define FILE_VER_NUMBER 3, 0, 0, 29220 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29217" +#define FB_BUILD_NO "29220" #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 2011-03-29 00:58:01 UTC (rev 52602) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-03-29 03:16:16 UTC (rev 52603) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29217 +BuildNum=29220 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...> - 2011-03-31 03:17:42
|
Revision: 52611 http://firebird.svn.sourceforge.net/firebird/?rev=52611&view=rev Author: firebirds Date: 2011-03-31 03:17:35 +0000 (Thu, 31 Mar 2011) 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 2011-03-30 23:06:41 UTC (rev 52610) +++ firebird/trunk/ChangeLog 2011-03-31 03:17:35 UTC (rev 52611) @@ -1,3 +1,16 @@ + 2011-03-30 22:51 hvlad + M src/jrd/met.epp +Fixed bug CORE-3418 : Inactive DB-trigger after Create/Alter Is Active + + 2011-03-30 20:35 asfernandes + M src/utilities/ntrace/TracePluginImpl.cpp + M src/utilities/ntrace/traceplugin.cpp +Misc + + 2011-03-30 08:14 dimitr + M src/common/sdl.cpp +Applied patch for CORE-3412: Array with BOOLEAN. Bug in sdl_desc [sdl.cpp]. Thanks to Dmitry Kovalenko. + 2011-03-29 00:54 asfernandes M extern/btyacc/main.c Fixed memory corruption in btyacc code. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2011-03-30 23:06:41 UTC (rev 52610) +++ firebird/trunk/src/jrd/build_no.h 2011-03-31 03:17:35 UTC (rev 52611) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29220 + FORMAL BUILD NUMBER:29223 */ -#define PRODUCT_VER_STRING "3.0.0.29220" -#define FILE_VER_STRING "WI-T3.0.0.29220" -#define LICENSE_VER_STRING "WI-T3.0.0.29220" -#define FILE_VER_NUMBER 3, 0, 0, 29220 +#define PRODUCT_VER_STRING "3.0.0.29223" +#define FILE_VER_STRING "WI-T3.0.0.29223" +#define LICENSE_VER_STRING "WI-T3.0.0.29223" +#define FILE_VER_NUMBER 3, 0, 0, 29223 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29220" +#define FB_BUILD_NO "29223" #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 2011-03-30 23:06:41 UTC (rev 52610) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-03-31 03:17:35 UTC (rev 52611) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29220 +BuildNum=29223 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...> - 2011-04-01 03:17:03
|
Revision: 52626 http://firebird.svn.sourceforge.net/firebird/?rev=52626&view=rev Author: firebirds Date: 2011-04-01 03:16:56 +0000 (Fri, 01 Apr 2011) 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 2011-04-01 02:05:19 UTC (rev 52625) +++ firebird/trunk/ChangeLog 2011-04-01 03:16:56 UTC (rev 52626) @@ -1,3 +1,85 @@ + 2011-04-01 02:05 asfernandes + M src/auth/SecurityDatabase/LegacyServer.cpp + M src/common/classes/ImplementHelper.h + M src/yvalve/PluginManager.cpp +Misc + + 2011-03-31 17:41 asfernandes + M src/gpre/std/gpre_meta.epp +Warning. + + 2011-03-31 15:22 alexpeshkoff + M src/auth/trusted/AuthSspi.cpp +Try to fix windows build + + 2011-03-31 14:26 asfernandes + M src/dsql/StmtNodes.cpp +Fixed CORE-3421 - AV with "UPDATE OR INSERT". + + 2011-03-31 14:26 asfernandes + M src/dsql/DdlNodes.epp +Fixed CORE-3423 - Wrong RDB$PARAMETER_MECHANISM. + + 2011-03-31 13:44 alexpeshkoff + M src/auth/AuthDbg.cpp + M src/auth/AuthInterface.h + M src/auth/SecurityDatabase/LegacyClient.cpp + M src/auth/SecurityDatabase/LegacyManagement.epp + M src/auth/SecurityDatabase/LegacyServer.cpp + M src/auth/SecurityDatabase/LegacyServer.h + M src/common/Auth.h + M src/common/StatusHolder.h + M src/common/call_service.cpp + M src/common/classes/GetPlugins.h + M src/common/classes/ImplementHelper.h + M src/common/fb_exception.cpp + M src/common/security.h + M src/dsql/dsql.cpp + M src/gpre/boot/gpre_meta_boot.cpp + M src/include/FirebirdPluginApi.h + M src/include/Interface.h + M src/include/Timer.h + M src/include/fb_blk.h + M src/jrd/Attachment.cpp + M src/jrd/JrdStatement.cpp + M src/jrd/UserManagement.cpp + M src/jrd/UserManagement.h + M src/jrd/blb.cpp + M src/jrd/dyn.epp + M src/jrd/jrd.cpp + M src/jrd/ntrace.h + M src/jrd/tra.cpp + M src/jrd/tra.h + M src/jrd/trace/TraceConfigStorage.cpp + M src/jrd/trace/TraceConfigStorage.h + M src/jrd/trace/TraceObjects.cpp + M src/jrd/trace/TraceObjects.h + M src/plugins/udr_engine/UdrEngine.cpp + M src/remote/client/interface.cpp + M src/utilities/gsec/gsec.cpp + M src/utilities/ntrace/traceplugin.cpp + M src/yvalve/MasterImplementation.cpp + M src/yvalve/PluginManager.cpp + M src/yvalve/PluginManager.h + M src/yvalve/alt.cpp + M src/yvalve/why.cpp +Remove reference counting where not appropriate + + 2011-03-31 10:28 hvlad + M src/dsql/dsql.cpp + M src/jrd/inf.cpp + M src/jrd/inf_proto.h +Fixed issue reported by Claudio privately + + 2011-03-31 09:41 hvlad + M src/jrd/jrd.cpp +Fixed bug CORE-3419 : Recurse leads to hangs/crash server +The rollback() and a friends should be reconsidered when (if) multy-db transactions will be possible to start at engine (i.e. not at y-valve) level. + + 2011-03-31 05:45 dimitr + M src/jrd/types.h +Fixed CORE-3420: BOOLEAN not present in system table RDB$TYPES. + 2011-03-30 22:51 hvlad M src/jrd/met.epp Fixed bug CORE-3418 : Inactive DB-trigger after Create/Alter Is Active Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2011-04-01 02:05:19 UTC (rev 52625) +++ firebird/trunk/src/jrd/build_no.h 2011-04-01 03:16:56 UTC (rev 52626) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:29223 + FORMAL BUILD NUMBER:29232 */ -#define PRODUCT_VER_STRING "3.0.0.29223" -#define FILE_VER_STRING "WI-T3.0.0.29223" -#define LICENSE_VER_STRING "WI-T3.0.0.29223" -#define FILE_VER_NUMBER 3, 0, 0, 29223 +#define PRODUCT_VER_STRING "3.0.0.29232" +#define FILE_VER_STRING "WI-T3.0.0.29232" +#define LICENSE_VER_STRING "WI-T3.0.0.29232" +#define FILE_VER_NUMBER 3, 0, 0, 29232 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "29223" +#define FB_BUILD_NO "29232" #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 2011-04-01 02:05:19 UTC (rev 52625) +++ firebird/trunk/src/misc/writeBuildNum.sh 2011-04-01 03:16:56 UTC (rev 52626) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=29223 +BuildNum=29232 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |