From: <fir...@us...> - 2012-06-20 04:25:24
|
Revision: 54637 http://firebird.svn.sourceforge.net/firebird/?rev=54637&view=rev Author: firebirds Date: 2012-06-20 04:25:17 +0000 (Wed, 20 Jun 2012) 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 2012-06-19 18:28:13 UTC (rev 54636) +++ firebird/trunk/ChangeLog 2012-06-20 04:25:17 UTC (rev 54637) @@ -1,3 +1,12 @@ + 2012-06-19 18:28 dimitr + M src/jrd/DatabaseSnapshot.cpp +Misc. + + 2012-06-19 18:27 dimitr + M src/jrd/Function.epp + M src/jrd/met.epp +Misc. + 2012-06-18 16:51 dimitr M src/common/isc_s_proto.h M src/common/isc_sync.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-06-19 18:28:13 UTC (rev 54636) +++ firebird/trunk/src/jrd/build_no.h 2012-06-20 04:25:17 UTC (rev 54637) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30006 + FORMAL BUILD NUMBER:30008 */ -#define PRODUCT_VER_STRING "3.0.0.30006" -#define FILE_VER_STRING "WI-T3.0.0.30006" -#define LICENSE_VER_STRING "WI-T3.0.0.30006" -#define FILE_VER_NUMBER 3, 0, 0, 30006 +#define PRODUCT_VER_STRING "3.0.0.30008" +#define FILE_VER_STRING "WI-T3.0.0.30008" +#define LICENSE_VER_STRING "WI-T3.0.0.30008" +#define FILE_VER_NUMBER 3, 0, 0, 30008 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30006" +#define FB_BUILD_NO "30008" #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 2012-06-19 18:28:13 UTC (rev 54636) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-06-20 04:25:17 UTC (rev 54637) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30006 +BuildNum=30008 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...> - 2012-06-20 11:47:41
|
Revision: 54643 http://firebird.svn.sourceforge.net/firebird/?rev=54643&view=rev Author: alexpeshkoff Date: 2012-06-20 11:47:30 +0000 (Wed, 20 Jun 2012) Log Message: ----------- Implemented CORE-2666: Make it possible to use API to do remote backups/restores Modified Paths: -------------- firebird/trunk/doc/README.services_extension firebird/trunk/src/burp/burp.cpp firebird/trunk/src/burp/burp.h firebird/trunk/src/burp/mvol.cpp firebird/trunk/src/burp/split/spit.cpp firebird/trunk/src/burp/split/spit.h firebird/trunk/src/burp/std_desc.h firebird/trunk/src/common/UtilSvc.cpp firebird/trunk/src/common/UtilSvc.h firebird/trunk/src/common/utils.cpp firebird/trunk/src/include/consts_pub.h firebird/trunk/src/include/gen/msgs.h firebird/trunk/src/jrd/svc.cpp firebird/trunk/src/jrd/svc.h firebird/trunk/src/msgs/messages2.sql firebird/trunk/src/utilities/fbsvcmgr/fbsvcmgr.cpp firebird/trunk/src/utilities/ntrace/TracePluginImpl.cpp Modified: firebird/trunk/doc/README.services_extension =================================================================== --- firebird/trunk/doc/README.services_extension 2012-06-20 09:39:11 UTC (rev 54642) +++ firebird/trunk/doc/README.services_extension 2012-06-20 11:47:30 UTC (rev 54643) @@ -134,7 +134,7 @@ - user: <string> - date: YYYY-MM-DD HH:NN:SS - flags: <string> - + "name" is trace session name and not printed if empty. "user" is creator user name "date" is session start date and time @@ -149,4 +149,45 @@ Output of every service is obtained as usually using isc_service_query call with isc_info_svc_line or isc_info_svc_to_eof information items. -See also README.trace_services \ No newline at end of file +See also README.trace_services + + +4) Services API extension - running gbak at server side with .fbk at the client. +(Alex Peshkov, pes...@ma..., 2011-2012) + +This way of doing backups is specially efficient when one needs to perform +backup/restore operation for database, located on ther server accessed using +internet, due to serious performance instrease. + +The simplest way to use this feature is fbsvcmgr. To backup database run +approximately the following: +fbsvcmgr remotehost:service_mgr -user sysdba -password XXX \ + action_backup -dbname some.fdb -bkp_file stdout >some.fbk + +and to restore it: +fbsvcmgr remotehost:service_mgr -user sysdba -password XXX \ + action_restore -dbname some.fdb -bkp_file stdin <some.fbk + +Please notice - you can't use "verbose" switch when performing backup because +data channel from server to client is used to deliver blocks of fbk files. You +will get appropriate error message if you try to do it. When restoring database +verbose mode may be used without limitations. + +If you want to perform backup/restore from your own program, you should use +services API for it. Backup is very simple - just pass "stdout" as backup file +name to server and use isc_info_svc_to_eof in isc_service_query() call. Data, +returned by repeating calls to isc_service_query() (certainly with +isc_info_svc_to_eof tag) is a stream, representing image of backup file. Restore +is a bit more tricky. Client sends new spb parameter isc_info_svc_stdin to server +in isc_service_query(). If service needs some data in stdin, it returns +isc_info_svc_stdin in query results, followed by 4-bytes value - number of bytes +server is ready to accept from client. (0 value means no more data is needed right +now.) The main trick is that client should NOT send more data than requested by +server - this causes an error "Size of data is more than requested". The data is +sent in next isc_service_query() call in the send_items block, using +isc_info_svc_line tag in tradition form: isc_info_svc_line, 2 bytes length, data. +When server needs next portion, it once more returns non-zero isc_info_svc_stdin +value from isc_service_query(). + +A sample of how services API should be used for remote backup and restore can be +found in source code of fbsvcmgr. Modified: firebird/trunk/src/burp/burp.cpp =================================================================== --- firebird/trunk/src/burp/burp.cpp 2012-06-20 09:39:11 UTC (rev 54642) +++ firebird/trunk/src/burp/burp.cpp 2012-06-20 11:47:30 UTC (rev 54643) @@ -1255,12 +1255,17 @@ // Close the gbak file handles if they still open for (burp_fil* file = tdgbl->gbl_sw_backup_files; file; file = file->fil_next) { - if (file->fil_fd != INVALID_HANDLE_VALUE) - close_platf(file->fil_fd); - if (exit_code != FINI_OK && - (tdgbl->action->act_action == ACT_backup_split || tdgbl->action->act_action == ACT_backup)) + if (file->fil_fd != GBAK_STDIN_DESC() && file->fil_fd != GBAK_STDOUT_DESC()) { - unlink_platf(file->fil_name.c_str()); + if (file->fil_fd != INVALID_HANDLE_VALUE) + { + close_platf(file->fil_fd); + } + if (exit_code != FINI_OK && + (tdgbl->action->act_action == ACT_backup_split || tdgbl->action->act_action == ACT_backup)) + { + unlink_platf(file->fil_name.c_str()); + } } } @@ -1840,10 +1845,10 @@ } if (fil->fil_name == "stdout") { - if (tdgbl->action->act_total >= 2 || fil->fil_next) + if (tdgbl->action->act_total >= 2 || fil->fil_next || sw_verbose) { BURP_error(266, true); - // msg 266 standard output is not supported when using split operation + // msg 266 standard output is not supported when using split operation or in verbose mode flag = QUIT; break; } @@ -1855,6 +1860,7 @@ #endif tdgbl->uSvc->setDataMode(true); fil->fil_fd = GBAK_STDOUT_DESC(); + tdgbl->stdIoMode = true; break; } else @@ -1959,10 +1965,13 @@ { fil->fil_fd = GBAK_STDIN_DESC(); tdgbl->file_desc = fil->fil_fd; + tdgbl->stdIoMode = true; tdgbl->gbl_sw_files = fil->fil_next; } else { + tdgbl->stdIoMode = false; + // open first file #ifdef WIN_NT if ((fil->fil_fd = MVOL_open(fil->fil_name.c_str(), MODE_READ, OPEN_EXISTING)) == Modified: firebird/trunk/src/burp/burp.h =================================================================== --- firebird/trunk/src/burp/burp.h 2012-06-20 09:39:11 UTC (rev 54642) +++ firebird/trunk/src/burp/burp.h 2012-06-20 11:47:30 UTC (rev 54643) @@ -871,10 +871,11 @@ BurpGlobals(Firebird::UtilSvc* us) : ThreadData(ThreadData::tddGBL), defaultCollations(*getDefaultMemoryPool()), - flag_on_line(true), uSvc(us), + verboseInterval(10000), + flag_on_line(true), firstMap(true), - verboseInterval(10000) + stdIoMode(false) { // this is VERY dirty hack to keep current behaviour memset (&gbl_database_file_name, 0, @@ -886,8 +887,6 @@ // would be set to FINI_OK (==0) in exit_local } - Firebird::Array<Firebird::Pair<Firebird::NonPooled<Firebird::MetaName, Firebird::MetaName> > > - defaultCollations; const TEXT* gbl_database_file_name; TEXT gbl_backup_start_time[30]; bool gbl_sw_verbose; @@ -1034,10 +1033,13 @@ char veryEnd; //starting after this members must be initialized in constructor explicitly - bool flag_on_line; // indicates whether we will bring the database on-line + Firebird::Array<Firebird::Pair<Firebird::NonPooled<Firebird::MetaName, Firebird::MetaName> > > + defaultCollations; Firebird::UtilSvc* uSvc; - bool firstMap; // this is the first time we entered get_mapping() ULONG verboseInterval; // How many records should be backed up or restored before we show this message + bool flag_on_line; // indicates whether we will bring the database on-line + bool firstMap; // this is the first time we entered get_mapping() + bool stdIoMode; // stdin or stdout is used as backup file }; // CVC: This aux routine declared here to not force inclusion of burp.h with burp_proto.h @@ -1048,17 +1050,8 @@ const int FINI_DB_NOT_ONLINE = 2; // I/O definitions +const int GBAK_IO_BUFFER_SIZE = SVC_IO_BUFFER_SIZE; -#ifndef IO_BUFFER_SIZE -#ifdef BUFSIZ -const int GBAK_IO_BUFFER_SIZE = (16 * (BUFSIZ)); -#else -const int GBAK_IO_BUFFER_SIZE = (16 * (1024)); -#endif -#else -const int GBAK_IO_BUFFER_SIZE = (16 * (IO_BUFFER_SIZE)); -#endif - /* Burp will always write a backup in multiples of the following number * of bytes. The initial value is the smallest which ensures that writes * to fixed-block SCSI tapes such as QIC-150 will work. The value should Modified: firebird/trunk/src/burp/mvol.cpp =================================================================== --- firebird/trunk/src/burp/mvol.cpp 2012-06-20 09:39:11 UTC (rev 54642) +++ firebird/trunk/src/burp/mvol.cpp 2012-06-20 11:47:30 UTC (rev 54643) @@ -100,6 +100,7 @@ static bool read_header(DESC, ULONG*, USHORT*, bool); static bool write_header(DESC, ULONG, bool); static DESC next_volume(DESC, ULONG, bool); +static void mvol_read(int*, UCHAR**); //____________________________________________________________ @@ -109,15 +110,16 @@ { BurpGlobals* tdgbl = BurpGlobals::getSpecific(); - if (strcmp(tdgbl->mvol_old_file, "stdin") != 0) + if (!tdgbl->stdIoMode) { close_platf(tdgbl->file_desc); + } - for (burp_fil* file = tdgbl->gbl_sw_backup_files; file; file = file->fil_next) + for (burp_fil* file = tdgbl->gbl_sw_backup_files; file; file = file->fil_next) + { + if (file->fil_fd == tdgbl->file_desc) { - if (file->fil_fd == tdgbl->file_desc) { - file->fil_fd = INVALID_HANDLE_VALUE; - } + file->fil_fd = INVALID_HANDLE_VALUE; } } @@ -139,15 +141,19 @@ MVOL_write(rec_end, io_cnt, io_ptr); flush_platf(tdgbl->file_desc); - if (strcmp(tdgbl->mvol_old_file, "stdout") != 0) + + if (!tdgbl->stdIoMode) { close_platf(tdgbl->file_desc); - for (burp_fil* file = tdgbl->gbl_sw_backup_files; file; file = file->fil_next) + } + for (burp_fil* file = tdgbl->gbl_sw_backup_files; file; file = file->fil_next) + { + if (file->fil_fd == tdgbl->file_desc) { - if (file->fil_fd == tdgbl->file_desc) - file->fil_fd = INVALID_HANDLE_VALUE; + file->fil_fd = INVALID_HANDLE_VALUE; } } + tdgbl->file_desc = INVALID_HANDLE_VALUE; BURP_free(tdgbl->mvol_io_header); tdgbl->mvol_io_header = NULL; @@ -255,12 +261,48 @@ } +//____________________________________________________________ +// +// Read a buffer's worth of data. (common) +// +int MVOL_read(int* cnt, UCHAR** ptr) +{ + BurpGlobals* tdgbl = BurpGlobals::getSpecific(); + + if (tdgbl->stdIoMode && tdgbl->uSvc->isService()) + { + tdgbl->uSvc->started(); + tdgbl->mvol_io_cnt = tdgbl->uSvc->getBytes(tdgbl->mvol_io_buffer, tdgbl->mvol_io_buffer_size); + if (!tdgbl->mvol_io_cnt) + { + BURP_error_redirect(0, 220); + // msg 220 Unexpected I/O error while reading from backup file + } + tdgbl->mvol_io_ptr = tdgbl->mvol_io_buffer; + } + else + { + mvol_read(cnt, ptr); + } + + tdgbl->mvol_cumul_count += tdgbl->mvol_io_cnt; + file_not_empty(); + + if (ptr) + *ptr = tdgbl->mvol_io_ptr + 1; + if (cnt) + *cnt = tdgbl->mvol_io_cnt - 1; + + return *tdgbl->mvol_io_ptr; +} + + #ifndef WIN_NT //____________________________________________________________ // // Read a buffer's worth of data. (non-WIN_NT) // -int MVOL_read(int* cnt, UCHAR** ptr) +static void mvol_read(int* cnt, UCHAR** ptr) { BurpGlobals* tdgbl = BurpGlobals::getSpecific(); @@ -295,14 +337,6 @@ } } } - - tdgbl->mvol_cumul_count += tdgbl->mvol_io_cnt; - file_not_empty(); - - *ptr = tdgbl->mvol_io_ptr + 1; - *cnt = tdgbl->mvol_io_cnt - 1; - - return *tdgbl->mvol_io_ptr; } @@ -311,7 +345,7 @@ // // Read a buffer's worth of data. (WIN_NT) // -int MVOL_read(int* cnt, UCHAR** ptr) +static void mvol_read(int* cnt, UCHAR** ptr) { BurpGlobals* tdgbl = BurpGlobals::getSpecific(); @@ -343,14 +377,6 @@ // msg 50 unexpected end of file on backup file } } - - tdgbl->mvol_cumul_count += tdgbl->mvol_io_cnt; - file_not_empty(); - - *ptr = tdgbl->mvol_io_ptr + 1; - *cnt = tdgbl->mvol_io_cnt - 1; - - return *tdgbl->mvol_io_ptr; } #endif // !WIN_NT @@ -507,169 +533,178 @@ const ULONG size_to_write = BURP_UP_TO_BLOCK(*io_ptr - tdgbl->mvol_io_buffer); ULONG left = size_to_write; - for (ptr = tdgbl->mvol_io_buffer; left > 0; ptr += cnt, left -= cnt) + if (tdgbl->stdIoMode && tdgbl->uSvc->isService()) { - if (tdgbl->action->act_action == ACT_backup_split) + tdgbl->uSvc->started(); + tdgbl->uSvc->putBytes(tdgbl->mvol_io_buffer, left); + left = 0; + } + else + { + for (ptr = tdgbl->mvol_io_buffer; left > 0; ptr += cnt, left -= cnt) { - // Write to the current file till fil_lingth > 0, otherwise - // switch to the next one - if (tdgbl->action->act_file->fil_length == 0) + if (tdgbl->action->act_action == ACT_backup_split) { - if (tdgbl->action->act_file->fil_next) + // Write to the current file till fil_lingth > 0, otherwise + // switch to the next one + if (tdgbl->action->act_file->fil_length == 0) { - close_platf(tdgbl->file_desc); - for (burp_fil* file = tdgbl->gbl_sw_backup_files; file; file = file->fil_next) + if (tdgbl->action->act_file->fil_next) { - if (file->fil_fd == tdgbl->file_desc) - file->fil_fd = INVALID_HANDLE_VALUE; + close_platf(tdgbl->file_desc); + for (burp_fil* file = tdgbl->gbl_sw_backup_files; file; file = file->fil_next) + { + if (file->fil_fd == tdgbl->file_desc) + file->fil_fd = INVALID_HANDLE_VALUE; + } + tdgbl->action->act_file->fil_fd = INVALID_HANDLE_VALUE; + tdgbl->action->act_file = tdgbl->action->act_file->fil_next; + tdgbl->file_desc = tdgbl->action->act_file->fil_fd; } - tdgbl->action->act_file->fil_fd = INVALID_HANDLE_VALUE; - tdgbl->action->act_file = tdgbl->action->act_file->fil_next; - tdgbl->file_desc = tdgbl->action->act_file->fil_fd; + else + { + // This is a last file. Keep writing in a hope that there is + // enough free disk space ... + tdgbl->action->act_file->fil_length = MAX_LENGTH; + } } - else - { - // This is a last file. Keep writing in a hope that there is - // enough free disk space ... - tdgbl->action->act_file->fil_length = MAX_LENGTH; - } } - } - const size_t nBytesToWrite = - (tdgbl->action->act_action == ACT_backup_split && - tdgbl->action->act_file->fil_length < left) ? - tdgbl->action->act_file->fil_length : left; + const size_t nBytesToWrite = + (tdgbl->action->act_action == ACT_backup_split && + tdgbl->action->act_file->fil_length < left) ? + tdgbl->action->act_file->fil_length : left; #ifndef WIN_NT - cnt = write(tdgbl->file_desc, ptr, nBytesToWrite); + cnt = write(tdgbl->file_desc, ptr, nBytesToWrite); #else - DWORD ret = 0; - if (!WriteFile(tdgbl->file_desc, ptr, (DWORD) nBytesToWrite, &cnt, NULL)) - { - ret = GetLastError(); - } + DWORD ret = 0; + if (!WriteFile(tdgbl->file_desc, ptr, (DWORD) nBytesToWrite, &cnt, NULL)) + { + ret = GetLastError(); + } #endif // !WIN_NT - tdgbl->mvol_io_buffer = tdgbl->mvol_io_data; - if (cnt > 0) - { - tdgbl->mvol_cumul_count += cnt; - file_not_empty(); - if (tdgbl->action->act_action == ACT_backup_split) + tdgbl->mvol_io_buffer = tdgbl->mvol_io_data; + if (cnt > 0) { - if (tdgbl->action->act_file->fil_length < left) - tdgbl->action->act_file->fil_length = 0; - else - tdgbl->action->act_file->fil_length -= left; + tdgbl->mvol_cumul_count += cnt; + file_not_empty(); + if (tdgbl->action->act_action == ACT_backup_split) + { + if (tdgbl->action->act_file->fil_length < left) + tdgbl->action->act_file->fil_length = 0; + else + tdgbl->action->act_file->fil_length -= left; + } } - } - else - { - if (!cnt || + else + { + if (!cnt || #ifndef WIN_NT - errno == ENOSPC || errno == EIO || errno == ENXIO || - errno == EFBIG) + errno == ENOSPC || errno == EIO || errno == ENXIO || + errno == EFBIG) #else - ret == ERROR_DISK_FULL || ret == ERROR_HANDLE_DISK_FULL) + ret == ERROR_DISK_FULL || ret == ERROR_HANDLE_DISK_FULL) #endif // !WIN_NT - { - if (tdgbl->action->act_action == ACT_backup_split) { - // Close the current file and switch to the next one. - // If there is no more specified files left then - // issue an error and give up - if (tdgbl->action->act_file->fil_next) + if (tdgbl->action->act_action == ACT_backup_split) { - close_platf(tdgbl->file_desc); - for (burp_fil* file = tdgbl->gbl_sw_backup_files; file; file = file->fil_next) + // Close the current file and switch to the next one. + // If there is no more specified files left then + // issue an error and give up + if (tdgbl->action->act_file->fil_next) { - if (file->fil_fd == tdgbl->file_desc) - file->fil_fd = INVALID_HANDLE_VALUE; - } + close_platf(tdgbl->file_desc); + for (burp_fil* file = tdgbl->gbl_sw_backup_files; file; file = file->fil_next) + { + if (file->fil_fd == tdgbl->file_desc) + file->fil_fd = INVALID_HANDLE_VALUE; + } - tdgbl->action->act_file->fil_fd = INVALID_HANDLE_VALUE; - BURP_print(true, 272, SafeArg() << - tdgbl->action->act_file->fil_name.c_str() << - tdgbl->action->act_file->fil_length << - tdgbl->action->act_file->fil_next->fil_name.c_str()); - // msg 272 Warning -- free disk space exhausted for file %s, - // the rest of the bytes (%d) will be written to file %s - tdgbl->action->act_file->fil_next->fil_length += + tdgbl->action->act_file->fil_fd = INVALID_HANDLE_VALUE; + BURP_print(true, 272, SafeArg() << + tdgbl->action->act_file->fil_name.c_str() << + tdgbl->action->act_file->fil_length << + tdgbl->action->act_file->fil_next->fil_name.c_str()); + // msg 272 Warning -- free disk space exhausted for file %s, + // the rest of the bytes (%d) will be written to file %s + tdgbl->action->act_file->fil_next->fil_length += tdgbl->action->act_file->fil_length; - tdgbl->action->act_file = tdgbl->action->act_file->fil_next; - tdgbl->file_desc = tdgbl->action->act_file->fil_fd; + tdgbl->action->act_file = tdgbl->action->act_file->fil_next; + tdgbl->file_desc = tdgbl->action->act_file->fil_fd; + } + else + { + BURP_error(270, true); + // msg 270 free disk space exhausted + } + cnt = 0; + continue; } - else + + if (tdgbl->uSvc->isService()) { BURP_error(270, true); // msg 270 free disk space exhausted } - cnt = 0; - continue; - } - if (tdgbl->uSvc->isService()) - { - BURP_error(270, true); - // msg 270 free disk space exhausted - } + // Note: there is an assumption here, that if header data is being + // written, it is really being rewritten, so at least all the + // header data will be written - // Note: there is an assumption here, that if header data is being - // written, it is really being rewritten, so at least all the - // header data will be written + if (left != size_to_write) + { + // Wrote some, move remainder up in buffer. - if (left != size_to_write) - { - // Wrote some, move remainder up in buffer. - - // NOTE: We should NOT use memcpy here. We're moving overlapped - // data and memcpy does not guanantee the order the data - // is moved in - memcpy(tdgbl->mvol_io_data, ptr, left); + // NOTE: We should NOT use memcpy here. We're moving overlapped + // data and memcpy does not guanantee the order the data + // is moved in + memcpy(tdgbl->mvol_io_data, ptr, left); + } + left += tdgbl->mvol_io_data - tdgbl->mvol_io_header; + bool full_buffer; + if (left >= tdgbl->mvol_io_buffer_size) + full_buffer = true; + else + full_buffer = false; + tdgbl->file_desc = next_volume(tdgbl->file_desc, MODE_WRITE, full_buffer); + if (full_buffer) + { + left -= tdgbl->mvol_io_buffer_size; + memcpy(tdgbl->mvol_io_data, + tdgbl->mvol_io_header + tdgbl->mvol_io_buffer_size, + left); + tdgbl->mvol_cumul_count += tdgbl->mvol_io_buffer_size; + tdgbl->mvol_io_buffer = tdgbl->mvol_io_data; + } + else + tdgbl->mvol_io_buffer = tdgbl->mvol_io_header; + break; } - left += tdgbl->mvol_io_data - tdgbl->mvol_io_header; - bool full_buffer; - if (left >= tdgbl->mvol_io_buffer_size) - full_buffer = true; - else - full_buffer = false; - tdgbl->file_desc = next_volume(tdgbl->file_desc, MODE_WRITE, full_buffer); - if (full_buffer) + else if (!SYSCALL_INTERRUPTED(errno)) { - left -= tdgbl->mvol_io_buffer_size; - memcpy(tdgbl->mvol_io_data, - tdgbl->mvol_io_header + tdgbl->mvol_io_buffer_size, - left); - tdgbl->mvol_cumul_count += tdgbl->mvol_io_buffer_size; - tdgbl->mvol_io_buffer = tdgbl->mvol_io_data; + BURP_error_redirect(0, 221); + // msg 221 Unexpected I/O error while writing to backup file } - else - tdgbl->mvol_io_buffer = tdgbl->mvol_io_header; - break; } - else if (!SYSCALL_INTERRUPTED(errno)) - { - BURP_error_redirect(0, 221); - // msg 221 Unexpected I/O error while writing to backup file + if (left < cnt) { // this is impossible, but... + cnt = left; } - } - if (left < cnt) { // this is impossible, but... - cnt = left; - } - } // for + } // for #ifdef DEBUG - { - int dbg_cnt; - if (debug_on) { - for (dbg_cnt = 0; dbg_cnt < cnt; dbg_cnt++) - printf("%d,\n", *(ptr + dbg_cnt)); + int dbg_cnt; + if (debug_on) + { + for (dbg_cnt = 0; dbg_cnt < cnt; dbg_cnt++) + printf("%d,\n", *(ptr + dbg_cnt)); + } } +#endif } -#endif // After the first block of first volume is written (using a default block size) // change the block size to one that reflects the user's blocking factor. By @@ -1069,13 +1104,21 @@ // Headers are a version number, and a volume number + if (tdgbl->stdIoMode && tdgbl->uSvc->isService()) + { + tdgbl->uSvc->started(); + tdgbl->mvol_io_cnt = tdgbl->uSvc->getBytes(tdgbl->mvol_io_buffer, tdgbl->mvol_io_buffer_size); + } + else + { #ifndef WIN_NT - tdgbl->mvol_io_cnt = read(handle, tdgbl->mvol_io_buffer, tdgbl->mvol_actual_buffer_size); + tdgbl->mvol_io_cnt = read(handle, tdgbl->mvol_io_buffer, tdgbl->mvol_actual_buffer_size); #else - DWORD bytesRead = 0; - ReadFile(handle, tdgbl->mvol_io_buffer, tdgbl->mvol_actual_buffer_size, &bytesRead, NULL); - tdgbl->mvol_io_cnt = bytesRead; + DWORD bytesRead = 0; + ReadFile(handle, tdgbl->mvol_io_buffer, tdgbl->mvol_actual_buffer_size, &bytesRead, NULL); + tdgbl->mvol_io_cnt = bytesRead; #endif + } if (!tdgbl->mvol_io_cnt) BURP_error_redirect(0, 45); // maybe there's a better message Modified: firebird/trunk/src/burp/split/spit.cpp =================================================================== --- firebird/trunk/src/burp/split/spit.cpp 2012-06-20 09:39:11 UTC (rev 54642) +++ firebird/trunk/src/burp/split/spit.cpp 2012-06-20 11:47:30 UTC (rev 54643) @@ -47,6 +47,7 @@ #endif #include "../burp/split/spit.h" #include "../common/classes/Switches.h" +#include "../burp/std_desc.h" #include "../burp/burpswi.h" #ifdef HAVE_UNISTD_H @@ -61,6 +62,53 @@ static const int mode_write = O_WRONLY | O_CREAT; static const int mask = 0666; +static DESC open_platf(const char* name, int writeFlag) +{ +#ifdef WIN_NT + return CreateFile(name, writeFlag ? GENERIC_WRITE : GENERIC_READ, 0, NULL, + writeFlag ? CREATE_ALWAYS : OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); +#else + return open(name, writeFlag ? mode_write : mode_read, mask); +#endif +} + +static int read_platf(DESC file, void* buf, int count) +{ +#ifdef WIN_NT + DWORD act; + if (!ReadFile(file, buf, count, &act, NULL)) + { + return -1; + } + return act; +#else + return read(file, buf, count); +#endif +} + +static int write_platf(DESC file, const void* buf, int count) +{ +#ifdef WIN_NT + DWORD act; + if (!WriteFile(file, buf, count, &act, NULL)) + { + return -1; + } + return act; +#else + return write(file, buf, count); +#endif +} + +static void close_platf(DESC file) +{ +#ifdef WIN_NT + CloseHandle(file); +#else + close(file); +#endif +} + // Definitions for GSPLIT enum gsplit_option { @@ -291,7 +339,7 @@ switch (sw_replace) { case IN_SW_SPIT_SP: - input_file_desc = GBAK_STDIN_DESC; + input_file_desc = GBAK_STDIN_DESC(); ret_cd = gen_multy_bakup_files(file_list, input_file_desc, file_num); if (ret_cd == FB_FAILURE) { @@ -610,8 +658,8 @@ file_size = fl_ptr->b_fil_size - header_rec_len; file_name = fl_ptr->b_fil_name; - output_fl_desc = open(file_name, mode_write, mask); - if (output_fl_desc == -1) + output_fl_desc = open_platf(file_name, 1); + if (output_fl_desc == INVALID_HANDLE_VALUE) { free(io_buffer); fprintf(stderr, "can not open back up file %s\n", file_name); @@ -681,8 +729,8 @@ file_size = fl_ptr->b_fil_size - header_rec_len; file_name = fl_ptr->b_fil_name; - output_fl_desc = open(file_name, mode_write, mask); - if (output_fl_desc == -1) + output_fl_desc = open_platf(file_name, 1); + if (output_fl_desc == INVALID_HANDLE_VALUE) { free(io_buffer); fprintf(stderr, "can not open back up file %s\n", file_name); @@ -793,21 +841,21 @@ if (*byte_read + io_size > file_size) { last_read_size = (SLONG) (file_size - *byte_read); - read_cnt = read(input_file_desc, *io_buffer, last_read_size); + read_cnt = read_platf(input_file_desc, *io_buffer, last_read_size); } else - read_cnt = read(input_file_desc, *io_buffer, io_size); + read_cnt = read_platf(input_file_desc, *io_buffer, io_size); switch (read_cnt) { case 0: // no more data to be read - close(output_fl_desc); + close_platf(output_fl_desc); *end_of_input = true; *byte_read = *byte_read + read_cnt; return FB_SUCCESS; case -1: // read failed - close(output_fl_desc); + close_platf(output_fl_desc); fprintf(stderr, "fail to read input from stdin, errno = %d\n", errno); return FB_FAILURE; @@ -816,12 +864,12 @@ break; } - const SLONG write_cnt = write(output_fl_desc, *io_buffer, read_cnt); + const SLONG write_cnt = write_platf(output_fl_desc, *io_buffer, read_cnt); switch (write_cnt) { case -1: // write failed - close(output_fl_desc); + close_platf(output_fl_desc); return FB_FAILURE; default: @@ -829,7 +877,7 @@ return FB_SUCCESS; // write less data than it reads in - close(output_fl_desc); + close_platf(output_fl_desc); *byte_write = write_cnt; return FILE_IS_FULL; } @@ -858,17 +906,17 @@ ********************************************************************* */ - const SLONG read_cnt = read(input_file_desc, *io_buffer, io_size); + const SLONG read_cnt = read_platf(input_file_desc, *io_buffer, io_size); switch (read_cnt) { case 0: // no more data to be read - close(output_fl_desc); + close_platf(output_fl_desc); *end_of_input = true; return FB_SUCCESS; case -1: // read failed - close(output_fl_desc); + close_platf(output_fl_desc); fprintf(stderr, "problem when reading input file, errno = %d\n", errno); return FB_FAILURE; @@ -876,12 +924,12 @@ break; } - const SLONG write_cnt = write(output_fl_desc, *io_buffer, read_cnt); + const SLONG write_cnt = write_platf(output_fl_desc, *io_buffer, read_cnt); switch (write_cnt) { case -1: // write failed - close(output_fl_desc); + close_platf(output_fl_desc); return FB_FAILURE; default: @@ -889,7 +937,7 @@ return FB_SUCCESS; fprintf(stderr, "There is no enough space to write to back up file %s\n", file_name); - close(output_fl_desc); + close_platf(output_fl_desc); return FB_FAILURE; } } @@ -914,7 +962,7 @@ ********************************************************************* */ - FILE_DESC output_fl_desc = GBAK_STDOUT_DESC; + FILE_DESC output_fl_desc = GBAK_STDOUT_DESC(); // See comment near the beginning of gen_multy_bakup_files() as it // also applies to read_and_write_for_join(). @@ -974,18 +1022,18 @@ TEXT num_arr[5], total_arr[5]; header_rec hdr_rec; - FILE_DESC input_fl_desc = open(file_name, mode_read); + FILE_DESC input_fl_desc = open_platf(file_name, mode_read); - if (input_fl_desc == -1) + if (input_fl_desc == INVALID_HANDLE_VALUE) { fprintf(stderr, "can not open input file %s\n", file_name); return FB_FAILURE; } - int read_cnt = read(input_fl_desc, io_buffer, header_rec_len); + int read_cnt = read_platf(input_fl_desc, io_buffer, header_rec_len); if (read_cnt != static_cast<int>(header_rec_len)) { - close(input_fl_desc); + close_platf(input_fl_desc); fprintf(stderr, "progam fails to read gsplit header record in back-up file%s\n", file_name); return FB_FAILURE; } @@ -994,7 +1042,7 @@ SLONG ret_cd = strncmp(char_ptr1, header_rec_name, sizeof(hdr_rec.name) - 1); if (ret_cd != 0) { - close(input_fl_desc); + close_platf(input_fl_desc); fprintf(stderr, "gsplit: expected GSPLIT description record\n"); fprintf(stderr, "gsplit: Exiting before completion due to errors\n"); return FB_FAILURE; @@ -1026,13 +1074,13 @@ if ((num_int != cnt) || (num_int > *total_int)) { - close(input_fl_desc); + close_platf(input_fl_desc); fprintf(stderr, "gsplit: join backup file is out of sequence\n"); fprintf(stderr, "gsplit: Exiting before completion due to errors\n"); return FB_FAILURE; } - read_cnt = read(input_fl_desc, io_buffer, IO_BUFFER_SIZE); + read_cnt = read_platf(input_fl_desc, io_buffer, IO_BUFFER_SIZE); while (true) @@ -1040,23 +1088,23 @@ switch (read_cnt) { case 0: // no more data to be read - close(input_fl_desc); + close_platf(input_fl_desc); return FB_SUCCESS; case -1: // read failed - close(input_fl_desc); + close_platf(input_fl_desc); return FB_FAILURE; default: // this is the last read break; } - SLONG write_cnt = write(output_fl_desc, io_buffer, read_cnt); + SLONG write_cnt = write_platf(output_fl_desc, io_buffer, read_cnt); switch (write_cnt) { case -1: // write failed - close(input_fl_desc); + close_platf(input_fl_desc); return FB_FAILURE; default: @@ -1064,7 +1112,7 @@ break; } - read_cnt = read(input_fl_desc, io_buffer, IO_BUFFER_SIZE); + read_cnt = read_platf(input_fl_desc, io_buffer, IO_BUFFER_SIZE); } // end of while (true) loop } @@ -1150,11 +1198,11 @@ ret_cd = set_hdr_str(header_str, file_name, pos, strlen(file_name)); SLONG end, indx; - SLONG write_cnt = write(output_fl_desc, header_str, header_rec_len); + SLONG write_cnt = write_platf(output_fl_desc, header_str, header_rec_len); switch (write_cnt) { case -1: // write failed - close(output_fl_desc); + close_platf(output_fl_desc); return FB_FAILURE; default: @@ -1202,14 +1250,14 @@ SLONG write_cnt; if (file_size > remaining_io_len) - write_cnt = write(output_fl_desc, remaining_io, remaining_io_len); + write_cnt = write_platf(output_fl_desc, remaining_io, remaining_io_len); else // file_size <= remaining_io_len - write_cnt = write(output_fl_desc, remaining_io, (unsigned int) file_size); + write_cnt = write_platf(output_fl_desc, remaining_io, (unsigned int) file_size); switch (write_cnt) { case -1: // write failed - close(output_fl_desc); + close_platf(output_fl_desc); *flush_done = false; return FB_FAILURE; @@ -1219,7 +1267,7 @@ else { // could not write out all remaining data - close(output_fl_desc); + close_platf(output_fl_desc); *flush_done = false; } *byte_write = write_cnt; @@ -1245,18 +1293,18 @@ ********************************************************************* */ - SLONG write_cnt = write(output_fl_desc, remaining_io, remaining_io_len); + SLONG write_cnt = write_platf(output_fl_desc, remaining_io, remaining_io_len); switch (write_cnt) { case -1: // write failed - close(output_fl_desc); + close_platf(output_fl_desc); return FB_FAILURE; default: if (write_cnt == remaining_io_len) // write ok return FB_SUCCESS; - close(output_fl_desc); + close_platf(output_fl_desc); return FB_FAILURE; } } Modified: firebird/trunk/src/burp/split/spit.h =================================================================== --- firebird/trunk/src/burp/split/spit.h 2012-06-20 09:39:11 UTC (rev 54642) +++ firebird/trunk/src/burp/split/spit.h 2012-06-20 11:47:30 UTC (rev 54643) @@ -40,8 +40,3 @@ const int MIN_FILE_SIZE = M_BYTES; const char NEW_LINE = '\n'; const char TERMINAL = '\0'; - -typedef int FILE_DESC; - -const FILE_DESC GBAK_STDIN_DESC = 0; // standard input file descriptor -const FILE_DESC GBAK_STDOUT_DESC = 1; // standard output file descriptor Modified: firebird/trunk/src/burp/std_desc.h =================================================================== --- firebird/trunk/src/burp/std_desc.h 2012-06-20 09:39:11 UTC (rev 54642) +++ firebird/trunk/src/burp/std_desc.h 2012-06-20 11:47:30 UTC (rev 54643) @@ -61,4 +61,6 @@ #endif //WIN_NT +typedef DESC FILE_DESC; + #endif //GBAK_STD_DESC_H Modified: firebird/trunk/src/common/UtilSvc.cpp =================================================================== --- firebird/trunk/src/common/UtilSvc.cpp 2012-06-20 09:39:11 UTC (rev 54642) +++ firebird/trunk/src/common/UtilSvc.cpp 2012-06-20 11:47:30 UTC (rev 54643) @@ -137,6 +137,7 @@ virtual void putSLong(char, SLONG) { } virtual void putChar(char, char) { } virtual void putBytes(const UCHAR*, size_t) { } + virtual ULONG getBytes(UCHAR*, ULONG) { return 0; } virtual void setServiceStatus(const ISC_STATUS*) { } virtual void setServiceStatus(const USHORT, const USHORT, const MsgFormat::SafeArg&) { } virtual const ISC_STATUS* getStatus() { return 0; } Modified: firebird/trunk/src/common/UtilSvc.h =================================================================== --- firebird/trunk/src/common/UtilSvc.h 2012-06-20 09:39:11 UTC (rev 54642) +++ firebird/trunk/src/common/UtilSvc.h 2012-06-20 11:47:30 UTC (rev 54643) @@ -63,6 +63,7 @@ virtual void putSLong(char, SLONG) = 0; virtual void putChar(char, char) = 0; virtual void putBytes(const UCHAR*, size_t) = 0; + virtual ULONG getBytes(UCHAR*, ULONG) = 0; virtual void setServiceStatus(const ISC_STATUS*) = 0; virtual void setServiceStatus(const USHORT, const USHORT, const MsgFormat::SafeArg&) = 0; virtual const ISC_STATUS* getStatus() = 0; Modified: firebird/trunk/src/common/utils.cpp =================================================================== --- firebird/trunk/src/common/utils.cpp 2012-06-20 09:39:11 UTC (rev 54642) +++ firebird/trunk/src/common/utils.cpp 2012-06-20 11:47:30 UTC (rev 54643) @@ -1143,6 +1143,7 @@ case isc_info_svc_limbo_trans: case isc_info_svc_running: case isc_info_svc_get_users: + case isc_info_svc_stdin: if (state == S_INF) { (Firebird::Arg::Gds(isc_random) << "Wrong info items combination").raise(); Modified: firebird/trunk/src/include/consts_pub.h =================================================================== --- firebird/trunk/src/include/consts_pub.h 2012-06-20 09:39:11 UTC (rev 54642) +++ firebird/trunk/src/include/consts_pub.h 2012-06-20 11:47:30 UTC (rev 54643) @@ -334,6 +334,7 @@ #define isc_info_svc_running 67 /* Checks to see if a service is running on an attachment */ #define isc_info_svc_get_users 68 /* Returns the user information from isc_action_svc_display_users */ #define isc_info_svc_auth_block 69 /* Sets authentication block for service query() call */ +#define isc_info_svc_stdin 78 /* Returns maximum size of data, needed as stdin for service */ /****************************************************** Modified: firebird/trunk/src/include/gen/msgs.h =================================================================== --- firebird/trunk/src/include/gen/msgs.h 2012-06-20 09:39:11 UTC (rev 54642) +++ firebird/trunk/src/include/gen/msgs.h 2012-06-20 11:47:30 UTC (rev 54643) @@ -939,7 +939,7 @@ {336331015, "file @1 out of sequence"}, /* gbak_file_outof_sequence */ {336331016, "can't join -- one of the files missing"}, /* gbak_join_file_missing */ {336331017, " standard input is not supported when using join operation"}, /* gbak_stdin_not_supptd */ - {336331018, "standard output is not supported when using split operation"}, /* gbak_stdout_not_supptd */ + {336331018, "standard output is not supported when using split operation or in verbose mode"}, /* gbak_stdout_not_supptd */ {336331019, "backup file @1 might be corrupt"}, /* gbak_bkup_corrupt */ {336331020, "database file specification missing"}, /* gbak_unk_db_file_spec */ {336331021, "can't write a header record to file @1"}, /* gbak_hdr_write_failed */ Modified: firebird/trunk/src/jrd/svc.cpp =================================================================== --- firebird/trunk/src/jrd/svc.cpp 2012-06-20 09:39:11 UTC (rev 54642) +++ firebird/trunk/src/jrd/svc.cpp 2012-06-20 11:47:30 UTC (rev 54643) @@ -119,6 +119,7 @@ const int GET_LINE = 1; const int GET_EOF = 2; const int GET_BINARY = 4; +const int GET_ONCE = 8; const char* const SPB_SEC_USERNAME = "isc_spb_sec_username"; @@ -433,6 +434,7 @@ void Service::finish() { + svc_sem_full.release(); finish(SVC_finished); } @@ -661,7 +663,7 @@ bool Service::ck_space_for_numeric(UCHAR*& info, const UCHAR* const end) { if ((info + 1 + sizeof(ULONG)) > end) - { + { if (info < end) *info++ = isc_info_truncated; return false; @@ -706,7 +708,9 @@ svc_command_line(getPool()), svc_network_protocol(getPool()), svc_remote_address(getPool()), svc_remote_process(getPool()), svc_remote_pid(0), svc_trace_manager(NULL), svc_crypt_callback(crypt_callback), - svc_current_guard(NULL) + svc_current_guard(NULL), + svc_stdin_size_requested(0), svc_stdin_buffer(NULL), svc_stdin_size_preload(0), + svc_stdin_preload_requested(0), svc_stdin_user_size(0) { initStatus(); ThreadIdHolder holdId(svc_thread_strings); @@ -1004,6 +1008,8 @@ { if (all[pos]->svc_flags & SVC_thd_running) all[pos]->svc_detach_sem.release(); + if (all[pos]->svc_stdin_size_requested) + all[pos]->svc_stdin_semaphore.release(); } for (pos = 0; pos < all.getCount(); ) @@ -1035,18 +1041,22 @@ UCHAR item; UCHAR buffer[MAXPATHLEN]; USHORT l, length, version, get_flags; + UCHAR* stdin_request_notification = NULL; ThreadIdHolder holdId(svc_thread_strings); // Setup the status vector Arg::StatusVector status; + ULONG requestFromPut = 0; + try { // Process the send portion of the query first. USHORT timeout = 0; const UCHAR* items = send_items; const UCHAR* const end_items = items + send_item_length; + while (items < end_items && *items != isc_info_end) { switch ((item = *items++)) @@ -1064,10 +1074,10 @@ switch (item) { case isc_info_svc_line: - put(items, l); + requestFromPut = put(items, l); break; case isc_info_svc_message: - put(items - 3, l + 3); + //put(items - 3, l + 3); break; case isc_info_svc_timeout: timeout = (USHORT) gds__vax_integer(items, l); @@ -1311,6 +1321,21 @@ } // scope break; + case isc_info_svc_stdin: + // Check - is stdin data required for server + if (!ck_space_for_numeric(info, end)) + { + return 0; + } + *info++ = item; + if (!stdin_request_notification) + { + stdin_request_notification = info; + } + ADD_SPB_NUMERIC(info, 0); + + break; + case isc_info_svc_user_dbpath: if (svc_user_flag & SVC_user_dba) { @@ -1335,7 +1360,7 @@ *info++ = isc_info_truncated; break; } - put(&item, 1); + //put(&item, 1); get(&item, 1, GET_BINARY, 0, &length); get(buffer, 2, GET_BINARY, 0, &length); l = (USHORT) gds__vax_integer(buffer, 2); @@ -1380,7 +1405,7 @@ break; case isc_info_svc_total_length: - put(&item, 1); + //put(&item, 1); get(&item, 1, GET_BINARY, 0, &length); get(buffer, 2, GET_BINARY, 0, &length); l = (USHORT) gds__vax_integer(buffer, 2); @@ -1413,6 +1438,11 @@ break; } + if (requestFromPut) + { + get_flags |= GET_ONCE; + } + get(info + 3, end - (info + 5), get_flags, timeout, &length); // If the read timed out, return the data, if any, & a timeout @@ -1428,7 +1458,7 @@ { *info++ = isc_info_svc_timeout; } - else + else //if (!svc_stdin_size_requested) { if (!length && !(svc_flags & SVC_finished)) { @@ -1458,6 +1488,8 @@ const SLONG number = info - start_info; fb_assert(number > 0); memmove(start_info + 7, start_info, number); + if (stdin_request_notification) + stdin_request_notification += 7; USHORT length2 = INF_convert(number, buffer); fb_assert(length2 == 4); // We only accept SLONG INF_put_item(isc_info_length, length2, buffer, start_info, end, true); @@ -1470,6 +1502,23 @@ recv_item_length, recv_items, res_successful); } + if (!requestFromPut) + { + requestFromPut = svc_stdin_size_requested; + } + + if (requestFromPut) + { + if (stdin_request_notification) + { + ADD_SPB_NUMERIC(stdin_request_notification, requestFromPut); + } + else + { + (Arg::Gds(isc_random) << "No request from user for stdin data").raise(); + } + } + if (status.hasData()) { status.raise(); @@ -1538,10 +1587,10 @@ switch (item) { case isc_info_svc_line: - put(items, l); + //put(items, l); break; case isc_info_svc_message: - put(items - 3, l + 3); + //put(items - 3, l + 3); break; case isc_info_svc_timeout: timeout = (USHORT) gds__vax_integer(items, l); @@ -1764,7 +1813,7 @@ *info++ = isc_info_truncated; break; } - put(&item, 1); + //put(&item, 1); get(&item, 1, GET_BINARY, 0, &length); get(buffer, 2, GET_BINARY, 0, &length); l = (USHORT) gds__vax_integer(buffer, 2); @@ -1809,7 +1858,7 @@ break; case isc_info_svc_total_length: - put(&item, 1); + //put(&item, 1); get(&item, 1, GET_BINARY, 0, &length); get(buffer, 2, GET_BINARY, 0, &length); l = (USHORT) gds__vax_integer(buffer, 2); @@ -2181,19 +2230,29 @@ void Service::enqueue(const UCHAR* s, ULONG len) { + static int transferCount = 0; + if (checkForShutdown() || (svc_flags & SVC_detached)) { + svc_sem_full.release(); return; } while (len) { // Wait for space in buffer + bool flagFirst = true; while (full()) { - THREAD_SLEEP(ENQUEUE_DEQUEUE_DELAY); + if (flagFirst) + { + svc_sem_full.release(); + flagFirst = false; + } + svc_sem_empty.tryEnter(1, 0); if (checkForShutdown() || (svc_flags & SVC_detached)) { + svc_sem_full.release(); return; } } @@ -2211,10 +2270,12 @@ } memcpy(&svc_stdout[svc_stdout_tail], s, cnt); + transferCount += cnt; svc_stdout_tail = add_val(svc_stdout_tail, cnt); s += cnt; len -= cnt; } + svc_sem_full.release(); } @@ -2235,6 +2296,7 @@ svc_flags &= ~SVC_timeout; } + bool flagFirst = true; while (length) { if ((empty() && (svc_flags & SVC_finished)) || checkForShutdown()) @@ -2244,7 +2306,24 @@ if (empty()) { - THREAD_SLEEP(ENQUEUE_DEQUEUE_DELAY); + if (svc_stdin_size_requested && (!(flags & GET_BINARY))) + { + // service needs data from user - notify him + break; + } + + if (flagFirst) + { + svc_sem_empty.release(); + flagFirst = false; + } + + if (flags & GET_ONCE) + { + break; + } + + svc_sem_full.tryEnter(1, 0); } #ifdef HAVE_GETTIMEOFDAY GETTIMEOFDAY(&end_time); @@ -2264,6 +2343,7 @@ while (head != svc_stdout_tail && length > 0) { + flagFirst = true; const UCHAR ch = svc_stdout[head]; head = add_one(head); length--; @@ -2283,15 +2363,103 @@ svc_stdout_head = head; } + svc_sem_empty.release(); } -void Service::put(const UCHAR* /*buffer*/, USHORT /*length*/) +ULONG Service::put(const UCHAR* buffer, ULONG length) { - // Nothing + MutexLockGuard guard(svc_stdin_mutex); + + // check length correctness + if (length > svc_stdin_size_requested && length > svc_stdin_preload_requested) + { + (Arg::Gds(isc_random) << "Size of data is more than requested").raise(); + } + + if (svc_stdin_size_requested) // service waits for data from us + { + svc_stdin_user_size = MIN(length, svc_stdin_size_requested); + memcpy(svc_stdin_buffer, buffer, svc_stdin_user_size); + // reset satisfied request + ULONG blockSize = svc_stdin_size_requested; + svc_stdin_size_requested = 0; + // let data be used + svc_stdin_semaphore.release(); + + if (length == 0) + { + return 0; + } + + // reset used block of data + length -= svc_stdin_user_size; + buffer += svc_stdin_user_size; + + if (length == 0) // ask user to preload next block of data + { + if (!svc_stdin_preload) + { + svc_stdin_preload.reset(FB_NEW(getPool()) UCHAR[PRELOAD_BUFFER_SIZE]); + } + + svc_stdin_preload_requested = MIN(blockSize, PRELOAD_BUFFER_SIZE); + return svc_stdin_preload_requested; + } + } + + // Store data in preload buffer + fb_assert(length <= PRELOAD_BUFFER_SIZE); + fb_assert(length <= svc_stdin_preload_requested); + fb_assert(svc_stdin_size_preload == 0); + + memcpy(svc_stdin_preload, buffer, length); + svc_stdin_size_preload = length; + return 0; } +ULONG Service::getBytes(UCHAR* buffer, ULONG size) +{ + { // Guard scope + MutexLockGuard guard(svc_stdin_mutex); + + if (svc_flags & SVC_detached) // no more data for this service please + { + return 0; + } + + if (svc_stdin_size_preload != 0) // use data, preloaded by user + { + // Use data from preload buffer + size = MIN(size, svc_stdin_size_preload); + memcpy(buffer, svc_stdin_preload, size); + if (size < svc_stdin_size_preload) + { + // not good, client should not request so small block + svc_stdin_size_preload -= size; + memmove(svc_stdin_preload, svc_stdin_preload + size, svc_stdin_size_preload); + } + else + { + svc_stdin_size_preload = 0; + } + return size; + } + + // Request new data portion + svc_stdin_size_requested = size; + svc_stdin_buffer = buffer; + // Wakeup Service::query() if it waits for data from service + svc_sem_full.release(); + } + + // Wait for data from client + svc_stdin_semaphore.enter(); + return svc_stdin_user_size; +} + + void Service::finish(USHORT flag) { if (flag == SVC_finished || flag == SVC_detached) @@ -2308,8 +2476,26 @@ delete this; return; } + + if (svc_flags & SVC_detached) + { + svc_sem_empty.release(); + + // if service waits for data from us - return EOF + { // guard scope + MutexLockGuard guard(svc_stdin_mutex); + + if (svc_stdin_size_requested) + { + svc_stdin_user_size = 0; + svc_stdin_semaphore.release(); + } + } + } + if (svc_flags & SVC_finished) { + svc_sem_full.release(); svc_flags &= ~SVC_thd_running; } else Modified: firebird/trunk/src/jrd/svc.h =================================================================== --- firebird/trunk/src/jrd/svc.h 2012-06-20 09:39:11 UTC (rev 54642) +++ firebird/trunk/src/jrd/svc.h 2012-06-20 11:47:30 UTC (rev 54643) @@ -38,7 +38,18 @@ #include "../common/UtilSvc.h" #include "../common/classes/Switches.h" #include "../common/classes/ClumpletReader.h" +#include "../burp/split/spit.h" +#ifndef IO_BUFFER_SIZE +#ifdef BUFSIZ +const int SVC_IO_BUFFER_SIZE = (16 * (BUFSIZ)); +#else // BUFSIZ +const int SVC_IO_BUFFER_SIZE = (16 * (1024)); +#endif // BUFSIZ +#else // IO_BUFFER_SIZE +const int SVC_IO_BUFFER_SIZE = (16 * (IO_BUFFER_SIZE)); +#endif // IO_BUFFER_SIZE + // forward decl. namespace Jrd { @@ -121,6 +132,8 @@ virtual void putChar(char tag, char val); // put raw bytes to svc_stdout virtual void putBytes(const UCHAR*, size_t); + // get raw bytes from svc_stdin + virtual ULONG getBytes(UCHAR*, ULONG); // append status_vector to service's status virtual void setServiceStatus(const ISC_STATUS* status_vector); // append error message to service's status @@ -218,8 +231,9 @@ bool checkForShutdown(); // Transfer data from svc_stdout into buffer void get(UCHAR* buffer, USHORT length, USHORT flags, USHORT timeout, USHORT* return_length); - // Designed to send output to a service - does nothing. - void put(const UCHAR* buffer, USHORT length); + // Sends stdin for a service + // Returns number of bytes service wants more + ULONG put(const UCHAR* buffer, ULONG length); // Increment circular buffer pointer static ULONG add_one(ULONG i); @@ -301,6 +315,8 @@ private: StatusStringsHelper svc_thread_strings; + Firebird::Semaphore svc_sem_empty, svc_sem_full; + //Service existence guard class ExistenceGuard { @@ -318,6 +334,23 @@ Firebird::Mutex svc_existence_lock; ExistenceGuard* svc_current_guard; + + // Data pipe from client to service + Firebird::Semaphore svc_stdin_semaphore; + Firebird::Mutex svc_stdin_mutex; + // Size of data, requested by service (set in getBytes, reset in put) + ULONG svc_stdin_size_requested; + // Buffer passed by service + UCHAR* svc_stdin_buffer; + // Size of data, preloaded by user (set in put, reset in getBytes) + ULONG svc_stdin_size_preload; + // Buffer for datam preloaded by user + Firebird::AutoPtr<UCHAR> svc_stdin_preload; + // Size of data, requested from user to preload (set in getBytes) + ULONG svc_stdin_preload_requested; + // Size of data, placed into svc_stdin_buffer (set in put) + ULONG svc_stdin_user_size; + static const ULONG PRELOAD_BUFFER_SIZE = SVC_IO_BUFFER_SIZE; }; } //namespace Jrd Modified: firebird/trunk/src/msgs/messages2.sql =================================================================== --- firebird/trunk/src/msgs/messages2.sql 2012-06-20 09:39:11 UTC (rev 54642) +++ firebird/trunk/src/msgs/messages2.sql 2012-06-20 11:47:30 UTC (rev 54643) @@ -2144,7 +2144,7 @@ ('gbak_file_outof_sequence', 'open_files', 'burp.c', NULL, 12, 263, NULL, 'file @1 out of sequence', NULL, NULL); ('gbak_join_file_missing', 'open_files', 'burp.c', NULL, 12, 264, NULL, 'can''t join -- one of the files missing', NULL, NULL); ('gbak_stdin_not_supptd', 'open_files', 'burp.c', NULL, 12, 265, NULL, ' standard input is not supported when using join operation', NULL, NULL); -('gbak_stdout_not_supptd', 'open_files', 'burp.c', NULL, 12, 266, NULL, 'standard output is not supported when using split operation', NULL, NULL); +('gbak_stdout_not_supptd', 'open_files', 'burp.c', NULL, 12, 266, NULL, 'standard output is not supported when using split operation or in verbose mode', NULL, NULL); ('gbak_bkup_corrupt', 'open_files', 'burp.c', NULL, 12, 267, NULL, 'backup file @1 might be corrupt', NULL, NULL); ('gbak_unk_db_file_spec', 'open_files', 'burp.c', NULL, 12, 268, NULL, 'database file specification missing', NULL, NULL); ('gbak_hdr_write_failed', 'MVOL_init_write', 'mvol.c', NULL, 12, 269, NULL, 'can''t write a header record to file @1', NULL, NULL); Modified: firebird/trunk/src/utilities/fbsvcmgr/fbsvcmgr.cpp =================================================================== --- firebird/trunk/src/utilities/fbsvcmgr/fbsvcmgr.cpp 2012-06-20 09:39:11 UTC (rev 54642) +++ firebird/trunk/src/utilities/fbsvcmgr/fbsvcmgr.cpp 2012-06-20 11:47:30 UTC (rev 54643) @@ -38,6 +38,7 @@ #include "../common/utils_proto.h" #include "../common/classes/MsgPrint.h" #include "../jrd/license.h" +#include "../burp/std_desc.h" using namespace Firebird; @@ -481,7 +482,7 @@ const SvcSwitches actionSwitch[] = { - {"action_backup", putSingleTag, backupOptions, isc_action_svc_backup, isc_info_svc_line}, + {"action_backup", putSingleTag, backupOptions, isc_action_svc_backup, isc_info_svc_to_eof}, {"action_restore", putSingleTag, restoreOptions, isc_action_svc_restore, isc_info_svc_line}, {"action_properties", putSingleTag, propertiesOptions, isc_action_svc_properties, 0}, {"action_repair", putSingleTag, repairOptions, isc_action_svc_repair, 0}, @@ -533,9 +534,23 @@ bool printData(const char*& p) { + static DESC binout = INVALID_HANDLE_VALUE; + if (binout == INVALID_HANDLE_VALUE) + { + binout = GBAK_STDOUT_DESC(); + } + string s; bool rc = getLine(s, p); - printf ("%s", s.c_str()); + if (rc) + { +#ifdef WIN_NT + DWORD cnt; + WriteFile(binout, s.c_str(), s.length(), &cnt, NULL); +#else + write(binout, s.c_str(), s.length()); +#endif + } return rc; } @@ -615,12 +630,14 @@ } }; -bool printInfo(const char* p, UserPrint& up) +bool printInfo(const char* p, size_t pSize, UserPrint& up, ULONG& stdinRq) { bool ret = false; bool ignoreTruncation = false; + stdinRq = 0; + const char* const end = p + pSize; - while (*p != isc_info_end) + while (p < end && *p != isc_info_end) { switch (*p++) { @@ -775,9 +792,10 @@ case isc_info_truncated: if (!ignoreTruncation) { - printf("%s\n", getMessage(18).c_str()); - return false; + printf("\n%s\n", getMessage(18).c_str()); } + fflush(stdout); + ret = true; break; case isc_info_svc_timeout: @@ -785,12 +803,24 @@ ret = true; break; + case isc_info_svc_stdin: + stdinRq = getNumeric(p); + if (stdinRq > 0) + { + ret = true; + } + break; + default: status_exception::raise(Arg::Gds(isc_fbsvcmgr_query_err) << Arg::Num(static_cast<unsigned char>(p[-1]))); +#ifdef DEV_BUILD + abort(); +#endif } } + fflush(stdout); return ret; } @@ -968,6 +998,8 @@ if (spbItems.getBufferLength() > 0) { + spbItems.insertTag(isc_info_svc_stdin); + // use one second timeout to poll service char send[16]; char* p = send; @@ -977,10 +1009,53 @@ *p++ = isc_info_end; char results[maxbuf]; - UserPrint up; + UserPrint uPrint; + ULONG stdinRequest = 0; + Array<char> stdinBuffer; do { - if (isc_service_query(status, &svc_handle, 0, p - send, send, + char *sendBlock = send; + USHORT sendSize = p - send; + if (stdinRequest) + { + --sendSize; + size_t len = sendSize; + len += (1 + 2 + stdinRequest); + if (len > MAX_USHORT - 1) + { + len = MAX_USHORT - 1; + stdinRequest = len - (1 + 2) - sendSize; + } + sendBlock = stdinBuffer.getBuffer(len + 1); + memcpy(sendBlock, send, sendSize); + + static DESC binIn = INVALID_HANDLE_VALUE; + if (binIn == INVALID_HANDLE_VALUE) + { + binIn = GBAK_STDIN_DESC(); + } + +#ifdef WIN_NT + DWORD n; + if (!ReadFile(binIn, &sendBlock[sendSize + 1 + 2], stdinRequest, &n, NULL)) +#else + int n = read(binIn, &sendBlock[sendSize + 1 + 2], stdinRequest); + if (n < 0) +#endif + { + perror("stdin"); + break; + } + stdinRequest = n; + sendBlock[sendSize] = isc_info_svc_line; + sendBlock[sendSize + 1] = stdinRequest; + sendBlock[sendSize + 2] = stdinRequest >> 8; + sendBlock [sendSize + 1 + 2 + stdinRequest] = isc_info_end; + sendSize += (1 + 2 + stdinRequest + 1); + + stdinRequest = 0; + } + if (isc_service_query(status, &svc_handle, 0, sendSize, sendBlock, static_cast<USHORT>(spbItems.getBufferLength()), reinterpret_cast<const char*>(spbItems.getBuffer()), sizeof(results), results)) @@ -989,10 +1064,14 @@ isc_service_detach(status, &svc_handle); return 1; } - } while (printInfo(results, up) && !terminated); + } while (printInfo(results, sizeof(results), uPrint, stdinRequest) && !terminated); } - isc_service_detach(status, &svc_handle); + if (isc_service_detach(status, &svc_handle)) + { + isc_print_status(status); + return 1; + } return 0; } catch (const Exception& e) Modified: firebird/trunk/src/utilities/ntrace/TracePluginImpl.cpp =================================================================== --- firebird/trunk/src/utilities/ntrace/TracePluginImpl.cpp 2012-06-20 09:39:11 UTC (rev 54642) +++ firebird/trunk/src/utilities/ntrace/TracePluginImpl.cpp 2012-06-20 11:47:30 UTC (rev 54643) @@ -903,12 +903,18 @@ case isc_info_svc_to_eof: recv_query.printf(NEWLINE "\t\t retrieve as much of the server output as will fit in the supplied buffer"); break; + case isc_info_svc_limbo_trans: recv_query.printf(NEWLINE "\t\t retrieve the limbo transactions"); break; + case isc_info_svc_get_users: recv_query.printf(NEWLINE "\t\t retrieve the user information"); break; + + case isc_info_svc_stdin: + recv_query.printf(NEWLINE "\t\t retrieve the size of data to send to the server"); + break; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-06-21 04:27:37
|
Revision: 54646 http://firebird.svn.sourceforge.net/firebird/?rev=54646&view=rev Author: firebirds Date: 2012-06-21 04:27:30 +0000 (Thu, 21 Jun 2012) 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 2012-06-20 18:57:39 UTC (rev 54645) +++ firebird/trunk/ChangeLog 2012-06-21 04:27:30 UTC (rev 54646) @@ -1,3 +1,27 @@ + 2012-06-20 11:47 alexpeshkoff + M doc/README.services_extension + M src/burp/burp.cpp + M src/burp/burp.h + M src/burp/mvol.cpp + M src/burp/split/spit.cpp + M src/burp/split/spit.h + M src/burp/std_desc.h + M src/common/UtilSvc.cpp + M src/common/UtilSvc.h + M src/common/utils.cpp + M src/include/consts_pub.h + M src/include/gen/msgs.h + M src/jrd/svc.cpp + M src/jrd/svc.h + M src/msgs/messages2.sql + M src/utilities/fbsvcmgr/fbsvcmgr.cpp + M src/utilities/ntrace/TracePluginImpl.cpp +Implemented CORE-2666: Make it possible to use API to do remote backups/restores + + 2012-06-20 09:30 paulbeach + M builds/posix/postfix.darwin +Copy libfbclient.dylib to Firebird SuperServer Framework Libraries to support the ODBC driver + 2012-06-19 18:28 dimitr M src/jrd/DatabaseSnapshot.cpp Misc. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-06-20 18:57:39 UTC (rev 54645) +++ firebird/trunk/src/jrd/build_no.h 2012-06-21 04:27:30 UTC (rev 54646) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30008 + FORMAL BUILD NUMBER:30010 */ -#define PRODUCT_VER_STRING "3.0.0.30008" -#define FILE_VER_STRING "WI-T3.0.0.30008" -#define LICENSE_VER_STRING "WI-T3.0.0.30008" -#define FILE_VER_NUMBER 3, 0, 0, 30008 +#define PRODUCT_VER_STRING "3.0.0.30010" +#define FILE_VER_STRING "WI-T3.0.0.30010" +#define LICENSE_VER_STRING "WI-T3.0.0.30010" +#define FILE_VER_NUMBER 3, 0, 0, 30010 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30008" +#define FB_BUILD_NO "30010" #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 2012-06-20 18:57:39 UTC (rev 54645) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-06-21 04:27:30 UTC (rev 54646) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30008 +BuildNum=30010 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...> - 2012-06-22 04:27:27
|
Revision: 54657 http://firebird.svn.sourceforge.net/firebird/?rev=54657&view=rev Author: firebirds Date: 2012-06-22 04:27:21 +0000 (Fri, 22 Jun 2012) 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 2012-06-21 15:37:38 UTC (rev 54656) +++ firebird/trunk/ChangeLog 2012-06-22 04:27:21 UTC (rev 54657) @@ -1,3 +1,52 @@ + 2012-06-21 15:37 dimitr + M src/jrd/Attachment.cpp + M src/jrd/Attachment.h + M src/jrd/CryptoManager.cpp + M src/jrd/Database.cpp + M src/jrd/Database.h + M src/jrd/DatabaseSnapshot.cpp + M src/jrd/Function.epp + M src/jrd/GlobalRWLock.cpp + M src/jrd/GlobalRWLock.h + M src/jrd/Relation.cpp + M src/jrd/Relation.h + M src/jrd/VirtualTable.cpp + M src/jrd/btr.cpp + M src/jrd/cch.cpp + M src/jrd/cmp.cpp + M src/jrd/dfw.epp + M src/jrd/event.cpp + M src/jrd/event.h + M src/jrd/event_proto.h + M src/jrd/idx.cpp + M src/jrd/intl.cpp + M src/jrd/jrd.cpp + M src/jrd/lck.cpp + M src/jrd/lck.h + M src/jrd/lck_proto.h + M src/jrd/met.epp + M src/jrd/nbak.cpp + M src/jrd/nbak.h + M src/jrd/pag.cpp + M src/jrd/pag.h + M src/jrd/rlck.cpp + M src/jrd/sdw.cpp + M src/jrd/tpc.cpp + M src/jrd/tra.cpp + M src/jrd/vio.cpp + M src/lock/lock.cpp + M src/lock/lock_proto.h + M src/lock/print.cpp +1) Removed the no longer actual "parent lock" concept from both the lock and event managers. +2) Reworked the lock manager synchronization: added the RAII mutex holders and avoided dirty reads for the shared memory. +3) Encapsulated lck_length into the Lock class + small related refactoring. +4) Front ported recent fixes from the v2.x branches. +5) Misc cleanup. + + 2012-06-21 07:17 alexpeshkoff + M builds/install/misc/firebird.conf.in +Added parameter to firebird.conf, thanks to Carlos + 2012-06-20 11:47 alexpeshkoff M doc/README.services_extension M src/burp/burp.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-06-21 15:37:38 UTC (rev 54656) +++ firebird/trunk/src/jrd/build_no.h 2012-06-22 04:27:21 UTC (rev 54657) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30010 + FORMAL BUILD NUMBER:30012 */ -#define PRODUCT_VER_STRING "3.0.0.30010" -#define FILE_VER_STRING "WI-T3.0.0.30010" -#define LICENSE_VER_STRING "WI-T3.0.0.30010" -#define FILE_VER_NUMBER 3, 0, 0, 30010 +#define PRODUCT_VER_STRING "3.0.0.30012" +#define FILE_VER_STRING "WI-T3.0.0.30012" +#define LICENSE_VER_STRING "WI-T3.0.0.30012" +#define FILE_VER_NUMBER 3, 0, 0, 30012 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30010" +#define FB_BUILD_NO "30012" #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 2012-06-21 15:37:38 UTC (rev 54656) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-06-22 04:27:21 UTC (rev 54657) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30010 +BuildNum=30012 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...> - 2012-06-22 11:39:37
|
Revision: 54659 http://firebird.svn.sourceforge.net/firebird/?rev=54659&view=rev Author: alexpeshkoff Date: 2012-06-22 11:39:24 +0000 (Fri, 22 Jun 2012) Log Message: ----------- Cross-build support + android port: work in progress, currently can build fbclient for android Modified Paths: -------------- firebird/trunk/builds/posix/Makefile.in firebird/trunk/builds/posix/Makefile.in.examples firebird/trunk/builds/posix/Makefile.in.plugins_examples firebird/trunk/builds/posix/make.defaults firebird/trunk/builds/posix/make.rules firebird/trunk/builds/posix/make.shared.variables firebird/trunk/configure.in firebird/trunk/extern/libtommath/makefile firebird/trunk/src/common/ThreadStart.cpp firebird/trunk/src/common/classes/alloc.cpp firebird/trunk/src/common/classes/alloc.h firebird/trunk/src/common/classes/rwlock.h firebird/trunk/src/common/common.h firebird/trunk/src/common/isc_f_proto.h firebird/trunk/src/common/isc_file.cpp firebird/trunk/src/common/isc_sync.cpp firebird/trunk/src/common/os/posix/SyncSignals.cpp firebird/trunk/src/common/os/posix/os_utils.cpp firebird/trunk/src/include/fb_exception.h firebird/trunk/src/yvalve/perf.h Added Paths: ----------- firebird/trunk/builds/posix/make.android.arme firebird/trunk/src/include/cross/ firebird/trunk/src/include/cross/android.arme Modified: firebird/trunk/builds/posix/Makefile.in =================================================================== --- firebird/trunk/builds/posix/Makefile.in 2012-06-22 04:39:21 UTC (rev 54658) +++ firebird/trunk/builds/posix/Makefile.in 2012-06-22 11:39:24 UTC (rev 54659) @@ -36,7 +36,11 @@ ROOT=$(shell cd ..; pwd) include make.defaults +ifeq ($(CROSS_OUT), Y) +include make.crossPlatform +else include make.platform +endif include make.rules include make.shared.variables @@ -48,18 +52,24 @@ DefaultTarget := Release endif -.PHONY: master_process firebird Debug Release extern +ifeq ($(IsCross), Y) + Process := cross_process +else + Process := master_process +endif +.PHONY: master_process cross_process firebird Debug Release extern + all: firebird firebird: - $(MAKE) TARGET=$(DefaultTarget) master_process + $(MAKE) TARGET=$(DefaultTarget) $(Process) Release: - $(MAKE) TARGET=Release master_process + $(MAKE) TARGET=Release $(Process) Debug: - $(MAKE) TARGET=Debug master_process + $(MAKE) TARGET=Debug $(Process) #---------------------------------------------------------------------------- @@ -102,14 +112,28 @@ export_lists: $(ALLVERS) +#___________________________________________________________________________ +# LibTomMath - used by cross-builds +# +.PHONY: tommath +TOMLIB=$(LIB)/libtommath.a +TOM_Objs=$(addprefix ../extern/libtommath/,$(call doObjects,$(call dirFiles,../extern/libtommath))) + +tommath: $(TOMLIB) + +$(TOMLIB): $(TOM_Objs) + -$(RM) $@ + $(STATICLIB_LINK) $@ $^ + #___________________________________________________________________________ # main build target for both debug abd release builds # -.PHONY: boot yvalve engine fbintl gpre utilities plugins rest codes examples +.PHONY: cross1 cross2 boot yvalve engine fbintl gpre utilities plugins rest codes examples master_process: + ln -sf $(SRC_ROOT)/include/gen/autoconfig.auto $(SRC_ROOT)/include/gen/autoconfig.h $(MAKE) updateBuildNum $(MAKE) export_lists $(MAKE) extern @@ -133,6 +157,35 @@ $(MAKE) examples $(MAKE) rest + +cross_process: + $(MAKE) TARGET=Native cross1 + $(MAKE) CROSS_OUT=Y cross2 + +cross1: + ln -sf $(SRC_ROOT)/include/gen/autoconfig.auto $(SRC_ROOT)/include/gen/autoconfig.h + $(MAKE) updateBuildNum + $(MAKE) export_lists + $(MAKE) extern + $(MAKE) boot + $(MAKE) yvalve + $(MAKE) engine + $(MAKE) fbintl + $(MAKE) gbak isql gfix +# Now having ready such useful tools as gbak and isql, we may restore / create +# required databases and switch to full-featured gpre + $(MAKE) gpre +# Pay attention - after build force gpre_current to point to gpre +# even if gpre itself was not rebuilt + -$(RM) $(GPRE_CURRENT) + (cd $(BIN); $(LN) $(notdir $(RUN_GPRE)) $(notdir $(GPRE_CURRENT))) + +cross2: + ln -sf $(SRC_ROOT)/include/cross/$(CROSS_CONFIG) $(SRC_ROOT)/include/gen/autoconfig.h + $(MAKE) tommath + $(MAKE) yvalve + + #___________________________________________________________________________ # static library - various common code, used in different FB projects # @@ -219,10 +272,10 @@ -$(RM) $@ $(LN) $^ $@ -metadata.fdb: $(ISQL) $(SRC_ROOT)/dbs/metadata.sql +metadata.fdb: $(RUN_ISQL) $(SRC_ROOT)/dbs/metadata.sql -$(RM) $@ - $(ISQL) -q -i $(SRC_ROOT)/dbs/metadata.sql - $(GFIX) -mode read_only $@ + $(RUN_ISQL) -q -i $(SRC_ROOT)/dbs/metadata.sql + $(RUN_GFIX) -mode read_only $@ $(CHMOD) 0444 $@ $(HELP_FDB): help.fdb @@ -231,7 +284,7 @@ $(CHMOD) 0444 $@ help.fdb: $(BLD_ROOT)/misc/help.gbak - $(GBAK) -MODE read_only -R $< $@ + $(RUN_GBAK) -MODE read_only -R $< $@ $(CHMOD) 0444 $@ $(SECURITY_FDB): security.fdb @@ -241,18 +294,18 @@ security.fdb: $(SRC_ROOT)/dbs/security.sql -$(RM) $@ -$(RM) $(SECURITY_TMP) - echo create database \'$(SECURITY_TMP)\'\; | $(ISQL) - $(GFIX) -write async $(SECURITY_TMP) - $(ISQL) -i $^ $(SECURITY_TMP) + echo create database \'$(SECURITY_TMP)\'\; | $(RUN_ISQL) + $(RUN_GFIX) -write async $(SECURITY_TMP) + $(RUN_ISQL) -i $^ $(SECURITY_TMP) $(CHMOD) a=rw $(SECURITY_TMP) $(CP) $(SECURITY_TMP) $@ - $(GFIX) -write sync $@ + $(RUN_GFIX) -write sync $@ msg.timestamp: $(MSG_FILES) -$(RM) msg.fdb - echo create database \'msg.fdb\'\; | $(ISQL) - $(GFIX) -write async msg.fdb - for sql in $(MSG_FILES); do (echo $$sql; $(ISQL) -i $$sql msg.fdb) || exit; done + echo create database \'msg.fdb\'\; | $(RUN_ISQL) + $(RUN_GFIX) -write async msg.fdb + for sql in $(MSG_FILES); do (echo $$sql; $(RUN_ISQL) -i $$sql msg.fdb) || exit; done $(TOUCH) $@ @@ -264,7 +317,7 @@ udfs: ibudf fbudf -UDF = $(FIREBIRD)/UDF +UDF = $(FB_BUILD)/UDF IBUDF_SO = $(UDF)/ib_udf.$(SHRLIB_EXT) FBUDF_SO = $(UDF)/fbudf.$(SHRLIB_EXT) @@ -439,8 +492,8 @@ message_file: $(FIREBIRD_MSG) -$(FIREBIRD_MSG): $(BUILD_FILE) msg.timestamp - $(BUILD_FILE) -d msg.fdb -f $@ +$(FIREBIRD_MSG): $(RUN_BUILD_FILE) msg.timestamp + $(RUN_BUILD_FILE) -d msg.fdb -f $@ $(CHMOD_6) $@ $(BUILD_FILE): $(BUILD_Objects) $(COMMON_LIB) @@ -454,7 +507,7 @@ # software - mainly they are just flattened out to make the view simpler # from an external point of view. -INCLUDE_DEST= $(FIREBIRD)/include +INCLUDE_DEST= $(FB_BUILD)/include include_generic: $(INCLUDE_DEST)/ib_util.h \ $(INCLUDE_DEST)/ibase.h @@ -521,7 +574,7 @@ clean: clean_objects clean_dependancies clean_extern_objects clean_build \ - clean_yacc_gen clean_gpre_gen clean_dbs clean_examples + clean_yacc_gen clean_gpre_gen clean_dbs clean_examples clean_tommath ifeq ($(EDITLINE_FLG),Y) ifeq ($(STD_EDITLINE),false) @@ -558,6 +611,9 @@ #clean_icu: # -$(MAKE) -C $(ROOT)/extern/icu/source clean +clean_tommath: + -$(MAKE) -C $(ROOT)/extern/libtommath clean + clean_objects: $(RM) `find $(TMP_ROOT)/ -type f -name '*.o' -print` $(RM) `find $(TMP_ROOT)/ -type f -name '*.a' -print` Modified: firebird/trunk/builds/posix/Makefile.in.examples =================================================================== --- firebird/trunk/builds/posix/Makefile.in.examples 2012-06-22 04:39:21 UTC (rev 54658) +++ firebird/trunk/builds/posix/Makefile.in.examples 2012-06-22 11:39:24 UTC (rev 54659) @@ -33,7 +33,7 @@ # Add the install include directory to the search path since the # examples need to build using those headers values. -CFLAGS := $(CFLAGS) -I$(FIREBIRD)/include +CFLAGS := $(CFLAGS) -I$(FB_BUILD)/include include $(ROOT)/gen/make.defaults Modified: firebird/trunk/builds/posix/Makefile.in.plugins_examples =================================================================== --- firebird/trunk/builds/posix/Makefile.in.plugins_examples 2012-06-22 04:39:21 UTC (rev 54658) +++ firebird/trunk/builds/posix/Makefile.in.plugins_examples 2012-06-22 11:39:24 UTC (rev 54659) @@ -36,7 +36,7 @@ DefaultTarget := Release endif -CPPFLAGS+= -I$(FIREBIRD)/include +CPPFLAGS+= -I$(FB_BUILD)/include include $(ROOT)/gen/make.defaults include $(ROOT)/gen/make.platform Added: firebird/trunk/builds/posix/make.android.arme =================================================================== --- firebird/trunk/builds/posix/make.android.arme (rev 0) +++ firebird/trunk/builds/posix/make.android.arme 2012-06-22 11:39:24 UTC (rev 54659) @@ -0,0 +1,44 @@ + +ifeq ($(NDK),) +$(error Must export NDK location before building for Android) +endif +NDK_ROOT:=$(NDK) +#NDK_LOG:=1 + +include $(NDK)/build/core/init.mk + +CROSS_PLATFORM:=$(NDK)/platforms/android-9/arch-arm +CROSS_PREFIX:=$(NDK)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi- + +CXX:=$(CROSS_PREFIX)g++ +CC:=$(CROSS_PREFIX)gcc +AR:=$(CROSS_PREFIX)ar +AS:=$(CROSS_PREFIX)as +LD:=$(CROSS_PREFIX)ld +NM:=$(CROSS_PREFIX)nm +OBJCOPY:=$(CROSS_PREFIX)objcopy +OBJDUMP:=$(CROSS_PREFIX)objdump +RANLIB:=$(CROSS_PREFIX)ranlib +STRIP:=$(CROSS_PREFIX)strip + +COMMON_FLAGS=-ggdb -DFB_SEND_FLAGS=MSG_NOSIGNAL -DLINUX -DANDROID -DARM -pipe -MMD -fPIC -fmessage-length=0 \ + -I$(ROOT)/extern/libtommath --sysroot=$(CROSS_PLATFORM) \ + -I$(ROOT)/extern/icu/source/common -I$(ROOT)/extern/icu/source/i18n +OPTIMIZE_FLAGS=-O3 -fno-omit-frame-pointer +WARN_FLAGS=-Wall -Wno-switch -Wno-parentheses -Wno-unknown-pragmas -Wno-unused-variable + +PROD_FLAGS=$(COMMON_FLAGS) $(OPTIMIZE_FLAGS) +#DEV_FLAGS=-DUSE_VALGRIND $(COMMON_FLAGS) $(WARN_FLAGS) +DEV_FLAGS=$(COMMON_FLAGS) $(WARN_FLAGS) + +CROSS_CONFIG=android.arme + +LDFLAGS += --sysroot=$(CROSS_PLATFORM) -L$(NDK)/sources/cxx-stl/gnu-libstdc++/libs/armeabi +DroidLibs := -lm -ldl -lsupc++ + +LINK_LIBS = $(DroidLibs) +STATICLINK_LIBS = $(DroidLibs) +SO_LINK_LIBS = $(DroidLibs) + +EXE_LINK_OPTIONS= $(LDFLAGS) $(UNDEF_FLAGS) $(LIB_PATH_OPTS) $(LINK_EMPTY_SYMBOLS) +LIB_LINK_OPTIONS= $(LDFLAGS) -shared Property changes on: firebird/trunk/builds/posix/make.android.arme ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Modified: firebird/trunk/builds/posix/make.defaults =================================================================== --- firebird/trunk/builds/posix/make.defaults 2012-06-22 04:39:21 UTC (rev 54658) +++ firebird/trunk/builds/posix/make.defaults 2012-06-22 11:39:24 UTC (rev 54659) @@ -47,7 +47,14 @@ LNG_ROOT=$(ROOT)/lang_helpers EXA_ROOT=$(ROOT)/examples -FIREBIRD=$(GEN_ROOT)/$(TARGET)/firebird +IsCross=@IS_CROSS@ + +FB_BUILD=$(GEN_ROOT)/$(TARGET)/firebird +ifeq ($(IsCross), Y) + FIREBIRD=$(GEN_ROOT)/Native/firebird +else + FIREBIRD=$(FB_BUILD) +endif FIREBIRD_LOCK=$(FIREBIRD) export FIREBIRD @@ -57,9 +64,10 @@ FIREBIRD_BOOT_BUILD=1 export FIREBIRD_BOOT_BUILD -LIB=$(FIREBIRD)/lib -BIN=$(FIREBIRD)/bin -PLUGINS=$(FIREBIRD)/plugins +LIB=$(FB_BUILD)/lib +BIN=$(FB_BUILD)/bin +PLUGINS=$(FB_BUILD)/plugins +RBIN=$(FIREBIRD)/bin # This picks up the current directory and maps it to the equivalent module # in the src and gen area. @@ -143,7 +151,7 @@ QUIET_ECHO= @echo CD= cd CAT= cat -AR= ar @AR_OPTIONS@ crsu +AR= ar @AR_OPTIONS@ LN= @LN_S@ RANLIB= @RANLIB@ BTYACC=$(ROOT)/extern/btyacc/btyacc @@ -155,7 +163,7 @@ # LINKER COMMANDS LIB_LINK = $(CXX) $(GLOB_OPTIONS) $(CXXFLAGS) -STATICLIB_LINK = ar cruvs +STATICLIB_LINK = $(AR) crus EXE_LINK = $(CXX) $(GLOB_OPTIONS) $(CXXFLAGS) STATICEXE_LINK = $(CXX) $(GLOB_OPTIONS) $(CXXFLAGS) @@ -226,7 +234,7 @@ # confuses the dynamic load process. So we only have the .$(SHRLIB_EXT) file # MOD 28-July-2002 -LIBFBINTL_SO = $(FIREBIRD)/intl/$(LIB_PREFIX)fbintl.$(SHRLIB_EXT) +LIBFBINTL_SO = $(FB_BUILD)/intl/$(LIB_PREFIX)fbintl.$(SHRLIB_EXT) ifeq ($(EDITLINE_FLG),Y) ifeq ($(STD_EDITLINE), true) @@ -323,7 +331,7 @@ COMMON_LIB = $(OBJ)/common.a # From utilities -CREATE_DB = $(BIN)/create_db$(EXEC_EXT) +CREATE_DB = $(RBIN)/create_db$(EXEC_EXT) GDS_DROP = $(BIN)/gds_drop$(EXEC_EXT) FBSVCMGR = $(BIN)/fbsvcmgr$(EXEC_EXT) FBTRACEMGR = $(BIN)/fbtracemgr$(EXEC_EXT) @@ -332,8 +340,8 @@ LOCKPRINT = $(BIN)/fb_lock_print$(EXEC_EXT) GSEC = $(BIN)/gsec$(EXEC_EXT) GFIX = $(BIN)/gfix$(EXEC_EXT) +RUN_GFIX = $(RBIN)/gfix$(EXEC_EXT) GDS_REBUILD = $(BIN)/gds_rebuild$(EXEC_EXT) -GDS_RELAY = $(BIN)/gds_relay$(EXEC_EXT) GDS_INSTALL = $(BIN)/gds_install$(EXEC_EXT) GDS_INSTALL = $(BIN)/gds_install_service$(EXEC_EXT) FBGUARD = $(BIN)/fbguard$(EXEC_EXT) @@ -349,25 +357,25 @@ # From isql ISQL = $(BIN)/isql$(EXEC_EXT) -ISQL_STATIC = $(BIN)/isql_static$(EXEC_EXT) -MUISQL = $(BIN)/muisql$(EXEC_EXT) +RUN_ISQL = $(RBIN)/isql$(EXEC_EXT) # From burp -GBAK_STATIC = $(BIN)/gbak_static$(EXEC_EXT) GBAK = $(BIN)/gbak$(EXEC_EXT) +RUN_GBAK = $(RBIN)/gbak$(EXEC_EXT) GSPLIT = $(BIN)/gsplit$(EXEC_EXT) # From gpre # (gpre current is a link to one of the others) -GPRE_BOOT = $(BIN)/gpre_boot$(EXEC_EXT) -GPRE_STATIC = $(BIN)/gpre_static$(EXEC_EXT) +GPRE_BOOT = $(RBIN)/gpre_boot$(EXEC_EXT) GPRE = $(BIN)/gpre$(EXEC_EXT) -GPRE_CURRENT = $(BIN)/gpre_current$(EXEC_EXT) +RUN_GPRE = $(RBIN)/gpre$(EXEC_EXT) +GPRE_CURRENT = $(RBIN)/gpre_current$(EXEC_EXT) # From msgs CHECK_MESSAGES = $(BIN)/check_messages$(EXEC_EXT) BUILD_FILE = $(BIN)/build_file$(EXEC_EXT) +RUN_BUILD_FILE = $(RBIN)/build_file$(EXEC_EXT) FIREBIRD_MSG = $(FIREBIRD)/firebird.msg ENTER_MESSAGES = $(BIN)/enter_messages$(EXEC_EXT) Modified: firebird/trunk/builds/posix/make.rules =================================================================== --- firebird/trunk/builds/posix/make.rules 2012-06-22 04:39:21 UTC (rev 54658) +++ firebird/trunk/builds/posix/make.rules 2012-06-22 11:39:24 UTC (rev 54659) @@ -86,6 +86,9 @@ .SUFFIXES: .lo .o .cpp .c +%.o: %.c + $(CC) $(WCFLAGS) -c $(firstword $<) -o $@ + $(OBJ)/%.o: $(SRC_ROOT)/%.c $(CC) $(WCFLAGS) -c $(firstword $<) -o $@ @sed $(INLINE_EDIT_SED) -e "1,2s/:/: \$$(wildcard/" -e "\$$s/\(.*\)/\\1)/" $(patsubst %.o,%.d,$@) Modified: firebird/trunk/builds/posix/make.shared.variables =================================================================== --- firebird/trunk/builds/posix/make.shared.variables 2012-06-22 04:39:21 UTC (rev 54658) +++ firebird/trunk/builds/posix/make.shared.variables 2012-06-22 11:39:24 UTC (rev 54659) @@ -1,5 +1,6 @@ # Helper functions -makeObjects= $(addprefix $(OBJ)/$(1)/,$(patsubst %.y,%.o,$(patsubst %.epp,%.o,$(patsubst %.c,%.o,$(2:.cpp=.o))))) +doObjects= $(patsubst %.y,%.o,$(patsubst %.epp,%.o,$(patsubst %.c,%.o,$(1:.cpp=.o)))) +makeObjects= $(addprefix $(OBJ)/$(1)/,$(call doObjects,$2)) dirFiles= $(notdir $(wildcard ../src/$(1)/*.cpp)) $(notdir $(wildcard ../src/$(1)/*.c)) \ $(notdir $(wildcard ../src/$(1)/*.epp)) $(notdir $(wildcard ../src/$(1)/*.y)) dirInPath= $(call makeObjects,$(1),$(call dirFiles,$(1))) Modified: firebird/trunk/configure.in =================================================================== --- firebird/trunk/configure.in 2012-06-22 04:39:21 UTC (rev 54658) +++ firebird/trunk/configure.in 2012-06-22 11:39:24 UTC (rev 54659) @@ -12,7 +12,7 @@ [m4_define([AC_CONFIG_MACRO_DIR], [])]) AC_CONFIG_MACRO_DIR(m4) -AC_CONFIG_HEADER(src/include/gen/autoconfig.h:builds/make.new/config/config.h.in) +AC_CONFIG_HEADER(src/include/gen/autoconfig.auto:builds/make.new/config/config.h.in) dnl XE_APPEND(value, varname) define([XE_APPEND],[[$2]="$[$2] [$1]"]) @@ -448,6 +448,14 @@ esac]) AC_SUBST(DEVEL_FLG) +CROSS= +IS_CROSS=N +AC_ARG_WITH(cross-build, + [ --with-cross-build build for platform different from current one], + [CROSS=${withval} + IS_CROSS=Y]) +AC_SUBST(IS_CROSS) + dnl Avoid dumb '-g -O2' autoconf's default dnl Debugging information and optimization flags should be set in prefix.$platform file dnl Should be replaced with AC_PROG_GCC_DEFAULT_FLAGS() when available @@ -663,6 +671,7 @@ AC_CHECK_HEADERS(poll.h) AC_CHECK_HEADERS(langinfo.h) AC_CHECK_HEADERS(iconv.h) +AC_CHECK_HEADERS(libio.h) dnl check for ICU presence AC_CHECK_HEADER(unicode/ucnv.h,,AC_MSG_ERROR(ICU support not found - please install development ICU package)) @@ -813,6 +822,9 @@ AC_CHECK_FUNCS(pthread_mutexattr_setprotocol) AC_CHECK_FUNCS(pthread_mutexattr_setrobust_np) AC_CHECK_FUNCS(pthread_mutex_consistent_np) +AC_CHECK_FUNCS(pthread_rwlockattr_setkind_np) +AC_CHECK_FUNCS(pthread_cancel) +AC_CHECK_FUNCS(sigset) dnl Semaphores if test "$ac_cv_header_semaphore_h" = "yes"; then @@ -1036,8 +1048,16 @@ AC_DEFINE_UNQUOTED(FB_PREFIX, $(if test "x$prefix" = "xNONE" ; then echo \"$ac_default_prefix\"; else echo \"$prefix\"; fi), [Installation path prefix]) +FB_TARGETS="Debug Release" +test "x$CROSS" = "x" || FB_TARGETS="$FB_TARGETS Native" + AC_CONFIG_COMMANDS(,,[ -for fb_tgt in Debug Release; do + +FB_TARGETS="$FB_TARGETS" +for fb_tgt in \$FB_TARGETS; do + + echo "Creating \$fb_tgt directories" + dnl ### GEN ### directories for databases and misc mkdir -p gen/\$fb_tgt/examples mkdir -p gen/\$fb_tgt/refDatabases @@ -1062,8 +1082,7 @@ mkdir -p gen/\$fb_tgt/firebird/help mkdir -p gen/\$fb_tgt/firebird/plugins/udr -dnl #### TEMP ######### directories for generated .cpp, .o and .d -dnl # by module name +dnl ### TEMP ### directories for generated .cpp, .o and .d by module name for src_dir in `cd src; ls -R -1 * | grep : | tr -d : | tr "\n" " "; cd ..`; do mkdir -p temp/\$fb_tgt/\$src_dir done @@ -1071,8 +1090,8 @@ src/misc/writeBuildNum.sh createMakeVersion gen/Make.Version dnl # sql files for UDF declarations - for sql_file in src/extlib/ib_udf.sql src/extlib/fbudf/fbudf.sql src/extlib/ib_udf2.sql; do - cp \$sql_file gen/\$fb_tgt/firebird/UDF + for sql_file in ib_udf.sql fbudf/fbudf.sql ib_udf2.sql; do + cp src/extlib/\$sql_file gen/\$fb_tgt/firebird/UDF done done @@ -1090,17 +1109,21 @@ dnl common files for all posix hosts dnl TODO: fix "arch-specific/linux/" paths for common posix scripts with SVN +for fb_tgt in $FB_TARGETS; do AC_CONFIG_FILES([ -gen/Debug/firebird/firebird.conf:builds/install/misc/firebird.conf.in -gen/Release/firebird/firebird.conf:builds/install/misc/firebird.conf.in -gen/Debug/firebird/aliases.conf:builds/install/misc/aliases.conf.in -gen/Release/firebird/aliases.conf:builds/install/misc/aliases.conf.in -gen/Debug/firebird/fbtrace.conf:src/utilities/ntrace/fbtrace.conf -gen/Release/firebird/fbtrace.conf:src/utilities/ntrace/fbtrace.conf -gen/Debug/firebird/intl/fbintl.conf:builds/install/misc/fbintl.conf -gen/Release/firebird/intl/fbintl.conf:builds/install/misc/fbintl.conf -gen/Debug/firebird/plugins.conf:builds/install/misc/plugins.conf -gen/Release/firebird/plugins.conf:builds/install/misc/plugins.conf +gen/$fb_tgt/firebird/firebird.conf:builds/install/misc/firebird.conf.in +gen/$fb_tgt/firebird/aliases.conf:builds/install/misc/aliases.conf.in +gen/$fb_tgt/firebird/fbtrace.conf:src/utilities/ntrace/fbtrace.conf +gen/$fb_tgt/firebird/intl/fbintl.conf:builds/install/misc/fbintl.conf +gen/$fb_tgt/firebird/plugins.conf:builds/install/misc/plugins.conf +]) +done + +if test "x$CROSS" != "x"; then +AC_CONFIG_FILES([gen/make.crossPlatform:builds/posix/make.$CROSS]) +fi + +AC_CONFIG_FILES([ gen/Release/firebird/bin/fb_config:builds/install/misc/fb_config.in gen/Release/firebird/bin/posixLibrary.sh:builds/install/misc/posixLibrary.sh.in gen/Release/firebird/bin/changeRunUser.sh:builds/install/misc/changeRunUser.sh.in @@ -1113,12 +1136,11 @@ gen/Release/firebird/bin/postuninstall.sh:builds/install/arch-specific/linux/misc/postuninstall.sh.in gen/Release/firebird/bin/taruninstall.sh:builds/install/arch-specific/linux/misc/taruninstall.sh.in gen/Release/firebird/bin/tarMainUninstall.sh:builds/install/arch-specific/linux/misc/tarMainUninstall.sh.in -gen/vers.sh:builds/posix/vers.sh.in gen/Release/firebird/bin/changeDBAPassword.sh:builds/install/misc/changeDBAPassword.sh.in gen/Release/firebird/bin/changeMultiConnectMode.sh:builds/install/misc/changeMultiConnectMode.sh.in gen/Release/firebird/bin/createAliasDB.sh:builds/install/misc/createAliasDB.sh.in -], -[chmod a+x gen/install/scripts/*.sh gen/install/*sh 2>/dev/null]) +gen/vers.sh:builds/posix/vers.sh.in +]) dnl: Platform Specific Files Modified: firebird/trunk/extern/libtommath/makefile =================================================================== --- firebird/trunk/extern/libtommath/makefile 2012-06-22 04:39:21 UTC (rev 54658) +++ firebird/trunk/extern/libtommath/makefile 2012-06-22 11:39:24 UTC (rev 54659) @@ -168,8 +168,6 @@ rm -f *.bat *.pdf *.o *.a *.obj *.lib *.exe *.dll etclib/*.o demo/demo.o test ltmtest mpitest mtest/mtest mtest/mtest.exe \ *.idx *.toc *.log *.aux *.dvi *.lof *.ind *.ilg *.ps *.log *.s mpi.c *.da *.dyn *.dpi tommath.tex `find . -type f | grep [~] | xargs` *.lo *.la rm -rf .libs - cd etc ; MAKE=${MAKE} ${MAKE} clean - cd pics ; MAKE=${MAKE} ${MAKE} clean #zipup the project (take that!) no_oops: clean Modified: firebird/trunk/src/common/ThreadStart.cpp =================================================================== --- firebird/trunk/src/common/ThreadStart.cpp 2012-06-22 04:39:21 UTC (rev 54658) +++ firebird/trunk/src/common/ThreadStart.cpp 2012-06-22 11:39:24 UTC (rev 54659) @@ -165,10 +165,12 @@ if (p_handle) { +#ifdef HAVE_PTHREAD_CANCEL int dummy; // We do not want to know old cancel type state = pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &dummy); if (state) Firebird::system_call_failed::raise("pthread_setcanceltype", state); +#endif *p_handle = thread; } } @@ -182,10 +184,12 @@ void Thread::kill(Handle& thread) { +#ifdef HAVE_PTHREAD_CANCEL int state = pthread_cancel(thread); if (state) Firebird::system_call_failed::raise("pthread_cancel", state); waitForCompletion(thread); +#endif } #endif /* USE_POSIX_THREADS */ Modified: firebird/trunk/src/common/classes/alloc.cpp =================================================================== --- firebird/trunk/src/common/classes/alloc.cpp 2012-06-22 04:39:21 UTC (rev 54658) +++ firebird/trunk/src/common/classes/alloc.cpp 2012-06-22 11:39:24 UTC (rev 54659) @@ -284,7 +284,7 @@ stats->increment_usage(sav_used_memory); } -MemBlock* MemoryPool::alloc(const size_t length) throw (std::bad_alloc) +MemBlock* MemoryPool::alloc(const size_t length) throw (OOM_EXCEPTION) { MutexLockGuard guard(mutex, "MemoryPool::alloc"); @@ -473,7 +473,7 @@ #ifdef DEBUG_GDS_ALLOC , const char* fileName, int line #endif -) throw (std::bad_alloc) +) throw (OOM_EXCEPTION) { size_t length = ROUNDUP(size + VALGRIND_REDZONE, roundingSize) + OFFSET(MemBlock*, body) + GUARD_BYTES; MemBlock* memory = alloc(length); @@ -669,7 +669,7 @@ #endif } -void MemoryPool::memoryIsExhausted(void) throw (std::bad_alloc) +void MemoryPool::memoryIsExhausted(void) throw (OOM_EXCEPTION) { Firebird::BadAlloc::raise(); } @@ -785,7 +785,7 @@ } -void* MemoryPool::allocRaw(size_t size) throw (std::bad_alloc) +void* MemoryPool::allocRaw(size_t size) throw (OOM_EXCEPTION) { #ifndef USE_VALGRIND if (size == DEFAULT_ALLOCATION) @@ -976,7 +976,7 @@ #ifdef DEBUG_GDS_ALLOC , const char* fileName, int line #endif -) throw (std::bad_alloc) +) throw (OOM_EXCEPTION) { void *block = allocate((int) size #ifdef DEBUG_GDS_ALLOC Modified: firebird/trunk/src/common/classes/alloc.h =================================================================== --- firebird/trunk/src/common/classes/alloc.h 2012-06-22 04:39:21 UTC (rev 54658) +++ firebird/trunk/src/common/classes/alloc.h 2012-06-22 11:39:24 UTC (rev 54659) @@ -75,7 +75,13 @@ #define VALGRIND_REDZONE 8 #endif +#ifdef USE_SYSTEM_NEW +#define OOM_EXCEPTION std::bad_alloc +#else +#define OOM_EXCEPTION Firebird::BadAlloc +#endif + namespace Firebird { // Alignment for all memory blocks. Sizes of memory blocks in headers are measured in this units @@ -275,7 +281,7 @@ AtomicCounter used_memory, mapped_memory; protected: - MemBlock* alloc(const size_t length) throw (std::bad_alloc); + MemBlock* alloc(const size_t length) throw (OOM_EXCEPTION); void releaseBlock(MemBlock *block) throw (); public: @@ -283,16 +289,16 @@ #ifdef DEBUG_GDS_ALLOC , const char* fileName = NULL, int line = 0 #endif - ) throw (std::bad_alloc); + ) throw (OOM_EXCEPTION); protected: void corrupt(const char* text) throw (); private: - virtual void memoryIsExhausted(void) throw (std::bad_alloc); + virtual void memoryIsExhausted(void) throw (OOM_EXCEPTION); void remove(MemFreeBlock* block) throw (); void insert(MemFreeBlock* block) throw (); - void* allocRaw(size_t length) throw (std::bad_alloc); + void* allocRaw(size_t length) throw (OOM_EXCEPTION); void validateFreeList(void) throw (); void validateBigBlock(MemBigObject* block) throw (); static void release(void* block) throw (); @@ -312,14 +318,14 @@ #ifdef DEBUG_GDS_ALLOC , const char* fileName, int line #endif - ) throw (std::bad_alloc); + ) throw (OOM_EXCEPTION); static void deallocate(void* block) throw (); void validate(void) throw (); #ifdef LIBC_CALLS_NEW - static void* globalAlloc(size_t s) throw (std::bad_alloc); + static void* globalAlloc(size_t s) throw (OOM_EXCEPTION); #else - static void* globalAlloc(size_t s) throw (std::bad_alloc) + static void* globalAlloc(size_t s) throw (OOM_EXCEPTION) { return defaultMemoryManager->allocate(s #ifdef DEBUG_GDS_ALLOC @@ -442,11 +448,11 @@ using Firebird::MemoryPool; // Global versions of operators new and delete -inline void* operator new(size_t s) throw (std::bad_alloc) +inline void* operator new(size_t s) throw (OOM_EXCEPTION) { return MemoryPool::globalAlloc(s); } -inline void* operator new[](size_t s) throw (std::bad_alloc) +inline void* operator new[](size_t s) throw (OOM_EXCEPTION) { return MemoryPool::globalAlloc(s); } @@ -461,22 +467,22 @@ } #ifdef DEBUG_GDS_ALLOC -inline void* operator new(size_t s, Firebird::MemoryPool& pool, const char* file, int line) +inline void* operator new(size_t s, Firebird::MemoryPool& pool, const char* file, int line) throw (OOM_EXCEPTION) { return pool.allocate(s, file, line); } -inline void* operator new[](size_t s, Firebird::MemoryPool& pool, const char* file, int line) +inline void* operator new[](size_t s, Firebird::MemoryPool& pool, const char* file, int line) throw (OOM_EXCEPTION) { return pool.allocate(s, file, line); } #define FB_NEW(pool) new(pool, __FILE__, __LINE__) #define FB_NEW_RPT(pool, count) new(pool, count, __FILE__, __LINE__) #else -inline void* operator new(size_t s, Firebird::MemoryPool& pool) +inline void* operator new(size_t s, Firebird::MemoryPool& pool) throw (OOM_EXCEPTION) { return pool.allocate(s); } -inline void* operator new[](size_t s, Firebird::MemoryPool& pool) +inline void* operator new[](size_t s, Firebird::MemoryPool& pool) throw (OOM_EXCEPTION) { return pool.allocate(s); } @@ -484,6 +490,21 @@ #define FB_NEW_RPT(pool, count) new(pool, count) #endif +#ifndef USE_SYSTEM_NEW +// We must define placement operators NEW & DELETE ourself +inline void* operator new(size_t s, void* place) throw () +{ + return place; +} +inline void* operator new[](size_t s, void* place) throw () +{ + return place; +} +inline void operator delete(void*, void*) throw() +{ } +inline void operator delete[](void*, void*) throw() +{ } +#endif namespace Firebird { Modified: firebird/trunk/src/common/classes/rwlock.h =================================================================== --- firebird/trunk/src/common/classes/rwlock.h 2012-06-22 04:39:21 UTC (rev 54658) +++ firebird/trunk/src/common/classes/rwlock.h 2012-06-22 11:39:24 UTC (rev 54659) @@ -191,7 +191,7 @@ void init() { -#if defined(LINUX) && !defined(USE_VALGRIND) +#if defined(LINUX) && !defined(USE_VALGRIND) && defined(HAVE_PTHREAD_RWLOCKATTR_SETKIND_NP) pthread_rwlockattr_t attr; if (pthread_rwlockattr_init(&attr)) system_call_failed::raise("pthread_rwlockattr_init"); Modified: firebird/trunk/src/common/common.h =================================================================== --- firebird/trunk/src/common/common.h 2012-06-22 04:39:21 UTC (rev 54658) +++ firebird/trunk/src/common/common.h 2012-06-22 11:39:24 UTC (rev 54659) @@ -291,7 +291,16 @@ #endif /* NETBSD */ +/***************************************************** +* Android +*****************************************************/ +#ifdef ANDROID +#define NO_NFS /* no MTAB_OPEN or MTAB_CLOSE in isc_file.c */ + +#endif /* NETBSD */ + + /***************************************************** * SUN platforms--the 386i is obsolete *****************************************************/ Modified: firebird/trunk/src/common/isc_f_proto.h =================================================================== --- firebird/trunk/src/common/isc_f_proto.h 2012-06-22 04:39:21 UTC (rev 54658) +++ firebird/trunk/src/common/isc_f_proto.h 2012-06-22 11:39:24 UTC (rev 54659) @@ -28,6 +28,7 @@ #define JRD_ISC_FILE_PROTO_H #include "../common/classes/fb_string.h" +#include "../common/common.h" enum iscProtocol {ISC_PROTOCOL_LOCAL, ISC_PROTOCOL_TCPIP, ISC_PROTOCOL_WLAN}; Modified: firebird/trunk/src/common/isc_file.cpp =================================================================== --- firebird/trunk/src/common/isc_file.cpp 2012-06-22 04:39:21 UTC (rev 54658) +++ firebird/trunk/src/common/isc_file.cpp 2012-06-22 11:39:24 UTC (rev 54659) @@ -184,7 +184,7 @@ #endif //NO_NFS } // anonymous namespace -#if (!defined NO_NFS || defined FREEBSD || defined NETBSD) +#ifndef WIN_NT static void expand_filename2(tstring&, bool); #endif @@ -523,7 +523,7 @@ } -#if (!defined NO_NFS || defined FREEBSD || defined NETBSD) +#ifndef WIN_NT bool ISC_expand_filename(tstring& buff, bool expand_mounts) { /************************************** @@ -1027,7 +1027,7 @@ #endif // WIN_NT -#if (!defined NO_NFS || defined FREEBSD || defined NETBSD) +#ifndef WIN_NT static void expand_filename2(tstring& buff, bool expand_mounts) { /************************************** Modified: firebird/trunk/src/common/isc_sync.cpp =================================================================== --- firebird/trunk/src/common/isc_sync.cpp 2012-06-22 04:39:21 UTC (rev 54658) +++ firebird/trunk/src/common/isc_sync.cpp 2012-06-22 11:39:24 UTC (rev 54659) @@ -105,14 +105,6 @@ //#define SIGURG SIGINT //#endif -#ifndef HAVE_SEMUN -union semun -{ - int val; - struct semid_ds *buf; - ushort *array; -}; -#endif #endif // UNIX #ifdef HAVE_SYS_PARAM_H @@ -292,6 +284,15 @@ // Uncomment to trace details of event_init/fini calls //#define DEB_EVNT +#ifndef HAVE_SEMUN +union semun +{ + int val; + struct semid_ds *buf; + ushort *array; +}; +#endif + static SLONG create_semaphores(Arg::StatusVector&, SLONG, int); namespace { Modified: firebird/trunk/src/common/os/posix/SyncSignals.cpp =================================================================== --- firebird/trunk/src/common/os/posix/SyncSignals.cpp 2012-06-22 04:39:21 UTC (rev 54658) +++ firebird/trunk/src/common/os/posix/SyncSignals.cpp 2012-06-22 11:39:24 UTC (rev 54659) @@ -76,6 +76,17 @@ } // extern "C" +#ifndef HAVE_SIGSET + typedef void HandlerType(int); + void sigset(int signum, HandlerType* handler) + { + struct sigaction act; + memset(&act, 0, sizeof act); + act.sa_handler = handler; + sigaction(signum, &act, NULL); + } +#endif + } // anonymous namespace namespace Firebird { Modified: firebird/trunk/src/common/os/posix/os_utils.cpp =================================================================== --- firebird/trunk/src/common/os/posix/os_utils.cpp 2012-06-22 04:39:21 UTC (rev 54658) +++ firebird/trunk/src/common/os/posix/os_utils.cpp 2012-06-22 11:39:24 UTC (rev 54659) @@ -156,6 +156,13 @@ changeFileRights(pathname, 0770); } +#ifndef S_IREAD +#define S_IREAD S_IRUSR +#endif +#ifndef S_IWRITE +#define S_IWRITE S_IWUSR +#endif + // open (or create if missing) and set appropriate access rights int openCreateSharedFile(const char* pathname, int flags) { Added: firebird/trunk/src/include/cross/android.arme =================================================================== --- firebird/trunk/src/include/cross/android.arme (rev 0) +++ firebird/trunk/src/include/cross/android.arme 2012-06-22 11:39:24 UTC (rev 54659) @@ -0,0 +1,665 @@ +/* src/include/gen/autoconfig.h. Generated from config.h.in by configure. */ +/* builds/make.new/config/config.h.in. Generated from configure.in by autoheader. */ + +/* log file name within log dir (firebird.log) */ +#define FB_LOGFILENAME "firebird.log" + +/* Define if building universal (internal helper macro) */ +/* #undef AC_APPLE_UNIVERSAL_BUILD */ + +/* Define this if OS is AIX */ +/* #undef AIX */ + +/* Define this if CPU is Alpha */ +/* #undef ALPHA */ + +/* Define this if CPU is amd64 */ +/* #undef AMD64 */ + +/* Include pthread support for binary relocation? */ +/* #undef BR_PTHREAD */ + +/* Define this if paths are case sensitive */ +#define CASE_SENSITIVITY false + +/* Define this if OS is DARWIN */ +/* #undef DARWIN */ + +/* Use binary relocation? */ +/* #undef ENABLE_BINRELOC */ + +/* Alignment of long */ +#define FB_ALIGNMENT 8 + +/* executables DIR (PREFIX/bin) */ +#define FB_BINDIR "" + +/* config files DIR (PREFIX) */ +#define FB_CONFDIR "" + +/* documentation root DIR (PREFIX/doc) */ +#define FB_DOCDIR "" + +/* Alignment of double */ +#define FB_DOUBLE_ALIGN 8 + +/* guardian lock DIR (PREFIX) */ +#define FB_GUARDDIR "" + +/* QLI help DIR (PREFIX/help) */ +#define FB_HELPDIR "" + +/* C/C++ header files DIR (PREFIX/include) */ +#define FB_INCDIR "" + +/* international DIR (PREFIX/intl) */ +#define FB_INTLDIR "" + +/* Local IPC name */ +#define FB_IPC_NAME "FirebirdIPI" + +/* object code libraries DIR (PREFIX/lib) */ +#define FB_LIBDIR "" + +/* log files DIR (PREFIX) */ +#define FB_LOGDIR "" + +/* misc DIR (PREFIX/misc) */ +#define FB_MISCDIR "" + +/* message files DIR (PREFIX) */ +#define FB_MSGDIR "" + +/* Wnet pipe name */ +#define FB_PIPE_NAME "interbas" + +/* plugins DIR (PREFIX) */ +#define FB_PLUGDIR "" + +/* Installation path prefix */ +#define FB_PREFIX "/opt/firebird" + +/* examples database DIR (PREFIX/examples/empbuild) */ +#define FB_SAMPLEDBDIR "" + +/* examples DIR (PREFIX/examples) */ +#define FB_SAMPLEDIR "" + +/* system admin executables DIR (PREFIX/bin) */ +#define FB_SBINDIR "" + +/* security database DIR (PREFIX) */ +#define FB_SECDBDIR "" + +/* Inet service name */ +#define FB_SERVICE_NAME "gds_db" + +/* Inet service port */ +#define FB_SERVICE_PORT 3050 + +/* UDF DIR (PREFIX/UDF) */ +#define FB_UDFDIR "" + +/* Define this if OS is FreeBSD */ +/* #undef FREEBSD */ + +/* Define this if getmntent needs second argument */ +/* #undef GETMNTENT_TAKES_TWO_ARGUMENTS */ + +/* Define to 1 if the `getpgrp' function requires zero arguments. */ +#define GETPGRP_VOID 1 + +/* Define this if gettimeofday accepts second (timezone) argument */ +#define GETTIMEOFDAY_RETURNS_TIMEZONE 1 + +/* Define this if GPRE should support ADA */ +/* #undef GPRE_ADA */ + +/* Define this if GPRE should support COBOL */ +/* #undef GPRE_COBOL */ + +/* Define this if GPRE should support FORTRAN */ +/* #undef GPRE_FORTRAN */ + +/* Define this if GPRE should support PASCAL */ +/* #undef GPRE_PASCAL */ + +/* Define to 1 if you have the <aio.h> header file. */ +#define HAVE_AIO_H 1 + +/* Define this if AO_compare_and_swap_full() is defined in atomic_ops.h */ +/* #undef HAVE_AO_COMPARE_AND_SWAP_FULL */ + +/* Define to 1 if you have the <assert.h> header file. */ +#define HAVE_ASSERT_H 1 + +/* Define to 1 if you have the <atomic.h> header file. */ +/* #undef HAVE_ATOMIC_H */ + +/* Define to 1 if you have the <atomic_ops.h> header file. */ +/* #undef HAVE_ATOMIC_OPS_H */ + +/* Define to 1 if the system has the type `caddr_t'. */ +/* #undef HAVE_CADDR_T */ + +/* Define to 1 if you have the <crypt.h> header file. */ +#define HAVE_CRYPT_H 1 + +/* Define to 1 if you have the <ctype.h> header file. */ +#define HAVE_CTYPE_H 1 + +/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'. + */ +#define HAVE_DIRENT_H 1 + +/* Define to 1 if you have the `dirname' function. */ +#define HAVE_DIRNAME 1 + +/* Define to 1 if you have the `dladdr' function. */ +#define HAVE_DLADDR 1 + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#define HAVE_DLFCN_H 1 + +/* Define this if editline is in use */ +#define HAVE_EDITLINE_H 1 + +/* Define to 1 if you have the <errno.h> header file. */ +#define HAVE_ERRNO_H 1 + +/* Define to 1 if you have the `fchmod' function. */ +#define HAVE_FCHMOD 1 + +/* Define to 1 if you have the <fcntl.h> header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if you have the `fdatasync' function. */ +#define HAVE_FDATASYNC 1 + +/* Define to 1 if you have the `fegetenv' function. */ +#define HAVE_FEGETENV 1 + +/* Define to 1 if you have the <float.h> header file. */ +#define HAVE_FLOAT_H 1 + +/* Define to 1 if you have the `flock' function. */ +#define HAVE_FLOCK 1 + +/* Define to 1 if you have the `fork' function. */ +#define HAVE_FORK 1 + +/* Define to 1 if you have the `fsync' function. */ +#define HAVE_FSYNC 1 + +/* Define to 1 if you have the `getcwd' function. */ +#define HAVE_GETCWD 1 + +/* Define to 1 if you have the `getmntent' function. */ +#define HAVE_GETMNTENT 1 + +/* Define to 1 if you have the `getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define to 1 if you have the `getrlimit' function. */ +#define HAVE_GETRLIMIT 1 + +/* Define to 1 if you have the `gettimeofday' function. */ +#define HAVE_GETTIMEOFDAY 1 + +/* Define to 1 if you have the `getwd' function. */ +#define HAVE_GETWD 1 + +/* Define to 1 if you have the `gmtime_r' function. */ +#define HAVE_GMTIME_R 1 + +/* Define to 1 if you have the <grp.h> header file. */ +#define HAVE_GRP_H 1 + +/* Define this if INFINITY is defined in math.h */ +#define HAVE_INFINITY 1 + +/* Define to 1 if you have the `initgroups' function. */ +#define HAVE_INITGROUPS 1 + +/* Define to 1 if you have the <inttypes.h> header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the `atomic_ops' library (-latomic_ops). */ +/* #undef HAVE_LIBATOMIC_OPS */ + +/* Define to 1 if you have the <libio.h> header file. */ +/* #undef HAVE_LIBIO_H */ + +/* Define to 1 if you have the `m' library (-lm). */ +#define HAVE_LIBM 1 + +/* Define to 1 if you have the `pthread' library (-lpthread). */ +/* #undef HAVE_LIBPTHREAD */ + +/* Define to 1 if you have the `sfio' library (-lsfio). */ +/* #undef HAVE_LIBSFIO */ + +/* Define to 1 if you have the <limits.h> header file. */ +#define HAVE_LIMITS_H 1 + +/* Define to 1 if you have the `llrint' function. */ +#define HAVE_LLRINT 1 + +/* Define to 1 if you have the <locale.h> header file. */ +#define HAVE_LOCALE_H 1 + +/* Define to 1 if you have the `localtime_r' function. */ +#define HAVE_LOCALTIME_R 1 + +/* Define to 1 if you have the <math.h> header file. */ +#define HAVE_MATH_H 1 + +/* Define to 1 if you have the <memory.h> header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `mkstemp' function. */ +#define HAVE_MKSTEMP 1 + +/* Define to 1 if you have a working `mmap' system call. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the <mntent.h> header file. */ +#define HAVE_MNTENT_H 1 + +/* Define to 1 if you have the <mnttab.h> header file. */ +/* #undef HAVE_MNTTAB_H */ + +/* Define this if multi-threading should be supported */ +#define HAVE_MULTI_THREAD 1 + +/* Define to 1 if you have the `nanosleep' function. */ +#define HAVE_NANOSLEEP 1 + +/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */ +/* #undef HAVE_NDIR_H */ + +/* Define to 1 if you have the <netconfig.h> header file. */ +/* #undef HAVE_NETCONFIG_H */ + +/* Define to 1 if you have the <netinet/in.h> header file. */ +#define HAVE_NETINET_IN_H 1 + +/* Define to 1 if you have the `poll' function. */ +#define HAVE_POLL 1 + +/* Define to 1 if you have the <poll.h> header file. */ +#define HAVE_POLL_H 1 + +/* Define this if posix_fadvise() is present on the platform */ +#define HAVE_POSIX_FADVISE 1 + +/* Define to 1 if you have the `pread' function. */ +#define HAVE_PREAD 1 + +/* Define if you have POSIX threads libraries and header files. */ +/* #undef HAVE_PTHREAD */ + +/* Define to 1 if you have the <pthread.h> header file. */ +#define HAVE_PTHREAD_H 1 + +/* Define to 1 if you have the `pthread_keycreate' function. */ +/* #undef HAVE_PTHREAD_KEYCREATE */ + +/* Define to 1 if you have the `pthread_key_create' function. */ +#define HAVE_PTHREAD_KEY_CREATE 1 + +/* Define to 1 if you have the `pthread_mutexattr_setprotocol' function. */ +#define HAVE_PTHREAD_MUTEXATTR_SETPROTOCOL 1 + +/* Define to 1 if you have the `pthread_mutexattr_setrobust_np' function. */ +/* #undef HAVE_PTHREAD_MUTEXATTR_SETROBUST_NP */ + +/* Define to 1 if you have the `pthread_mutex_consistent_np' function. */ +/* #undef HAVE_PTHREAD_MUTEX_CONSISTENT_NP */ + +/* Define to 1 if you have the `pthread_rwlockattr_setkind_np' function. */ +/* #undef HAVE_PTHREAD_RWLOCKATTR_SETKIND_NP */ + +/* Define to 1 if you have the <pwd.h> header file. */ +#define HAVE_PWD_H 1 + +/* Define to 1 if you have the `pwrite' function. */ +#define HAVE_PWRITE 1 + +/* Define to 1 if you have the <rpc/rpc.h> header file. */ +#define HAVE_RPC_RPC_H 1 + +/* Define to 1 if you have the <rpc/xdr.h> header file. */ +#define HAVE_RPC_XDR_H 1 + +/* Define to 1 if you have the <semaphore.h> header file. */ +#define HAVE_SEMAPHORE_H 1 + +/* Define to 1 if you have the `semtimedop' function. */ +#define HAVE_SEMTIMEDOP 1 + +/* Define to 1 if the system has the type `semun'. */ +/* #undef HAVE_SEMUN */ + +/* Define to 1 if you have the `sem_init' function. */ +#define HAVE_SEM_INIT 1 + +/* Define to 1 if you have the `sem_timedwait' function. */ +#define HAVE_SEM_TIMEDWAIT 1 + +/* Define to 1 if you have the `setitimer' function. */ +#define HAVE_SETITIMER 1 + +/* Define to 1 if you have the <setjmp.h> header file. */ +#define HAVE_SETJMP_H 1 + +/* Define to 1 if you have the `setmntent' function. */ +#define HAVE_SETMNTENT 1 + +/* Define to 1 if you have the `setpgid' function. */ +#define HAVE_SETPGID 1 + +/* Define to 1 if you have the `setrlimit' function. */ +#define HAVE_SETRLIMIT 1 + +/* Define to 1 if you have the `sigaction' function. */ +#define HAVE_SIGACTION 1 + +/* Define to 1 if you have the <signal.h> header file. */ +#define HAVE_SIGNAL_H 1 + +/* Define to 1 if you have the `snprintf' function. */ +#define HAVE_SNPRINTF 1 + +/* Define to 1 if you have the <socket.h> header file. */ +/* #undef HAVE_SOCKET_H */ + +/* Define to 1 if the system has the type `socklen_t'. */ +#define HAVE_SOCKLEN_T 1 + +/* Define to 1 if you have the <stdarg.h> header file. */ +#define HAVE_STDARG_H 1 + +/* Define to 1 if you have the <stdint.h> header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the <stdlib.h> header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the `strcasecmp' function. */ +#define HAVE_STRCASECMP 1 + +/* Define to 1 if you have the `strdup' function. */ +#define HAVE_STRDUP 1 + +/* Define to 1 if you have the `strerror_r' function. */ +#define HAVE_STRERROR_R 1 + +/* Define to 1 if you have the `stricmp' function. */ +/* #undef HAVE_STRICMP */ + +/* Define to 1 if you have the <strings.h> header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the <string.h> header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strncasecmp' function. */ +#define HAVE_STRNCASECMP 1 + +/* Define to 1 if you have the `strnicmp' function. */ +/* #undef HAVE_STRNICMP */ + +/* Define this if struct dirent has d_type */ +#define HAVE_STRUCT_DIRENT_D_TYPE 1 + +/* Define to 1 if the system has the type `struct xdr_ops'. */ +#define HAVE_STRUCT_XDR_OPS 1 + +/* Define to 1 if the system has the type `struct XDR::xdr_ops'. */ +/* #undef HAVE_STRUCT_XDR__XDR_OPS */ + +/* Define to 1 if you have the `swab' function. */ +#define HAVE_SWAB 1 + +/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_DIR_H */ + +/* Define to 1 if you have the <sys/file.h> header file. */ +#define HAVE_SYS_FILE_H 1 + +/* Define to 1 if you have the <sys/ioctl.h> header file. */ +#define HAVE_SYS_IOCTL_H 1 + +/* Define to 1 if you have the <sys/ipc.h> header file. */ +#define HAVE_SYS_IPC_H 1 + +/* Define to 1 if you have the <sys/mntent.h> header file. */ +/* #undef HAVE_SYS_MNTENT_H */ + +/* Define to 1 if you have the <sys/mnttab.h> header file. */ +/* #undef HAVE_SYS_MNTTAB_H */ + +/* Define to 1 if you have the <sys/mount.h> header file. */ +#define HAVE_SYS_MOUNT_H 1 + +/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define to 1 if you have the <sys/param.h> header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the <sys/resource.h> header file. */ +#define HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have the <sys/select.h> header file. */ +#define HAVE_SYS_SELECT_H 1 + +/* Define to 1 if you have the <sys/sem.h> header file. */ +#define HAVE_SYS_SEM_H 1 + +/* Define to 1 if you have the <sys/siginfo.h> header file. */ +/* #undef HAVE_SYS_SIGINFO_H */ + +/* Define to 1 if you have the <sys/signal.h> header file. */ +/* #undef HAVE_SYS_SIGNAL_H */ + +/* Define to 1 if you have the <sys/socket.h> header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the <sys/sockio.h> header file. */ +/* #undef HAVE_SYS_SOCKIO_H */ + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the <sys/timeb.h> header file. */ +#define HAVE_SYS_TIMEB_H 1 + +/* Define to 1 if you have the <sys/types.h> header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the <sys/uio.h> header file. */ +#define HAVE_SYS_UIO_H 1 + +/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */ +#define HAVE_SYS_WAIT_H 1 + +/* Define to 1 if you have the `tcgetattr' function. */ +#define HAVE_TCGETATTR 1 + +/* Define to 1 if you have the <termios.h> header file. */ +#define HAVE_TERMIOS_H 1 + +/* Define to 1 if you have the <termio.h> header file. */ +#define HAVE_TERMIO_H 1 + +/* Define to 1 if you have the `time' function. */ +#define HAVE_TIME 1 + +/* Define to 1 if you have the `times' function. */ +#define HAVE_TIMES 1 + +/* Define to 1 if you have the <unistd.h> header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the <utime.h> header file. */ +/* #undef HAVE_UTIME_H */ + +/* Define to 1 if you have the <varargs.h> header file. */ +/* #undef HAVE_VARARGS_H */ + +/* Define this if va_copy() is defined in stdarg.h */ +#define HAVE_VA_COPY 1 + +/* Define to 1 if you have the `vfork' function. */ +#define HAVE_VFORK 1 + +/* Define to 1 if you have the <vfork.h> header file. */ +/* #undef HAVE_VFORK_H */ + +/* Define to 1 if you have the `vsnprintf' function. */ +#define HAVE_VSNPRINTF 1 + +/* Define to 1 if you have the <winsock2.h> header file. */ +/* #undef HAVE_WINSOCK2_H */ + +/* Define to 1 if `fork' works. */ +#define HAVE_WORKING_FORK 1 + +/* Define to 1 if `vfork' works. */ +#define HAVE_WORKING_VFORK 1 + +/* Define to 1 if you have the file `AC_File'. */ +#define HAVE__PROC_SELF_EXE 1 + +/* Define to 1 if you have the `_swab' function. */ +/* #undef HAVE__SWAB */ + +/* Define it if compiler supports ISO syntax for thread-local storage */ +#define HAVE___THREAD 1 + +/* Define this if CPU is HPPA */ +/* #undef HPPA */ + +/* Define this if OS is HP-UX */ +/* #undef HPUX */ + +/* Define this if OS is Linux */ +#define LINUX 1 + +/* Define this if OS is NetBSD */ +/* #undef NETBSD */ + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "" + +/* Define to the necessary symbol if this constant uses a non-standard name on + your system. */ +/* #undef PTHREAD_CREATE_JOINABLE */ + +/* Define as the return type of signal handlers (`int' or `void'). */ +#define RETSIGTYPE void + +/* Define to 1 if the `setpgrp' function takes no argument. */ +#define SETPGRP_VOID 1 + +/* Architecture is little-endian sh4 */ +/* #undef SH */ + +/* Architecture is big-edian sh4 */ +/* #undef SHEB */ + +/* The size of `long', as computed by sizeof. */ +#define SIZEOF_LONG 4 + +/* The size of `size_t', as computed by sizeof. */ +#define SIZEOF_SIZE_T 4 + +/* The size of `void *', as computed by sizeof. */ +#define SIZEOF_VOID_P 4 + +/* Define this if OS is Solaris Sparc */ +/* #undef SOLARIS */ + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define this if databases on raw devices should be supported */ +#define SUPPORT_RAW_DEVICES 1 + +/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ +#define TIME_WITH_SYS_TIME 1 + +/* Define this if OS is Windows NT */ +/* #undef WIN_NT */ + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Define this if sem_init() works on the platform */ +#define WORKING_SEM_INIT 1 + +/* Number of bits in a file offset, on hosts where this is settable. */ +#define _FILE_OFFSET_BITS 64 + +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ + +/* Define to `int' if <sys/types.h> doesn't define. */ +/* #undef gid_t */ + +/* Define to `long int' if <sys/types.h> does not define. */ +/* #undef off_t */ + +/* Define to `int' if <sys/types.h> does not define. */ +/* #undef pid_t */ + +/* Define to `unsigned int' if <sys/types.h> does not define. */ +/* #undef size_t */ + +/* Define this if OS is Solarix x86 */ +/* #undef solx86 */ + +/* Define to `int' if <sys/types.h> doesn't define. */ +/* #undef uid_t */ + +/* Define as `fork' if `vfork' does not work. */ +/* #undef vfork */ + +/* Define to empty if the keyword `volatile' does not work. Warning: valid + code using `volatile' can become incorrect without. Disable with care. */ +/* #undef volatile */ + +#ifdef GETTIMEOFDAY_RETURNS_TIMEZONE +#define GETTIMEOFDAY(x) gettimeofday((x), (struct timezone *)0) +#else +#define GETTIMEOFDAY(x) gettimeofday((x)) +#endif + +#ifndef HAVE_SOCKLEN_T +typedef int socklen_t; +#endif Property changes on: firebird/trunk/src/include/cross/android.arme ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Modified: firebird/trunk/src/include/fb_exception.h =================================================================== --- firebird/trunk/src/include/fb_exception.h 2012-06-22 04:39:21 UTC (rev 54658) +++ firebird/trunk/src/include/fb_exception.h 2012-06-22 11:39:24 UTC (rev 54659) @@ -32,7 +32,15 @@ #include <stddef.h> #include <string.h> + +#ifndef ANDROID +#define USE_SYSTEM_NEW +#endif + +#ifdef USE_SYSTEM_NEW #include <new> +#endif + #include "fb_types.h" #include "../common/StatusArg.h" #include "../common/thd.h" @@ -64,13 +72,24 @@ }; // Used in MemoryPool +#ifdef USE_SYSTEM_NEW + class BadAlloc : public std::bad_alloc, public Exception { public: + BadAlloc() throw() : std::bad_alloc(), Exception() { } +#else // USE_SYSTEM_NEW + +class BadAlloc : public Exception +{ +public: + BadAlloc() throw() : Exception() { } +#endif // USE_SYSTEM_NEW + +public: virtual ISC_STATUS stuffException(IStatus* status_vector) const throw(); virtual const char* what() const throw(); static void raise(); - BadAlloc() throw() : std::bad_alloc(), Exception() { } }; // Main exception class in firebird Modified: firebird/trunk/src/yvalve/perf.h =================================================================== --- firebird/trunk/src/yvalve/perf.h 2012-06-22 04:39:21 UTC (rev 54658) +++ firebird/trunk/src/yvalve/perf.h 2012-06-22 11:39:24 UTC (rev 54659) @@ -31,7 +31,7 @@ #ifndef JRD_PERF_H #define JRD_PERF_H -#ifdef LINUX +#ifdef HAVE_LIBIO_H #include <libio.h> #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-06-23 04:29:32
|
Revision: 54661 http://firebird.svn.sourceforge.net/firebird/?rev=54661&view=rev Author: firebirds Date: 2012-06-23 04:29:24 +0000 (Sat, 23 Jun 2012) 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 2012-06-22 11:43:16 UTC (rev 54660) +++ firebird/trunk/ChangeLog 2012-06-23 04:29:24 UTC (rev 54661) @@ -1,3 +1,33 @@ + 2012-06-22 11:43 alexpeshkoff + M configure.in +Misc + + 2012-06-22 11:39 alexpeshkoff + M builds/posix/Makefile.in + M builds/posix/Makefile.in.examples + M builds/posix/Makefile.in.plugins_examples + A builds/posix/make.android.arme + M builds/posix/make.defaults + M builds/posix/make.rules + M builds/posix/make.shared.variables + M configure.in + M extern/libtommath/makefile + M src/common/ThreadStart.cpp + M src/common/classes/alloc.cpp + M src/common/classes/alloc.h + M src/common/classes/rwlock.h + M src/common/common.h + M src/common/isc_f_proto.h + M src/common/isc_file.cpp + M src/common/isc_sync.cpp + M src/common/os/posix/SyncSignals.cpp + M src/common/os/posix/os_utils.cpp + A src/include/cross + A src/include/cross/android.arme + M src/include/fb_exception.h + M src/yvalve/perf.h +Cross-build support + android port: work in progress, currently can build fbclient for android + 2012-06-21 15:37 dimitr M src/jrd/Attachment.cpp M src/jrd/Attachment.h Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-06-22 11:43:16 UTC (rev 54660) +++ firebird/trunk/src/jrd/build_no.h 2012-06-23 04:29:24 UTC (rev 54661) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30012 + FORMAL BUILD NUMBER:30014 */ -#define PRODUCT_VER_STRING "3.0.0.30012" -#define FILE_VER_STRING "WI-T3.0.0.30012" -#define LICENSE_VER_STRING "WI-T3.0.0.30012" -#define FILE_VER_NUMBER 3, 0, 0, 30012 +#define PRODUCT_VER_STRING "3.0.0.30014" +#define FILE_VER_STRING "WI-T3.0.0.30014" +#define LICENSE_VER_STRING "WI-T3.0.0.30014" +#define FILE_VER_NUMBER 3, 0, 0, 30014 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30012" +#define FB_BUILD_NO "30014" #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 2012-06-22 11:43:16 UTC (rev 54660) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-06-23 04:29:24 UTC (rev 54661) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30012 +BuildNum=30014 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...> - 2012-06-25 04:22:00
|
Revision: 54664 http://firebird.svn.sourceforge.net/firebird/?rev=54664&view=rev Author: firebirds Date: 2012-06-25 04:21:47 +0000 (Mon, 25 Jun 2012) 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 2012-06-24 09:13:53 UTC (rev 54663) +++ firebird/trunk/ChangeLog 2012-06-25 04:21:47 UTC (rev 54664) @@ -1,3 +1,7 @@ + 2012-06-23 16:08 asfernandes + M src/dsql/ExprNodes.cpp +Fixed CORE-3874 - Computed column appears in non-existant rows of left join. + 2012-06-22 11:43 alexpeshkoff M configure.in Misc Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-06-24 09:13:53 UTC (rev 54663) +++ firebird/trunk/src/jrd/build_no.h 2012-06-25 04:21:47 UTC (rev 54664) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30014 + FORMAL BUILD NUMBER:30015 */ -#define PRODUCT_VER_STRING "3.0.0.30014" -#define FILE_VER_STRING "WI-T3.0.0.30014" -#define LICENSE_VER_STRING "WI-T3.0.0.30014" -#define FILE_VER_NUMBER 3, 0, 0, 30014 +#define PRODUCT_VER_STRING "3.0.0.30015" +#define FILE_VER_STRING "WI-T3.0.0.30015" +#define LICENSE_VER_STRING "WI-T3.0.0.30015" +#define FILE_VER_NUMBER 3, 0, 0, 30015 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30014" +#define FB_BUILD_NO "30015" #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 2012-06-24 09:13:53 UTC (rev 54663) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-06-25 04:21:47 UTC (rev 54664) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30014 +BuildNum=30015 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...> - 2012-06-26 04:24:33
|
Revision: 54669 http://firebird.svn.sourceforge.net/firebird/?rev=54669&view=rev Author: firebirds Date: 2012-06-26 04:24:27 +0000 (Tue, 26 Jun 2012) 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 2012-06-25 13:11:11 UTC (rev 54668) +++ firebird/trunk/ChangeLog 2012-06-26 04:24:27 UTC (rev 54669) @@ -1,3 +1,17 @@ + 2012-06-25 13:11 alexpeshkoff + M src/jrd/CryptoManager.cpp + M src/jrd/CryptoManager.h +Fixed an issue, found by Claudio + + 2012-06-25 13:08 alexpeshkoff + M builds/install/misc/firebird.conf.in +Misc + + 2012-06-25 13:02 alexpeshkoff + M src/common/config/config.cpp + M src/common/config/config.h +No need in entry for this type of plugins in conf file - plugin name is taken from SQL command or DB header + 2012-06-23 16:08 asfernandes M src/dsql/ExprNodes.cpp Fixed CORE-3874 - Computed column appears in non-existant rows of left join. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-06-25 13:11:11 UTC (rev 54668) +++ firebird/trunk/src/jrd/build_no.h 2012-06-26 04:24:27 UTC (rev 54669) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30015 + FORMAL BUILD NUMBER:30018 */ -#define PRODUCT_VER_STRING "3.0.0.30015" -#define FILE_VER_STRING "WI-T3.0.0.30015" -#define LICENSE_VER_STRING "WI-T3.0.0.30015" -#define FILE_VER_NUMBER 3, 0, 0, 30015 +#define PRODUCT_VER_STRING "3.0.0.30018" +#define FILE_VER_STRING "WI-T3.0.0.30018" +#define LICENSE_VER_STRING "WI-T3.0.0.30018" +#define FILE_VER_NUMBER 3, 0, 0, 30018 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30015" +#define FB_BUILD_NO "30018" #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 2012-06-25 13:11:11 UTC (rev 54668) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-06-26 04:24:27 UTC (rev 54669) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30015 +BuildNum=30018 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...> - 2012-06-27 02:24:13
|
Revision: 54671 http://firebird.svn.sourceforge.net/firebird/?rev=54671&view=rev Author: asfernandes Date: 2012-06-27 02:24:06 +0000 (Wed, 27 Jun 2012) Log Message: ----------- Misc. Modified Paths: -------------- firebird/trunk/doc/README.services_extension firebird/trunk/src/burp/mvol.cpp firebird/trunk/src/burp/split/spit.cpp Modified: firebird/trunk/doc/README.services_extension =================================================================== --- firebird/trunk/doc/README.services_extension 2012-06-26 13:43:26 UTC (rev 54670) +++ firebird/trunk/doc/README.services_extension 2012-06-27 02:24:06 UTC (rev 54671) @@ -156,8 +156,8 @@ (Alex Peshkov, pes...@ma..., 2011-2012) This way of doing backups is specially efficient when one needs to perform -backup/restore operation for database, located on ther server accessed using -internet, due to serious performance instrease. +backup/restore operation for database, located on a server accessed using +internet, due to serious performance increase. The simplest way to use this feature is fbsvcmgr. To backup database run approximately the following: Modified: firebird/trunk/src/burp/mvol.cpp =================================================================== --- firebird/trunk/src/burp/mvol.cpp 2012-06-26 13:43:26 UTC (rev 54670) +++ firebird/trunk/src/burp/mvol.cpp 2012-06-27 02:24:06 UTC (rev 54671) @@ -117,7 +117,7 @@ for (burp_fil* file = tdgbl->gbl_sw_backup_files; file; file = file->fil_next) { - if (file->fil_fd == tdgbl->file_desc) + if (file->fil_fd == tdgbl->file_desc) { file->fil_fd = INVALID_HANDLE_VALUE; } Modified: firebird/trunk/src/burp/split/spit.cpp =================================================================== --- firebird/trunk/src/burp/split/spit.cpp 2012-06-26 13:43:26 UTC (rev 54670) +++ firebird/trunk/src/burp/split/spit.cpp 2012-06-27 02:24:06 UTC (rev 54671) @@ -65,10 +65,10 @@ static DESC open_platf(const char* name, int writeFlag) { #ifdef WIN_NT - return CreateFile(name, writeFlag ? GENERIC_WRITE : GENERIC_READ, 0, NULL, - writeFlag ? CREATE_ALWAYS : OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); + return CreateFile(name, (writeFlag ? GENERIC_WRITE : GENERIC_READ), 0, NULL, + (writeFlag ? CREATE_ALWAYS : OPEN_EXISTING), FILE_ATTRIBUTE_NORMAL, 0); #else - return open(name, writeFlag ? mode_write : mode_read, mask); + return open(name, (writeFlag ? mode_write : mode_read), mask); #endif } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-06-27 04:25:16
|
Revision: 54672 http://firebird.svn.sourceforge.net/firebird/?rev=54672&view=rev Author: firebirds Date: 2012-06-27 04:25:09 +0000 (Wed, 27 Jun 2012) 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 2012-06-27 02:24:06 UTC (rev 54671) +++ firebird/trunk/ChangeLog 2012-06-27 04:25:09 UTC (rev 54672) @@ -1,3 +1,19 @@ + 2012-06-27 02:24 asfernandes + M doc/README.services_extension + M src/burp/mvol.cpp + M src/burp/split/spit.cpp +Misc. + + 2012-06-26 13:43 alexpeshkoff + M src/include/firebird/Provider.h + M src/jrd/EngineInterface.h + M src/jrd/jrd.cpp + M src/remote/client/interface.cpp + M src/remote/server/server.cpp + M src/yvalve/YObjects.h + M src/yvalve/why.cpp +Better names for API functions + 2012-06-25 13:11 alexpeshkoff M src/jrd/CryptoManager.cpp M src/jrd/CryptoManager.h Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-06-27 02:24:06 UTC (rev 54671) +++ firebird/trunk/src/jrd/build_no.h 2012-06-27 04:25:09 UTC (rev 54672) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30018 + FORMAL BUILD NUMBER:30020 */ -#define PRODUCT_VER_STRING "3.0.0.30018" -#define FILE_VER_STRING "WI-T3.0.0.30018" -#define LICENSE_VER_STRING "WI-T3.0.0.30018" -#define FILE_VER_NUMBER 3, 0, 0, 30018 +#define PRODUCT_VER_STRING "3.0.0.30020" +#define FILE_VER_STRING "WI-T3.0.0.30020" +#define LICENSE_VER_STRING "WI-T3.0.0.30020" +#define FILE_VER_NUMBER 3, 0, 0, 30020 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30018" +#define FB_BUILD_NO "30020" #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 2012-06-27 02:24:06 UTC (rev 54671) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-06-27 04:25:09 UTC (rev 54672) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30018 +BuildNum=30020 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...> - 2012-06-28 04:21:37
|
Revision: 54677 http://firebird.svn.sourceforge.net/firebird/?rev=54677&view=rev Author: firebirds Date: 2012-06-28 04:21:30 +0000 (Thu, 28 Jun 2012) 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 2012-06-27 17:57:30 UTC (rev 54676) +++ firebird/trunk/ChangeLog 2012-06-28 04:21:30 UTC (rev 54677) @@ -1,3 +1,7 @@ + 2012-06-27 11:53 alexpeshkoff + M src/common/isc_file.cpp +Fixed for posix CORE-3875: GBak does not check correctly parameters and backups random database with -B ":" + 2012-06-27 02:24 asfernandes M doc/README.services_extension M src/burp/mvol.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-06-27 17:57:30 UTC (rev 54676) +++ firebird/trunk/src/jrd/build_no.h 2012-06-28 04:21:30 UTC (rev 54677) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30020 + FORMAL BUILD NUMBER:30021 */ -#define PRODUCT_VER_STRING "3.0.0.30020" -#define FILE_VER_STRING "WI-T3.0.0.30020" -#define LICENSE_VER_STRING "WI-T3.0.0.30020" -#define FILE_VER_NUMBER 3, 0, 0, 30020 +#define PRODUCT_VER_STRING "3.0.0.30021" +#define FILE_VER_STRING "WI-T3.0.0.30021" +#define LICENSE_VER_STRING "WI-T3.0.0.30021" +#define FILE_VER_NUMBER 3, 0, 0, 30021 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30020" +#define FB_BUILD_NO "30021" #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 2012-06-27 17:57:30 UTC (rev 54676) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-06-28 04:21:30 UTC (rev 54677) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30020 +BuildNum=30021 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...> - 2012-06-29 04:23:46
|
Revision: 54693 http://firebird.svn.sourceforge.net/firebird/?rev=54693&view=rev Author: firebirds Date: 2012-06-29 04:23:39 +0000 (Fri, 29 Jun 2012) 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 2012-06-29 01:47:40 UTC (rev 54692) +++ firebird/trunk/ChangeLog 2012-06-29 04:23:39 UTC (rev 54693) @@ -1,3 +1,18 @@ + 2012-06-29 01:47 asfernandes + M src/utilities/fbsvcmgr/fbsvcmgr.cpp +Misc. + + 2012-06-28 11:46 alexpeshkoff + M src/jrd/cch.cpp + M src/jrd/ods.cpp + M src/jrd/ods.h + M src/jrd/validation.cpp +Improvement CORE-3588: More detail in message "wrong page type" + + 2012-06-28 07:49 hvlad + M src/lock/print.cpp +Improvement CORE-3879 : Make fb_lock_print a bit more handy + 2012-06-27 11:53 alexpeshkoff M src/common/isc_file.cpp Fixed for posix CORE-3875: GBak does not check correctly parameters and backups random database with -B ":" Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-06-29 01:47:40 UTC (rev 54692) +++ firebird/trunk/src/jrd/build_no.h 2012-06-29 04:23:39 UTC (rev 54693) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30021 + FORMAL BUILD NUMBER:30024 */ -#define PRODUCT_VER_STRING "3.0.0.30021" -#define FILE_VER_STRING "WI-T3.0.0.30021" -#define LICENSE_VER_STRING "WI-T3.0.0.30021" -#define FILE_VER_NUMBER 3, 0, 0, 30021 +#define PRODUCT_VER_STRING "3.0.0.30024" +#define FILE_VER_STRING "WI-T3.0.0.30024" +#define LICENSE_VER_STRING "WI-T3.0.0.30024" +#define FILE_VER_NUMBER 3, 0, 0, 30024 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30021" +#define FB_BUILD_NO "30024" #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 2012-06-29 01:47:40 UTC (rev 54692) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-06-29 04:23:39 UTC (rev 54693) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30021 +BuildNum=30024 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...> - 2012-06-29 12:44:51
|
Revision: 54697 http://firebird.svn.sourceforge.net/firebird/?rev=54697&view=rev Author: alexpeshkoff Date: 2012-06-29 12:44:41 +0000 (Fri, 29 Jun 2012) Log Message: ----------- Anti isc_random pass Modified Paths: -------------- firebird/trunk/lang_helpers/gds_codes.ftn firebird/trunk/lang_helpers/gds_codes.pas firebird/trunk/src/include/gen/codetext.h firebird/trunk/src/include/gen/iberror.h firebird/trunk/src/include/gen/msgs.h firebird/trunk/src/include/gen/sql_code.h firebird/trunk/src/include/gen/sql_state.h firebird/trunk/src/jrd/CryptoManager.cpp firebird/trunk/src/jrd/svc.cpp firebird/trunk/src/msgs/facilities2.sql firebird/trunk/src/msgs/messages2.sql firebird/trunk/src/msgs/system_errors2.sql firebird/trunk/src/yvalve/why.cpp Modified: firebird/trunk/lang_helpers/gds_codes.ftn =================================================================== --- firebird/trunk/lang_helpers/gds_codes.ftn 2012-06-29 07:14:39 UTC (rev 54696) +++ firebird/trunk/lang_helpers/gds_codes.ftn 2012-06-29 12:44:41 UTC (rev 54697) @@ -1478,6 +1478,30 @@ PARAMETER (GDS__wroblrver2 = 335545032) INTEGER*4 GDS__trunc_limits PARAMETER (GDS__trunc_limits = 335545033) + INTEGER*4 GDS__info_access + PARAMETER (GDS__info_access = 335545034) + INTEGER*4 GDS__svc_no_stdin + PARAMETER (GDS__svc_no_stdin = 335545035) + INTEGER*4 GDS__svc_start_failed + PARAMETER (GDS__svc_start_failed = 335545036) + INTEGER*4 GDS__svc_no_switches + PARAMETER (GDS__svc_no_switches = 335545037) + INTEGER*4 GDS__svc_bad_size + PARAMETER (GDS__svc_bad_size = 335545038) + INTEGER*4 GDS__no_crypt_plugin + PARAMETER (GDS__no_crypt_plugin = 335545039) + INTEGER*4 GDS__cp_name_too_long + PARAMETER (GDS__cp_name_too_long = 335545040) + INTEGER*4 GDS__cp_process_active + PARAMETER (GDS__cp_process_active = 335545041) + INTEGER*4 GDS__cp_already_crypted + PARAMETER (GDS__cp_already_crypted = 335545042) + INTEGER*4 GDS__decrypt_error + PARAMETER (GDS__decrypt_error = 335545043) + INTEGER*4 GDS__no_providers + PARAMETER (GDS__no_providers = 335545044) + INTEGER*4 GDS__null_spb + PARAMETER (GDS__null_spb = 335545045) INTEGER*4 GDS__gfix_db_name PARAMETER (GDS__gfix_db_name = 335740929) INTEGER*4 GDS__gfix_invalid_sw Modified: firebird/trunk/lang_helpers/gds_codes.pas =================================================================== --- firebird/trunk/lang_helpers/gds_codes.pas 2012-06-29 07:14:39 UTC (rev 54696) +++ firebird/trunk/lang_helpers/gds_codes.pas 2012-06-29 12:44:41 UTC (rev 54697) @@ -746,6 +746,18 @@ gds_libtommath_generic = 335545031; gds_wroblrver2 = 335545032; gds_trunc_limits = 335545033; + gds_info_access = 335545034; + gds_svc_no_stdin = 335545035; + gds_svc_start_failed = 335545036; + gds_svc_no_switches = 335545037; + gds_svc_bad_size = 335545038; + gds_no_crypt_plugin = 335545039; + gds_cp_name_too_long = 335545040; + gds_cp_process_active = 335545041; + gds_cp_already_crypted = 335545042; + gds_decrypt_error = 335545043; + gds_no_providers = 335545044; + gds_null_spb = 335545045; gds_gfix_db_name = 335740929; gds_gfix_invalid_sw = 335740930; gds_gfix_incmp_sw = 335740932; Modified: firebird/trunk/src/include/gen/codetext.h =================================================================== --- firebird/trunk/src/include/gen/codetext.h 2012-06-29 07:14:39 UTC (rev 54696) +++ firebird/trunk/src/include/gen/codetext.h 2012-06-29 12:44:41 UTC (rev 54697) @@ -735,6 +735,18 @@ {"libtommath_generic", 335545031}, {"wroblrver2", 335545032}, {"trunc_limits", 335545033}, + {"info_access", 335545034}, + {"svc_no_stdin", 335545035}, + {"svc_start_failed", 335545036}, + {"svc_no_switches", 335545037}, + {"svc_bad_size", 335545038}, + {"no_crypt_plugin", 335545039}, + {"cp_name_too_long", 335545040}, + {"cp_process_active", 335545041}, + {"cp_already_crypted", 335545042}, + {"decrypt_error", 335545043}, + {"no_providers", 335545044}, + {"null_spb", 335545045}, {"gfix_db_name", 335740929}, {"gfix_invalid_sw", 335740930}, {"gfix_incmp_sw", 335740932}, Modified: firebird/trunk/src/include/gen/iberror.h =================================================================== --- firebird/trunk/src/include/gen/iberror.h 2012-06-29 07:14:39 UTC (rev 54696) +++ firebird/trunk/src/include/gen/iberror.h 2012-06-29 12:44:41 UTC (rev 54697) @@ -769,6 +769,18 @@ const ISC_STATUS isc_libtommath_generic = 335545031L; const ISC_STATUS isc_wroblrver2 = 335545032L; const ISC_STATUS isc_trunc_limits = 335545033L; +const ISC_STATUS isc_info_access = 335545034L; +const ISC_STATUS isc_svc_no_stdin = 335545035L; +const ISC_STATUS isc_svc_start_failed = 335545036L; +const ISC_STATUS isc_svc_no_switches = 335545037L; +const ISC_STATUS isc_svc_bad_size = 335545038L; +const ISC_STATUS isc_no_crypt_plugin = 335545039L; +const ISC_STATUS isc_cp_name_too_long = 335545040L; +const ISC_STATUS isc_cp_process_active = 335545041L; +const ISC_STATUS isc_cp_already_crypted = 335545042L; +const ISC_STATUS isc_decrypt_error = 335545043L; +const ISC_STATUS isc_no_providers = 335545044L; +const ISC_STATUS isc_null_spb = 335545045L; const ISC_STATUS isc_gfix_db_name = 335740929L; const ISC_STATUS isc_gfix_invalid_sw = 335740930L; const ISC_STATUS isc_gfix_incmp_sw = 335740932L; @@ -1212,7 +1224,7 @@ const ISC_STATUS isc_trace_switch_param_miss = 337182758L; const ISC_STATUS isc_trace_param_act_notcompat = 337182759L; const ISC_STATUS isc_trace_mandatory_switch_miss = 337182760L; -const ISC_STATUS isc_err_max = 1156; +const ISC_STATUS isc_err_max = 1168; #else /* c definitions */ @@ -1951,6 +1963,18 @@ #define isc_libtommath_generic 335545031L #define isc_wroblrver2 335545032L #define isc_trunc_limits 335545033L +#define isc_info_access 335545034L +#define isc_svc_no_stdin 335545035L +#define isc_svc_start_failed 335545036L +#define isc_svc_no_switches 335545037L +#define isc_svc_bad_size 335545038L +#define isc_no_crypt_plugin 335545039L +#define isc_cp_name_too_long 335545040L +#define isc_cp_process_active 335545041L +#define isc_cp_already_crypted 335545042L +#define isc_decrypt_error 335545043L +#define isc_no_providers 335545044L +#define isc_null_spb 335545045L #define isc_gfix_db_name 335740929L #define isc_gfix_invalid_sw 335740930L #define isc_gfix_incmp_sw 335740932L @@ -2394,7 +2418,7 @@ #define isc_trace_switch_param_miss 337182758L #define isc_trace_param_act_notcompat 337182759L #define isc_trace_mandatory_switch_miss 337182760L -#define isc_err_max 1156 +#define isc_err_max 1168 #endif Modified: firebird/trunk/src/include/gen/msgs.h =================================================================== --- firebird/trunk/src/include/gen/msgs.h 2012-06-29 07:14:39 UTC (rev 54696) +++ firebird/trunk/src/include/gen/msgs.h 2012-06-29 12:44:41 UTC (rev 54697) @@ -738,6 +738,18 @@ {335545031, "Libtommath error code @1 in function @2"}, /* libtommath_generic */ {335545032, "unsupported BLR version (expected between @1 and @2, encountered @3)"}, /* wroblrver2 */ {335545033, "expected length @1, actual @2"}, /* trunc_limits */ + {335545034, "Wrong info requested in isc_svc_query() for anonymous service"}, /* info_access */ + {335545035, "No isc_info_svc_stdin in user request, but service thread requested stdin data"}, /* svc_no_stdin */ + {335545036, "Start request for anonymous service is impossible"}, /* svc_start_failed */ + {335545037, ""}, /* svc_no_switches */ + {335545038, "Size of stdin data is more than was requested from client"}, /* svc_bad_size */ + {335545039, "Crypt plugin @1 failed to load"}, /* no_crypt_plugin */ + {335545040, "Length of crypt plugin name should not exceed @1 byte"}, /* cp_name_too_long */ + {335545041, "Crypt failed - already crypting database"}, /* cp_process_active */ + {335545042, "Crypt failed - database is already in requested state"}, /* cp_already_crypted */ + {335545043, "Missing crypt plugin, but page appears encrypted"}, /* decrypt_error */ + {335545044, "No providers loaded"}, /* no_providers */ + {335545045, "NULL data with non-zero SPB length"}, /* null_spb */ {335740929, "data base file name (@1) already given"}, /* gfix_db_name */ {335740930, "invalid switch @1"}, /* gfix_invalid_sw */ {335740932, "incompatible switch combination"}, /* gfix_incmp_sw */ Modified: firebird/trunk/src/include/gen/sql_code.h =================================================================== --- firebird/trunk/src/include/gen/sql_code.h 2012-06-29 07:14:39 UTC (rev 54696) +++ firebird/trunk/src/include/gen/sql_code.h 2012-06-29 12:44:41 UTC (rev 54697) @@ -733,7 +733,19 @@ {335545030, -902}, /* 710 protect_sys_tab */ {335545031, -901}, /* 711 libtommath_generic */ {335545032, -902}, /* 712 wroblrver2 */ - {335545033, -802}, /* 713 trunc_limits */ + {335545033, -551}, /* 713 trunc_limits */ + {335545034, -551}, /* 714 info_access */ + {335545035, -104}, /* 715 svc_no_stdin */ + {335545036, -551}, /* 716 svc_start_failed */ + {335545037, -104}, /* 717 svc_no_switches */ + {335545038, -104}, /* 718 svc_bad_size */ + {335545039, -104}, /* 719 no_crypt_plugin */ + {335545040, -104}, /* 720 cp_name_too_long */ + {335545041, -901}, /* 721 cp_process_active */ + {335545042, -901}, /* 722 cp_already_crypted */ + {335545043, -902}, /* 723 decrypt_error */ + {335545044, -902}, /* 724 no_providers */ + {335545045, -104}, /* 725 null_spb */ {335740929, -901}, /* 1 gfix_db_name */ {335740930, -901}, /* 2 gfix_invalid_sw */ {335740932, -901}, /* 4 gfix_incmp_sw */ Modified: firebird/trunk/src/include/gen/sql_state.h =================================================================== --- firebird/trunk/src/include/gen/sql_state.h 2012-06-29 07:14:39 UTC (rev 54696) +++ firebird/trunk/src/include/gen/sql_state.h 2012-06-29 12:44:41 UTC (rev 54697) @@ -733,7 +733,19 @@ {335545030, "42000"}, // 710 protect_sys_tab {335545031, "2F000"}, // 711 libtommath_generic {335545032, "HY000"}, // 712 wroblrver2 - {335545033, "22001"}, // 713 trunc_limits + {335545033, "28000"}, // 713 trunc_limits + {335545034, "28000"}, // 714 info_access + {335545035, "HY024"}, // 715 svc_no_stdin + {335545036, "28000"}, // 716 svc_start_failed + {335545037, "HY024"}, // 717 svc_no_switches + {335545038, "HY109"}, // 718 svc_bad_size + {335545039, "HY024"}, // 719 no_crypt_plugin + {335545040, "22001"}, // 720 cp_name_too_long + {335545041, "42818"}, // 721 cp_process_active + {335545042, "42818"}, // 722 cp_already_crypted + {335545043, "39000"}, // 723 decrypt_error + {335545044, "39000"}, // 724 no_providers + {335545045, "42818"}, // 725 null_spb {335740929, "00000"}, // 1 gfix_db_name {335740930, "00000"}, // 2 gfix_invalid_sw {335740932, "00000"}, // 4 gfix_incmp_sw Modified: firebird/trunk/src/jrd/CryptoManager.cpp =================================================================== --- firebird/trunk/src/jrd/CryptoManager.cpp 2012-06-29 07:14:39 UTC (rev 54696) +++ firebird/trunk/src/jrd/CryptoManager.cpp 2012-06-29 12:44:41 UTC (rev 54697) @@ -67,7 +67,7 @@ { if (!header) { - (Arg::Gds(isc_random) << "Header page fetch failed").raise(); + ERR_punt(); } } @@ -201,8 +201,7 @@ upInfo, dbb.dbb_config, pluginName); if (!cryptControl.hasData()) { - (Arg::Gds(isc_random) << - "Invalid crypt plugin name").raise(); + (Arg::Gds(isc_no_crypt_plugin) << pluginName).raise(); } // do not assign cryptPlugin directly before key init complete @@ -216,8 +215,7 @@ { if (plugName.length() > 31) { - (Arg::Gds(isc_random) << - "Crypt plugin name should not be >31 bytes").raise(); + (Arg::Gds(isc_cp_name_too_long) << Arg::Num(31)).raise(); } bool newCryptState = plugName.hasData(); @@ -228,15 +226,13 @@ // Check header page for flags if (hdr->hdr_flags & Ods::hdr_crypt_process) { - (Arg::Gds(isc_random) << - "Crypt failed - already crypting database").raise(); + (Arg::Gds(isc_cp_process_active)).raise(); } bool headerCryptState = hdr->hdr_flags & Ods::hdr_encrypted; if (headerCryptState == newCryptState) { - (Arg::Gds(isc_random) << - "Crypt failed - database is already in requested state").raise(); + (Arg::Gds(isc_cp_already_crypted)).raise(); } fb_assert(stateLock); @@ -503,7 +499,7 @@ if (!cryptPlugin) { - (Arg::Gds(isc_random) << "Not crypt mode, but page appears encrypted").copyTo(sv); + (Arg::Gds(isc_decrypt_error)).raise(); return false; } } Modified: firebird/trunk/src/jrd/svc.cpp =================================================================== --- firebird/trunk/src/jrd/svc.cpp 2012-06-29 07:14:39 UTC (rev 54696) +++ firebird/trunk/src/jrd/svc.cpp 2012-06-29 12:44:41 UTC (rev 54697) @@ -1126,7 +1126,7 @@ break; default: status_exception::raise(Arg::Gds(isc_bad_spb_form) << - Arg::Gds(isc_random) << "wrong info request for anonymous service"); + Arg::Gds(isc_info_access)); break; } } @@ -1515,7 +1515,7 @@ } else { - (Arg::Gds(isc_random) << "No request from user for stdin data").raise(); + (Arg::Gds(isc_svc_no_stdin)).raise(); } } @@ -1971,7 +1971,7 @@ if (svc_user_flag == SVC_user_none) { status_exception::raise(Arg::Gds(isc_bad_spb_form) << - Arg::Gds(isc_random) << "start request for anonymous service is impossible"); + Arg::Gds(isc_svc_start_failed)); } { // scope for locked globalServicesMutex @@ -2055,7 +2055,7 @@ if ((!svc_switches.hasData()) && svc_id != isc_action_svc_get_fb_log) { status_exception::raise(Arg::Gds(isc_bad_spb_form) << - Arg::Gds(isc_random) << "all services except for get_ib_log require switches"); + Arg::Gds(isc_svc_no_switches)); } // Do not let everyone look at server log @@ -2371,7 +2371,7 @@ // check length correctness if (length > svc_stdin_size_requested && length > svc_stdin_preload_requested) { - (Arg::Gds(isc_random) << "Size of data is more than requested").raise(); + (Arg::Gds(isc_svc_bad_size)).raise(); } if (svc_stdin_size_requested) // service waits for data from us Modified: firebird/trunk/src/msgs/facilities2.sql =================================================================== --- firebird/trunk/src/msgs/facilities2.sql 2012-06-29 07:14:39 UTC (rev 54696) +++ firebird/trunk/src/msgs/facilities2.sql 2012-06-29 12:44:41 UTC (rev 54697) @@ -1,7 +1,7 @@ /* MAX_NUMBER is the next number to be used, always one more than the highest message number. */ set bulk_insert INSERT INTO FACILITIES (LAST_CHANGE, FACILITY, FAC_CODE, MAX_NUMBER) VALUES (?, ?, ?, ?); -- -('2012-06-05 15:01:35', 'JRD', 0, 714) +('2012-06-29 16:14:26', 'JRD', 0, 726) ('2012-01-23 20:10:30', 'QLI', 1, 532) ('2009-07-16 05:26:11', 'GFIX', 3, 121) ('1996-11-07 13:39:40', 'GPRE', 4, 1) Modified: firebird/trunk/src/msgs/messages2.sql =================================================================== --- firebird/trunk/src/msgs/messages2.sql 2012-06-29 07:14:39 UTC (rev 54696) +++ firebird/trunk/src/msgs/messages2.sql 2012-06-29 12:44:41 UTC (rev 54697) @@ -821,6 +821,18 @@ ('libtommath_generic', 'check', 'BigInteger.cpp', NULL, 0, 711, NULL, 'Libtommath error code @1 in function @2', NULL, NULL) ('wroblrver2', NULL, NULL, NULL, 0, 712, NULL, 'unsupported BLR version (expected between @1 and @2, encountered @3)', NULL, NULL); ('trunc_limits', NULL, NULL, NULL, 0, 713, NULL, 'expected length @1, actual @2', NULL, NULL); +('info_access', NULL, 'svc.cpp', NULL, 0, 714, NULL, 'Wrong info requested in isc_svc_query() for anonymous service', NULL, NULL); +('svc_no_stdin', NULL, 'svc.cpp', NULL, 0, 715, NULL, 'No isc_info_svc_stdin in user request, but service thread requested stdin data', NULL, NULL); +('svc_start_failed', NULL, 'svc.cpp', NULL, 0, 716, NULL, 'Start request for anonymous service is impossible', NULL, NULL); +('svc_no_switches', NULL, 'svc.cpp', NULL, 0, 717, NULL, '', NULL, NULL); +('svc_bad_size', NULL, 'svc.cpp', NULL, 0, 718, NULL, 'Size of stdin data is more than was requested from client', NULL, NULL); +('no_crypt_plugin', NULL, 'CryptoManager.cpp', NULL, 0, 719, NULL, 'Crypt plugin @1 failed to load', NULL, NULL); +('cp_name_too_long', NULL, 'CryptoManager.cpp', NULL, 0, 720, NULL, 'Length of crypt plugin name should not exceed @1 byte', NULL, NULL); +('cp_process_active', NULL, 'CryptoManager.cpp', NULL, 0, 721, NULL, 'Crypt failed - already crypting database', NULL, NULL); +('cp_already_crypted', NULL, 'CryptoManager.cpp', NULL, 0, 722, NULL, 'Crypt failed - database is already in requested state', NULL, NULL); +('decrypt_error', NULL, 'CryptoManager.cpp', NULL, 0, 723, NULL, 'Missing crypt plugin, but page appears encrypted', NULL, NULL); +('no_providers', NULL, 'why.cpp', NULL, 0, 724, NULL, 'No providers loaded', NULL, NULL); +('null_spb', NULL, 'why.cpp', NULL, 0, 725, NULL, 'NULL data with non-zero SPB length', NULL, NULL); -- QLI (NULL, NULL, NULL, NULL, 1, 0, NULL, 'expected type', NULL, NULL); (NULL, NULL, NULL, NULL, 1, 1, NULL, 'bad block type', NULL, NULL); Modified: firebird/trunk/src/msgs/system_errors2.sql =================================================================== --- firebird/trunk/src/msgs/system_errors2.sql 2012-06-29 07:14:39 UTC (rev 54696) +++ firebird/trunk/src/msgs/system_errors2.sql 2012-06-29 12:44:41 UTC (rev 54697) @@ -719,7 +719,19 @@ -- If you have better SQL code for this, change it. (-901, '2F', '000', 0, 711, 'libtommath_generic', NULL, NULL) (-902, 'HY', '000', 0, 712, 'wroblrver2', NULL, NULL) -(-802, '22', '001', 0, 713, 'trunc_limits', NULL, NULL) +(-551, '28', '000', 0, 713, 'trunc_limits', NULL, NULL) +(-551, '28', '000', 0, 714, 'info_access', NULL, NULL) +(-104, 'HY', '024', 0, 715, 'svc_no_stdin', NULL, NULL) +(-551, '28', '000', 0, 716, 'svc_start_failed', NULL, NULL) +(-104, 'HY', '024', 0, 717, 'svc_no_switches', NULL, NULL) +(-104, 'HY', '109', 0, 718, 'svc_bad_size', NULL, NULL) +(-104, 'HY', '024', 0, 719, 'no_crypt_plugin', NULL, NULL) +(-104, '22', '001', 0, 720, 'cp_name_too_long', NULL, NULL) +(-901, '42', '818', 0, 721, 'cp_process_active', NULL, NULL) +(-901, '42', '818', 0, 722, 'cp_already_crypted', NULL, NULL) +(-902, '39', '000', 0, 723, 'decrypt_error', NULL, NULL) +(-902, '39', '000', 0, 724, 'no_providers', NULL, NULL) +(-104, '42', '818', 0, 725, 'null_spb', NULL, NULL) -- GFIX (-901, '00', '000', 3, 1, 'gfix_db_name', NULL, NULL) (-901, '00', '000', 3, 2, 'gfix_invalid_sw', NULL, NULL) Modified: firebird/trunk/src/yvalve/why.cpp =================================================================== --- firebird/trunk/src/yvalve/why.cpp 2012-06-29 07:14:39 UTC (rev 54696) +++ firebird/trunk/src/yvalve/why.cpp 2012-06-29 12:44:41 UTC (rev 54697) @@ -4602,7 +4602,7 @@ if (status->isSuccess()) { (Arg::Gds(isc_service_att_err) << - Arg::Gds(isc_random) << "No providers loaded").copyTo(status); + Arg::Gds(isc_no_providers)).copyTo(status); } return NULL; @@ -4974,7 +4974,7 @@ if (spbLength > 0 && !spb) status_exception::raise(Arg::Gds(isc_bad_spb_form) << - Arg::Gds(isc_random) << "NULL data with non-zero SPB length"); + Arg::Gds(isc_null_spb)); PathName svcName(serviceName); svcName.trim(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-06-30 04:29:42
|
Revision: 54699 http://firebird.svn.sourceforge.net/firebird/?rev=54699&view=rev Author: firebirds Date: 2012-06-30 04:29:35 +0000 (Sat, 30 Jun 2012) 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 2012-06-29 16:29:13 UTC (rev 54698) +++ firebird/trunk/ChangeLog 2012-06-30 04:29:35 UTC (rev 54699) @@ -1,3 +1,23 @@ + 2012-06-29 12:44 alexpeshkoff + M lang_helpers/gds_codes.ftn + M lang_helpers/gds_codes.pas + M src/include/gen/codetext.h + M src/include/gen/iberror.h + M src/include/gen/msgs.h + M src/include/gen/sql_code.h + M src/include/gen/sql_state.h + M src/jrd/CryptoManager.cpp + M src/jrd/svc.cpp + M src/msgs/facilities2.sql + M src/msgs/messages2.sql + M src/msgs/system_errors2.sql + M src/yvalve/why.cpp +Anti isc_random pass + + 2012-06-29 07:13 alexpeshkoff + M src/jrd/svc.cpp +Removed unused var - thanks to Adriano + 2012-06-29 01:47 asfernandes M src/utilities/fbsvcmgr/fbsvcmgr.cpp Misc. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-06-29 16:29:13 UTC (rev 54698) +++ firebird/trunk/src/jrd/build_no.h 2012-06-30 04:29:35 UTC (rev 54699) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30024 + FORMAL BUILD NUMBER:30026 */ -#define PRODUCT_VER_STRING "3.0.0.30024" -#define FILE_VER_STRING "WI-T3.0.0.30024" -#define LICENSE_VER_STRING "WI-T3.0.0.30024" -#define FILE_VER_NUMBER 3, 0, 0, 30024 +#define PRODUCT_VER_STRING "3.0.0.30026" +#define FILE_VER_STRING "WI-T3.0.0.30026" +#define LICENSE_VER_STRING "WI-T3.0.0.30026" +#define FILE_VER_NUMBER 3, 0, 0, 30026 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30024" +#define FB_BUILD_NO "30026" #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 2012-06-29 16:29:13 UTC (rev 54698) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-06-30 04:29:35 UTC (rev 54699) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30024 +BuildNum=30026 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...> - 2012-07-11 01:56:44
|
Revision: 54708 http://firebird.svn.sourceforge.net/firebird/?rev=54708&view=rev Author: asfernandes Date: 2012-07-11 01:56:37 +0000 (Wed, 11 Jul 2012) Log Message: ----------- Frontport UUID fixes (CORE-3238 and CORE-3887). Modified Paths: -------------- firebird/trunk/doc/sql.extensions/README.builtin_functions.txt firebird/trunk/src/common/os/guid.h firebird/trunk/src/dsql/parse.y firebird/trunk/src/jrd/SysFunction.cpp firebird/trunk/src/jrd/trace/TraceService.cpp firebird/trunk/src/utilities/gstat/ppg.cpp firebird/trunk/src/utilities/nbackup/nbackup.cpp firebird/trunk/src/yvalve/keywords.cpp Modified: firebird/trunk/doc/sql.extensions/README.builtin_functions.txt =================================================================== --- firebird/trunk/doc/sql.extensions/README.builtin_functions.txt 2012-07-11 01:38:29 UTC (rev 54707) +++ firebird/trunk/doc/sql.extensions/README.builtin_functions.txt 2012-07-11 01:56:37 UTC (rev 54708) @@ -246,38 +246,18 @@ Format: CHAR_TO_UUID( <string> ) -Notes: - If you have not used this function before, its usage is discouraged. CHAR_TO_UUID2 supersedes it. +Important (for big-endian servers): + It has been discovered that before Firebird 2.5.2, CHAR_TO_UUID and UUID_TO_CHAR works + incorrectly in big-endian servers. In these machines, bytes/characters are swapped and goes in + wrong positions when converting. This bug was fixed in 2.5.2 and 3.0, but that means these + functions now returns different values (for the same input parameter) than before. Example: select char_to_uuid('93519227-8D50-4E47-81AA-8F6678C096A1') from rdb$database; -See also: GEN_UUID, CHAR_TO_UUID2, UUID_TO_CHAR and UUID_TO_CHAR2 +See also: GEN_UUID and UUID_TO_CHAR -------------- -CHAR_TO_UUID2 -------------- - -Function: - Converts the CHAR(32) ASCII representation of an UUID - (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) to the CHAR(16) OCTETS - representation (optimized for storage). - -Format: - CHAR_TO_UUID2( <string> ) - -Notes: - This function supersedes CHAR_TO_UUID. The difference between them is that CHAR_TO_UUID does a - byte-by-byte conversion of the ASCII string to the OCTETS one, while CHAR_TO_UUID2 converts - a RFC-4122 compliant ASCII UUID to a compliant OCTETS string. - -Example: - select char_to_uuid2('93519227-8D50-4E47-81AA-8F6678C096A1') from rdb$database; - -See also: GEN_UUID, UUID_TO_CHAR2 - - --- COS --- @@ -431,17 +411,17 @@ Format: GEN_UUID() -Notes: - In Firebird 2.5.0 and 2.5.1, GEN_UUID was returning completely random strings. This is not - compliant with the RFC-4122 (UUID specification). - In Firebird 2.5.2 and 3.0 this was fixed. Now GEN_UUID returns a compliant UUID version 4 +Important: + Before Firebird 2.5.2, GEN_UUID was returning completely random strings. This is not compliant + with the RFC-4122 (UUID specification). + This was fixed in Firebird 2.5.2 and 3.0. Now GEN_UUID returns a compliant UUID version 4 string, where some bits are reserved and the others are random. The string format of a compliant UUID is XXXXXXXX-XXXX-4XXX-YXXX-XXXXXXXXXXXX, where 4 is fixed (version) and Y is 8, 9, A or B. Example: insert into records (id) value (gen_uuid()); -See also: CHAR_TO_UUID, UUID_TO_CHAR, CHAR_TO_UUID2, UUID_TO_CHAR2 +See also: CHAR_TO_UUID and UUID_TO_CHAR ---- @@ -873,33 +853,13 @@ Format: UUID_TO_CHAR( <string> ) -Notes: - If you have not used this function before, its usage is discouraged. UUID_TO_CHAR2 supersedes it. +Important (for big-endian servers): + It has been discovered that before Firebird 2.5.2, CHAR_TO_UUID and UUID_TO_CHAR works + incorrectly in big-endian servers. In these machines, bytes/characters are swapped and goes in + wrong positions when converting. This bug was fixed in 2.5.2 and 3.0, but that means these + functions now returns different values (for the same input parameter) than before. Example: select uuid_to_char(gen_uuid()) from rdb$database; -See also: GEN_UUID, UUID_TO_CHAR2, CHAR_TO_UUID and CHAR_TO_UUID2 - - -------------- -UUID_TO_CHAR2 -------------- - -Function: - Converts a CHAR(16) OCTETS UUID (that's returned by GEN_UUID) to the - CHAR(32) ASCII representation (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). - -Format: - UUID_TO_CHAR2( <string> ) - -Notes: - This function supersedes UUID_TO_CHAR. The difference between them is that UUID_TO_CHAR does a - byte-by-byte conversion of the OCTETS string to the ASCII one, while UUID_TO_CHAR2 converts - a RFC-4122 compliant OCTETS UUID to a compliant ASCII string. Also, UUID_TO_CHAR returns - upper-cased string and UUID_TO_CHAR2 returns lower-cased string. - -Example: - select uuid_to_char2(gen_uuid()) from rdb$database; - -See also: GEN_UUID, CHAR_TO_UUID2 +See also: GEN_UUID and CHAR_TO_UUID Modified: firebird/trunk/src/common/os/guid.h =================================================================== --- firebird/trunk/src/common/os/guid.h 2012-07-11 01:38:29 UTC (rev 54707) +++ firebird/trunk/src/common/os/guid.h 2012-07-11 01:56:37 UTC (rev 54708) @@ -40,20 +40,11 @@ const char* const GUID_LEGACY_FORMAT = "{%04hX%04hX-%04hX-%04hX-%04hX-%04hX%04hX%04hX}"; -const char* const GUID_NEW_FORMAT_UPPER = +const char* const GUID_NEW_FORMAT = "{%02hX%02hX%02hX%02hX-%02hX%02hX-%02hX%02hX-%02hX%02hX-%02hX%02hX%02hX%02hX%02hX%02hX}"; -const char* const GUID_NEW_FORMAT_LOWER = - "{%02hx%02hx%02hx%02hx-%02hx%02hx-%02hx%02hx-%02hx%02hx-%02hx%02hx%02hx%02hx%02hx%02hx}"; struct Guid { - enum Style - { - STYLE_NBACKUP, // Format introduced with nbackup - STYLE_BROKEN, // Format introduced in FB 2.5.0 - STYLE_UUID // Format as defined in the RFC-4122. - }; - union { USHORT data[8]; @@ -71,87 +62,21 @@ void GenerateRandomBytes(void* buffer, size_t size); void GenerateGuid(Guid* guid); -// These functions receive buffers of at least GUID_BUFF_SIZE length +// These functions receive buffers of at least GUID_BUFF_SIZE length. +// Warning: they are BROKEN in little-endian and should not be used on new code. -inline void GuidToString(char* buffer, const Guid* guid, Guid::Style style) +inline void GuidToString(char* buffer, const Guid* guid) { - switch (style) - { - case Guid::STYLE_NBACKUP: - sprintf(buffer, GUID_LEGACY_FORMAT, - guid->data[0], guid->data[1], guid->data[2], guid->data[3], - guid->data[4], guid->data[5], guid->data[6], guid->data[7]); - break; - - case Guid::STYLE_BROKEN: - sprintf(buffer, GUID_NEW_FORMAT_UPPER, - USHORT(guid->data[0] & 0xFF), USHORT(guid->data[0] >> 8), - USHORT(guid->data[1] & 0xFF), USHORT(guid->data[1] >> 8), - USHORT(guid->data[2] & 0xFF), USHORT(guid->data[2] >> 8), - USHORT(guid->data[3] & 0xFF), USHORT(guid->data[3] >> 8), - USHORT(guid->data[4] & 0xFF), USHORT(guid->data[4] >> 8), - USHORT(guid->data[5] & 0xFF), USHORT(guid->data[5] >> 8), - USHORT(guid->data[6] & 0xFF), USHORT(guid->data[6] >> 8), - USHORT(guid->data[7] & 0xFF), USHORT(guid->data[7] >> 8)); - break; - - case Guid::STYLE_UUID: - sprintf(buffer, GUID_NEW_FORMAT_LOWER, - USHORT((guid->data1 >> 24) & 0xFF), USHORT((guid->data1 >> 16) & 0xFF), - USHORT((guid->data1 >> 8) & 0xFF), USHORT(guid->data1 & 0xFF), - USHORT((guid->data2 >> 8) & 0xFF), USHORT(guid->data2 & 0xFF), - USHORT((guid->data3 >> 8) & 0xFF), USHORT(guid->data3 & 0xFF), - USHORT(guid->data4[0]), USHORT(guid->data4[1]), - USHORT(guid->data4[2]), USHORT(guid->data4[3]), - USHORT(guid->data4[4]), USHORT(guid->data4[5]), - USHORT(guid->data4[6]), USHORT(guid->data4[7])); - break; - } + sprintf(buffer, GUID_LEGACY_FORMAT, + guid->data[0], guid->data[1], guid->data[2], guid->data[3], + guid->data[4], guid->data[5], guid->data[6], guid->data[7]); } -inline void StringToGuid(Guid* guid, const char* buffer, Guid::Style style) +inline void StringToGuid(Guid* guid, const char* buffer) { - if (style == Guid::STYLE_NBACKUP) - { - sscanf(buffer, GUID_LEGACY_FORMAT, - &guid->data[0], &guid->data[1], &guid->data[2], &guid->data[3], - &guid->data[4], &guid->data[5], &guid->data[6], &guid->data[7]); - } - else - { - USHORT bytes[16]; - sscanf(buffer, GUID_NEW_FORMAT_LOWER, - &bytes[0], &bytes[1], &bytes[2], &bytes[3], - &bytes[4], &bytes[5], &bytes[6], &bytes[7], - &bytes[8], &bytes[9], &bytes[10], &bytes[11], - &bytes[12], &bytes[13], &bytes[14], &bytes[15]); - - if (style == Guid::STYLE_BROKEN) - { - guid->data[0] = bytes[0] | (bytes[1] << 8); - guid->data[1] = bytes[2] | (bytes[3] << 8); - guid->data[2] = bytes[4] | (bytes[5] << 8); - guid->data[3] = bytes[6] | (bytes[7] << 8); - guid->data[4] = bytes[8] | (bytes[9] << 8); - guid->data[5] = bytes[10] | (bytes[11] << 8); - guid->data[6] = bytes[12] | (bytes[13] << 8); - guid->data[7] = bytes[14] | (bytes[15] << 8); - } - else if (style == Guid::STYLE_UUID) - { - guid->data1 = (bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3]; - guid->data2 = (bytes[4] << 8) | bytes[5]; - guid->data3 = (bytes[6] << 8) | bytes[7]; - guid->data4[0] = bytes[8]; - guid->data4[1] = bytes[9]; - guid->data4[2] = bytes[10]; - guid->data4[3] = bytes[11]; - guid->data4[4] = bytes[12]; - guid->data4[5] = bytes[13]; - guid->data4[6] = bytes[14]; - guid->data4[7] = bytes[15]; - } - } + sscanf(buffer, GUID_LEGACY_FORMAT, + &guid->data[0], &guid->data[1], &guid->data[2], &guid->data[3], + &guid->data[4], &guid->data[5], &guid->data[6], &guid->data[7]); } } // namespace Modified: firebird/trunk/src/dsql/parse.y =================================================================== --- firebird/trunk/src/dsql/parse.y 2012-07-11 01:38:29 UTC (rev 54707) +++ firebird/trunk/src/dsql/parse.y 2012-07-11 01:56:37 UTC (rev 54708) @@ -523,7 +523,6 @@ %token <legacyStr> AUTONOMOUS %token <legacyStr> CHAR_TO_UUID -%token <legacyStr> CHAR_TO_UUID2 %token <legacyStr> FIRSTNAME %token <legacyStr> GRANTED %token <legacyStr> LASTNAME @@ -532,7 +531,6 @@ %token <legacyStr> OS_NAME %token <legacyStr> SIMILAR %token <legacyStr> UUID_TO_CHAR -%token <legacyStr> UUID_TO_CHAR2 // new execute statement %token <legacyStr> CALLER %token <legacyStr> COMMON @@ -6148,7 +6146,6 @@ | BIN_XOR | CEIL | CHAR_TO_UUID - | CHAR_TO_UUID2 | COS | COSH | COT @@ -6182,7 +6179,6 @@ | TANH | TRUNC | UUID_TO_CHAR - | UUID_TO_CHAR2 ; %type <sysFuncCallNode> system_function_special_syntax @@ -6754,14 +6750,12 @@ | WEEK | AUTONOMOUS // added in FB 2.5 | CHAR_TO_UUID - | CHAR_TO_UUID2 | FIRSTNAME | MIDDLENAME | LASTNAME | MAPPING | OS_NAME | UUID_TO_CHAR - | UUID_TO_CHAR2 | GRANTED | CALLER // new execute statement | COMMON Modified: firebird/trunk/src/jrd/SysFunction.cpp =================================================================== --- firebird/trunk/src/jrd/SysFunction.cpp 2012-07-11 01:38:29 UTC (rev 54707) +++ firebird/trunk/src/jrd/SysFunction.cpp 2012-07-11 01:56:37 UTC (rev 54708) @@ -1512,11 +1512,19 @@ buffer[38] = '\0'; memcpy(buffer + 1, data, GUID_BODY_SIZE); - Guid guid; - StringToGuid(&guid, buffer, (Guid::Style)(IPTR) function->misc); + USHORT bytes[16]; + sscanf(buffer, GUID_NEW_FORMAT, + &bytes[0], &bytes[1], &bytes[2], &bytes[3], + &bytes[4], &bytes[5], &bytes[6], &bytes[7], + &bytes[8], &bytes[9], &bytes[10], &bytes[11], + &bytes[12], &bytes[13], &bytes[14], &bytes[15]); + UCHAR resultData[16]; + for (unsigned i = 0; i < 16; ++i) + resultData[i] = (UCHAR) bytes[i]; + dsc result; - result.makeText(16, ttype_binary, reinterpret_cast<UCHAR*>(guid.data)); + result.makeText(16, ttype_binary, resultData); EVL_make_value(tdbb, &result, impure); return &impure->vlu_desc; @@ -2049,8 +2057,26 @@ GenerateGuid(&guid); + UCHAR data[16]; + data[0] = (guid.data1 >> 24) & 0xFF; + data[1] = (guid.data1 >> 16) & 0xFF; + data[2] = (guid.data1 >> 8) & 0xFF; + data[3] = guid.data1 & 0xFF; + data[4] = (guid.data2 >> 8) & 0xFF; + data[5] = guid.data2 & 0xFF; + data[6] = (guid.data3 >> 8) & 0xFF; + data[7] = guid.data3 & 0xFF; + data[8] = guid.data4[0]; + data[9] = guid.data4[1]; + data[10] = guid.data4[2]; + data[11] = guid.data4[3]; + data[12] = guid.data4[4]; + data[13] = guid.data4[5]; + data[14] = guid.data4[6]; + data[15] = guid.data4[7]; + dsc result; - result.makeText(16, ttype_binary, reinterpret_cast<UCHAR*>(guid.data)); + result.makeText(16, ttype_binary, data); EVL_make_value(tdbb, &result, impure); return &impure->vlu_desc; @@ -3621,7 +3647,11 @@ } char buffer[GUID_BUFF_SIZE]; - GuidToString(buffer, reinterpret_cast<const Guid*>(data), (Guid::Style)(IPTR) function->misc); + sprintf(buffer, GUID_NEW_FORMAT, + USHORT(data[0]), USHORT(data[1]), USHORT(data[2]), USHORT(data[3]), USHORT(data[4]), + USHORT(data[5]), USHORT(data[6]), USHORT(data[7]), USHORT(data[8]), USHORT(data[9]), + USHORT(data[10]), USHORT(data[11]), USHORT(data[12]), USHORT(data[13]), USHORT(data[14]), + USHORT(data[15])); dsc result; result.makeText(GUID_BODY_SIZE, ttype_ascii, reinterpret_cast<UCHAR*>(buffer) + 1); @@ -3656,8 +3686,7 @@ {"BIN_XOR", 2, -1, setParamsInteger, makeBin, evlBin, (void*) funBinXor}, {"CEIL", 1, 1, setParamsDouble, makeCeilFloor, evlCeil, NULL}, {"CEILING", 1, 1, setParamsDouble, makeCeilFloor, evlCeil, NULL}, - {"CHAR_TO_UUID", 1, 1, setParamsCharToUuid, makeUuid, evlCharToUuid, (void*)(IPTR) Guid::STYLE_BROKEN}, - {"CHAR_TO_UUID2", 1, 1, setParamsCharToUuid, makeUuid, evlCharToUuid, (void*)(IPTR) Guid::STYLE_UUID}, + {"CHAR_TO_UUID", 1, 1, setParamsCharToUuid, makeUuid, evlCharToUuid, NULL}, {"COS", 1, 1, setParamsDouble, makeDoubleResult, evlStdMath, (void*) trfCos}, {"COSH", 1, 1, setParamsDouble, makeDoubleResult, evlStdMath, (void*) trfCosh}, {"COT", 1, 1, setParamsDouble, makeDoubleResult, evlStdMath, (void*) trfCot}, @@ -3694,8 +3723,7 @@ {"TAN", 1, 1, setParamsDouble, makeDoubleResult, evlStdMath, (void*) trfTan}, {"TANH", 1, 1, setParamsDouble, makeDoubleResult, evlStdMath, (void*) trfTanh}, {"TRUNC", 1, 2, setParamsRoundTrunc, makeTrunc, evlTrunc, NULL}, - {"UUID_TO_CHAR", 1, 1, setParamsUuidToChar, makeUuidToChar, evlUuidToChar, (void*)(IPTR) Guid::STYLE_BROKEN}, - {"UUID_TO_CHAR2", 1, 1, setParamsUuidToChar, makeUuidToChar, evlUuidToChar, (void*)(IPTR) Guid::STYLE_UUID}, + {"UUID_TO_CHAR", 1, 1, setParamsUuidToChar, makeUuidToChar, evlUuidToChar, NULL}, {"", 0, 0, NULL, NULL, NULL, NULL} }; Modified: firebird/trunk/src/jrd/trace/TraceService.cpp =================================================================== --- firebird/trunk/src/jrd/trace/TraceService.cpp 2012-07-11 01:38:29 UTC (rev 54707) +++ firebird/trunk/src/jrd/trace/TraceService.cpp 2012-07-11 01:56:37 UTC (rev 54708) @@ -107,7 +107,7 @@ GenerateGuid(&guid); char* buff = session.ses_logfile.getBuffer(GUID_BUFF_SIZE); - GuidToString(buff, &guid, Guid::STYLE_BROKEN); + GuidToString(buff, &guid); session.ses_logfile.insert(0, "fb_trace."); } Modified: firebird/trunk/src/utilities/gstat/ppg.cpp =================================================================== --- firebird/trunk/src/utilities/gstat/ppg.cpp 2012-07-11 01:38:29 UTC (rev 54707) +++ firebird/trunk/src/utilities/gstat/ppg.cpp 2012-07-11 01:56:37 UTC (rev 54708) @@ -277,7 +277,7 @@ case HDR_backup_guid: { char buff[Firebird::GUID_BUFF_SIZE]; - Firebird::GuidToString(buff, reinterpret_cast<const Guid*>(p + 2), Guid::STYLE_NBACKUP); + Firebird::GuidToString(buff, reinterpret_cast<const Guid*>(p + 2)); uSvc->printf(false, "\tDatabase backup GUID:\t%s\n", buff); break; } Modified: firebird/trunk/src/utilities/nbackup/nbackup.cpp =================================================================== --- firebird/trunk/src/utilities/nbackup/nbackup.cpp 2012-07-11 01:38:29 UTC (rev 54707) +++ firebird/trunk/src/utilities/nbackup/nbackup.cpp 2012-07-11 01:56:37 UTC (rev 54708) @@ -955,7 +955,7 @@ bh.version = 1; bh.level = level; bh.backup_guid = backup_guid; - StringToGuid(&bh.prev_guid, prev_guid, Guid::STYLE_NBACKUP); + StringToGuid(&bh.prev_guid, prev_guid); bh.page_size = header->hdr_page_size; bh.backup_scn = backup_scn; bh.prev_scn = prev_scn; @@ -1113,7 +1113,7 @@ in_sqlda->sqlvar[0].sqldata = (char*) &level; in_sqlda->sqlvar[0].sqlind = &null_flag; char temp[GUID_BUFF_SIZE]; - GuidToString(temp, &backup_guid, Guid::STYLE_NBACKUP); + GuidToString(temp, &backup_guid); in_sqlda->sqlvar[1].sqldata = temp; in_sqlda->sqlvar[1].sqlind = &null_flag; in_sqlda->sqlvar[2].sqldata = (char*) &backup_scn; Modified: firebird/trunk/src/yvalve/keywords.cpp =================================================================== --- firebird/trunk/src/yvalve/keywords.cpp 2012-07-11 01:38:29 UTC (rev 54707) +++ firebird/trunk/src/yvalve/keywords.cpp 2012-07-11 01:56:37 UTC (rev 54708) @@ -111,7 +111,6 @@ {KW_CHAR, "CHAR", 1, false}, {CHAR_LENGTH, "CHAR_LENGTH", 2, false}, {CHAR_TO_UUID, "CHAR_TO_UUID", 2, false}, - {CHAR_TO_UUID2, "CHAR_TO_UUID2", 2, false}, {CHARACTER, "CHARACTER", 1, false}, {CHARACTER_LENGTH, "CHARACTER_LENGTH", 2, false}, {CHECK, "CHECK", 1, false}, @@ -415,7 +414,6 @@ {USER, "USER", 1, false}, {USING, "USING", 2, false}, {UUID_TO_CHAR, "UUID_TO_CHAR", 2, false}, - {UUID_TO_CHAR2, "UUID_TO_CHAR2", 2, false}, {KW_VALUE, "VALUE", 1, false}, {VALUES, "VALUES", 1, false}, {VARCHAR, "VARCHAR", 1, false}, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-07-11 04:34:20
|
Revision: 54709 http://firebird.svn.sourceforge.net/firebird/?rev=54709&view=rev Author: firebirds Date: 2012-07-11 04:34:13 +0000 (Wed, 11 Jul 2012) 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 2012-07-11 01:56:37 UTC (rev 54708) +++ firebird/trunk/ChangeLog 2012-07-11 04:34:13 UTC (rev 54709) @@ -1,3 +1,19 @@ + 2012-07-11 01:56 asfernandes + M doc/sql.extensions/README.builtin_functions.txt + M src/common/os/guid.h + M src/dsql/parse.y + M src/jrd/SysFunction.cpp + M src/jrd/trace/TraceService.cpp + M src/utilities/gstat/ppg.cpp + M src/utilities/nbackup/nbackup.cpp + M src/yvalve/keywords.cpp +Frontport UUID fixes (CORE-3238 and CORE-3887). + + 2012-07-10 16:08 dimitr + M src/jrd/Function.epp + M src/jrd/met.epp +Avoid a small memory leak. + 2012-06-29 12:44 alexpeshkoff M lang_helpers/gds_codes.ftn M lang_helpers/gds_codes.pas Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-07-11 01:56:37 UTC (rev 54708) +++ firebird/trunk/src/jrd/build_no.h 2012-07-11 04:34:13 UTC (rev 54709) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30026 + FORMAL BUILD NUMBER:30028 */ -#define PRODUCT_VER_STRING "3.0.0.30026" -#define FILE_VER_STRING "WI-T3.0.0.30026" -#define LICENSE_VER_STRING "WI-T3.0.0.30026" -#define FILE_VER_NUMBER 3, 0, 0, 30026 +#define PRODUCT_VER_STRING "3.0.0.30028" +#define FILE_VER_STRING "WI-T3.0.0.30028" +#define LICENSE_VER_STRING "WI-T3.0.0.30028" +#define FILE_VER_NUMBER 3, 0, 0, 30028 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30026" +#define FB_BUILD_NO "30028" #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 2012-07-11 01:56:37 UTC (rev 54708) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-07-11 04:34:13 UTC (rev 54709) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30026 +BuildNum=30028 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2012-07-11 12:54:15
|
Revision: 54713 http://firebird.svn.sourceforge.net/firebird/?rev=54713&view=rev Author: dimitr Date: 2012-07-11 12:54:08 +0000 (Wed, 11 Jul 2012) Log Message: ----------- Wiped out the legacy compatibility option. Modified Paths: -------------- firebird/trunk/builds/install/misc/firebird.conf.in firebird/trunk/src/common/config/config.cpp firebird/trunk/src/common/config/config.h firebird/trunk/src/dsql/StmtNodes.cpp Modified: firebird/trunk/builds/install/misc/firebird.conf.in =================================================================== --- firebird/trunk/builds/install/misc/firebird.conf.in 2012-07-11 05:26:28 UTC (rev 54712) +++ firebird/trunk/builds/install/misc/firebird.conf.in 2012-07-11 12:54:08 UTC (rev 54713) @@ -444,28 +444,6 @@ #BugcheckAbort = 0 -# Prior to Firebird 2.5 the SET clause of the UPDATE statement assigned -# columns in the user-defined order with the NEW column values being -# immediately accessible to the subsequent assignments. This did not -# conform to the SQL standard. Starting with Firebird 2.5, only OLD column -# values are accessible to all the assignments of the SET clause. -# -# Example of the old vs new behaviour: -# -# UPDATE T SET A = B, B = A -# old result: A gets equal to B, B doesn't change -# new result: A and B get their values exchanged -# -# Change this configuration option to 1 (true) only if your SQL code relies -# on the legacy semantics of the SET clause. It's provided as a temporary -# solution for backward compatibility issues and will be deprecated in -# future Firebird versions. -# -# Type: boolean -# -#OldSetClauseSemantics = 0 - - # ---------------------------- # Relaxing relation alias checking rules in SQL # Modified: firebird/trunk/src/common/config/config.cpp =================================================================== --- firebird/trunk/src/common/config/config.cpp 2012-07-11 05:26:28 UTC (rev 54712) +++ firebird/trunk/src/common/config/config.cpp 2012-07-11 12:54:08 UTC (rev 54713) @@ -162,7 +162,6 @@ {TYPE_INTEGER, "DatabaseGrowthIncrement", (ConfigValue) 128 * 1048576}, // bytes {TYPE_INTEGER, "FileSystemCacheThreshold", (ConfigValue) 65536}, // page buffers {TYPE_BOOLEAN, "RelaxedAliasChecking", (ConfigValue) false}, // if true relax strict alias checking rules in DSQL a bit - {TYPE_BOOLEAN, "OldSetClauseSemantics", (ConfigValue) false}, // if true disallow SET A = B, B = A to exchange column values {TYPE_STRING, "AuditTraceConfigFile", (ConfigValue) ""}, // location of audit trace configuration file {TYPE_INTEGER, "MaxUserTraceLogSize", (ConfigValue) 10}, // maximum size of user session trace log {TYPE_INTEGER, "FileSystemCacheSize", (ConfigValue) 0}, // percent @@ -623,11 +622,6 @@ return (bool) getDefaultConfig()->values[KEY_RELAXED_ALIAS_CHECKING]; } -bool Config::getOldSetClauseSemantics() -{ - return (bool) getDefaultConfig()->values[KEY_OLD_SET_CLAUSE_SEMANTICS]; -} - int Config::getFileSystemCacheSize() { return (int) getDefaultConfig()->values[KEY_FILESYSTEM_CACHE_SIZE]; Modified: firebird/trunk/src/common/config/config.h =================================================================== --- firebird/trunk/src/common/config/config.h 2012-07-11 05:26:28 UTC (rev 54712) +++ firebird/trunk/src/common/config/config.h 2012-07-11 12:54:08 UTC (rev 54713) @@ -127,7 +127,6 @@ KEY_DATABASE_GROWTH_INCREMENT, KEY_FILESYSTEM_CACHE_THRESHOLD, KEY_RELAXED_ALIAS_CHECKING, - KEY_OLD_SET_CLAUSE_SEMANTICS, KEY_TRACE_CONFIG, KEY_MAX_TRACELOG_SIZE, KEY_FILESYSTEM_CACHE_SIZE, @@ -326,8 +325,6 @@ static bool getRelaxedAliasChecking(); - static bool getOldSetClauseSemantics(); - static const char* getAuditTraceConfigFile(); static int getMaxUserTraceLogSize(); Modified: firebird/trunk/src/dsql/StmtNodes.cpp =================================================================== --- firebird/trunk/src/dsql/StmtNodes.cpp 2012-07-11 05:26:28 UTC (rev 54712) +++ firebird/trunk/src/dsql/StmtNodes.cpp 2012-07-11 12:54:08 UTC (rev 54713) @@ -5278,8 +5278,6 @@ thread_db* tdbb = JRD_get_thread_data(); // necessary? MemoryPool& pool = getPool(); - const bool isUpdateSqlCompliant = !Config::getOldSetClauseSemantics(); - // Separate old and new context references. Array<NestConst<ValueExprNode> > orgValues, newValues; @@ -5306,29 +5304,19 @@ { node->dsqlContext = dsqlPassCursorContext(dsqlScratch, dsqlCursorName, relation); - if (isUpdateSqlCompliant) - { - // Process old context values. - dsqlScratch->context->push(node->dsqlContext); - ++dsqlScratch->scopeLevel; + // Process old context values. + dsqlScratch->context->push(node->dsqlContext); + ++dsqlScratch->scopeLevel; - for (ptr = orgValues.begin(); ptr != orgValues.end(); ++ptr) - *ptr = doDsqlPass(dsqlScratch, *ptr, false); + for (ptr = orgValues.begin(); ptr != orgValues.end(); ++ptr) + *ptr = doDsqlPass(dsqlScratch, *ptr, false); - --dsqlScratch->scopeLevel; - dsqlScratch->context->pop(); - } + --dsqlScratch->scopeLevel; + dsqlScratch->context->pop(); // Process relation. doDsqlPass(dsqlScratch, node->dsqlRelation, relation, false); - if (!isUpdateSqlCompliant) - { - // Process old context values. - for (ptr = orgValues.begin(); ptr != orgValues.end(); ++ptr) - *ptr = doDsqlPass(dsqlScratch, *ptr, false); - } - // Process new context values. for (ptr = newValues.begin(); ptr != newValues.end(); ++ptr) *ptr = doDsqlPass(dsqlScratch, *ptr, false); @@ -5374,13 +5362,6 @@ doDsqlPass(dsqlScratch, node->dsqlRelation, relation, false); dsql_ctx* mod_context = dsqlGetContext(node->dsqlRelation); - if (!isUpdateSqlCompliant) - { - // Process old context values. - for (ptr = orgValues.begin(); ptr != orgValues.end(); ++ptr) - *ptr = doDsqlPass(dsqlScratch, *ptr, false); - } - // Process new context values. for (ptr = newValues.begin(); ptr != newValues.end(); ++ptr) *ptr = doDsqlPass(dsqlScratch, *ptr, false); @@ -5430,12 +5411,9 @@ node->dsqlRse = rse; - if (isUpdateSqlCompliant) - { - // Process old context values. - for (ptr = orgValues.begin(); ptr != orgValues.end(); ++ptr) - *ptr = doDsqlPass(dsqlScratch, *ptr, false); - } + // Process old context values. + for (ptr = orgValues.begin(); ptr != orgValues.end(); ++ptr) + *ptr = doDsqlPass(dsqlScratch, *ptr, false); dsqlScratch->context->pop(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fir...@us...> - 2012-07-12 04:29:45
|
Revision: 54714 http://firebird.svn.sourceforge.net/firebird/?rev=54714&view=rev Author: firebirds Date: 2012-07-12 04:29:39 +0000 (Thu, 12 Jul 2012) 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 2012-07-11 12:54:08 UTC (rev 54713) +++ firebird/trunk/ChangeLog 2012-07-12 04:29:39 UTC (rev 54714) @@ -1,3 +1,10 @@ + 2012-07-11 12:54 dimitr + M builds/install/misc/firebird.conf.in + M src/common/config/config.cpp + M src/common/config/config.h + M src/dsql/StmtNodes.cpp +Wiped out the legacy compatibility option. + 2012-07-11 01:56 asfernandes M doc/sql.extensions/README.builtin_functions.txt M src/common/os/guid.h Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-07-11 12:54:08 UTC (rev 54713) +++ firebird/trunk/src/jrd/build_no.h 2012-07-12 04:29:39 UTC (rev 54714) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30028 + FORMAL BUILD NUMBER:30029 */ -#define PRODUCT_VER_STRING "3.0.0.30028" -#define FILE_VER_STRING "WI-T3.0.0.30028" -#define LICENSE_VER_STRING "WI-T3.0.0.30028" -#define FILE_VER_NUMBER 3, 0, 0, 30028 +#define PRODUCT_VER_STRING "3.0.0.30029" +#define FILE_VER_STRING "WI-T3.0.0.30029" +#define LICENSE_VER_STRING "WI-T3.0.0.30029" +#define FILE_VER_NUMBER 3, 0, 0, 30029 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30028" +#define FB_BUILD_NO "30029" #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 2012-07-11 12:54:08 UTC (rev 54713) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-07-12 04:29:39 UTC (rev 54714) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30028 +BuildNum=30029 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...> - 2012-07-13 04:30:46
|
Revision: 54718 http://firebird.svn.sourceforge.net/firebird/?rev=54718&view=rev Author: firebirds Date: 2012-07-13 04:30:40 +0000 (Fri, 13 Jul 2012) 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 2012-07-12 06:35:28 UTC (rev 54717) +++ firebird/trunk/ChangeLog 2012-07-13 04:30:40 UTC (rev 54718) @@ -1,3 +1,7 @@ + 2012-07-12 06:35 robocop + M doc/README.services_extension +Misc. + 2012-07-11 12:54 dimitr M builds/install/misc/firebird.conf.in M src/common/config/config.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-07-12 06:35:28 UTC (rev 54717) +++ firebird/trunk/src/jrd/build_no.h 2012-07-13 04:30:40 UTC (rev 54718) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30029 + FORMAL BUILD NUMBER:30030 */ -#define PRODUCT_VER_STRING "3.0.0.30029" -#define FILE_VER_STRING "WI-T3.0.0.30029" -#define LICENSE_VER_STRING "WI-T3.0.0.30029" -#define FILE_VER_NUMBER 3, 0, 0, 30029 +#define PRODUCT_VER_STRING "3.0.0.30030" +#define FILE_VER_STRING "WI-T3.0.0.30030" +#define LICENSE_VER_STRING "WI-T3.0.0.30030" +#define FILE_VER_NUMBER 3, 0, 0, 30030 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30029" +#define FB_BUILD_NO "30030" #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 2012-07-12 06:35:28 UTC (rev 54717) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-07-13 04:30:40 UTC (rev 54718) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30029 +BuildNum=30030 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...> - 2012-07-16 04:23:34
|
Revision: 54723 http://firebird.svn.sourceforge.net/firebird/?rev=54723&view=rev Author: firebirds Date: 2012-07-16 04:23:28 +0000 (Mon, 16 Jul 2012) 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 2012-07-15 12:43:32 UTC (rev 54722) +++ firebird/trunk/ChangeLog 2012-07-16 04:23:28 UTC (rev 54723) @@ -1,3 +1,11 @@ + 2012-07-15 12:43 dimitr + M src/jrd/btr.cpp +Calculate the index statistics correctly for very large tables. + + 2012-07-14 21:26 hvlad + M src/lock/lock.cpp +Fixed AV in LM after remapping of shared memory + 2012-07-12 06:35 robocop M doc/README.services_extension Misc. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-07-15 12:43:32 UTC (rev 54722) +++ firebird/trunk/src/jrd/build_no.h 2012-07-16 04:23:28 UTC (rev 54723) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30030 + FORMAL BUILD NUMBER:30032 */ -#define PRODUCT_VER_STRING "3.0.0.30030" -#define FILE_VER_STRING "WI-T3.0.0.30030" -#define LICENSE_VER_STRING "WI-T3.0.0.30030" -#define FILE_VER_NUMBER 3, 0, 0, 30030 +#define PRODUCT_VER_STRING "3.0.0.30032" +#define FILE_VER_STRING "WI-T3.0.0.30032" +#define LICENSE_VER_STRING "WI-T3.0.0.30032" +#define FILE_VER_NUMBER 3, 0, 0, 30032 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30030" +#define FB_BUILD_NO "30032" #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 2012-07-15 12:43:32 UTC (rev 54722) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-07-16 04:23:28 UTC (rev 54723) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30030 +BuildNum=30032 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...> - 2012-07-17 04:19:42
|
Revision: 54726 http://firebird.svn.sourceforge.net/firebird/?rev=54726&view=rev Author: firebirds Date: 2012-07-17 04:19:36 +0000 (Tue, 17 Jul 2012) 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 2012-07-16 10:43:27 UTC (rev 54725) +++ firebird/trunk/ChangeLog 2012-07-17 04:19:36 UTC (rev 54726) @@ -1,3 +1,7 @@ + 2012-07-16 10:40 alexpeshkoff + M src/utilities/fbsvcmgr/fbsvcmgr.cpp +Removed debugging code + 2012-07-15 12:43 dimitr M src/jrd/btr.cpp Calculate the index statistics correctly for very large tables. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-07-16 10:43:27 UTC (rev 54725) +++ firebird/trunk/src/jrd/build_no.h 2012-07-17 04:19:36 UTC (rev 54726) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30032 + FORMAL BUILD NUMBER:30033 */ -#define PRODUCT_VER_STRING "3.0.0.30032" -#define FILE_VER_STRING "WI-T3.0.0.30032" -#define LICENSE_VER_STRING "WI-T3.0.0.30032" -#define FILE_VER_NUMBER 3, 0, 0, 30032 +#define PRODUCT_VER_STRING "3.0.0.30033" +#define FILE_VER_STRING "WI-T3.0.0.30033" +#define LICENSE_VER_STRING "WI-T3.0.0.30033" +#define FILE_VER_NUMBER 3, 0, 0, 30033 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30032" +#define FB_BUILD_NO "30033" #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 2012-07-16 10:43:27 UTC (rev 54725) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-07-17 04:19:36 UTC (rev 54726) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30032 +BuildNum=30033 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...> - 2012-07-19 04:26:34
|
Revision: 54731 http://firebird.svn.sourceforge.net/firebird/?rev=54731&view=rev Author: firebirds Date: 2012-07-19 04:26:27 +0000 (Thu, 19 Jul 2012) 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 2012-07-19 01:52:38 UTC (rev 54730) +++ firebird/trunk/ChangeLog 2012-07-19 04:26:27 UTC (rev 54731) @@ -1,3 +1,9 @@ + 2012-07-19 01:52 asfernandes + M src/include/gen/msgs.h + M src/lock/print.cpp + M src/msgs/messages2.sql +Misc. + 2012-07-16 10:40 alexpeshkoff M src/utilities/fbsvcmgr/fbsvcmgr.cpp Removed debugging code Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-07-19 01:52:38 UTC (rev 54730) +++ firebird/trunk/src/jrd/build_no.h 2012-07-19 04:26:27 UTC (rev 54731) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30033 + FORMAL BUILD NUMBER:30034 */ -#define PRODUCT_VER_STRING "3.0.0.30033" -#define FILE_VER_STRING "WI-T3.0.0.30033" -#define LICENSE_VER_STRING "WI-T3.0.0.30033" -#define FILE_VER_NUMBER 3, 0, 0, 30033 +#define PRODUCT_VER_STRING "3.0.0.30034" +#define FILE_VER_STRING "WI-T3.0.0.30034" +#define LICENSE_VER_STRING "WI-T3.0.0.30034" +#define FILE_VER_NUMBER 3, 0, 0, 30034 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30033" +#define FB_BUILD_NO "30034" #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 2012-07-19 01:52:38 UTC (rev 54730) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-07-19 04:26:27 UTC (rev 54731) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30033 +BuildNum=30034 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...> - 2012-07-20 04:28:31
|
Revision: 54734 http://firebird.svn.sourceforge.net/firebird/?rev=54734&view=rev Author: firebirds Date: 2012-07-20 04:28:25 +0000 (Fri, 20 Jul 2012) 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 2012-07-20 02:41:58 UTC (rev 54733) +++ firebird/trunk/ChangeLog 2012-07-20 04:28:25 UTC (rev 54734) @@ -1,3 +1,20 @@ + 2012-07-20 02:41 asfernandes + M src/dsql/BlrWriter.cpp + M src/dsql/BlrWriter.h + M src/dsql/DdlNodes.h + M src/dsql/DsqlCompilerScratch.h + M src/dsql/StmtNodes.cpp + M src/dsql/ddl.cpp + M src/dsql/dsql.cpp + M src/dsql/dsql.h +Fixed CORE-3893 - Cannot restore tpcc database in FB 3.0. + + 2012-07-19 07:49 alexpeshkoff + M src/include/gen/msgs.h + M src/jrd/svc.cpp + M src/msgs/messages2.sql +Misc diags + 2012-07-19 01:52 asfernandes M src/include/gen/msgs.h M src/lock/print.cpp Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-07-20 02:41:58 UTC (rev 54733) +++ firebird/trunk/src/jrd/build_no.h 2012-07-20 04:28:25 UTC (rev 54734) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30034 + FORMAL BUILD NUMBER:30036 */ -#define PRODUCT_VER_STRING "3.0.0.30034" -#define FILE_VER_STRING "WI-T3.0.0.30034" -#define LICENSE_VER_STRING "WI-T3.0.0.30034" -#define FILE_VER_NUMBER 3, 0, 0, 30034 +#define PRODUCT_VER_STRING "3.0.0.30036" +#define FILE_VER_STRING "WI-T3.0.0.30036" +#define LICENSE_VER_STRING "WI-T3.0.0.30036" +#define FILE_VER_NUMBER 3, 0, 0, 30036 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30034" +#define FB_BUILD_NO "30036" #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 2012-07-20 02:41:58 UTC (rev 54733) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-07-20 04:28:25 UTC (rev 54734) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30034 +BuildNum=30036 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...> - 2012-07-23 05:14:44
|
Revision: 54736 http://firebird.svn.sourceforge.net/firebird/?rev=54736&view=rev Author: firebirds Date: 2012-07-23 04:33:47 +0000 (Mon, 23 Jul 2012) 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 2012-07-22 01:42:19 UTC (rev 54735) +++ firebird/trunk/ChangeLog 2012-07-23 04:33:47 UTC (rev 54736) @@ -1,3 +1,7 @@ + 2012-07-22 01:42 asfernandes + M src/dsql/DdlNodes.epp +Fixed CORE-3894 - Wrong numbers in error message for decreasing char/varchar columns. + 2012-07-20 02:41 asfernandes M src/dsql/BlrWriter.cpp M src/dsql/BlrWriter.h Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-07-22 01:42:19 UTC (rev 54735) +++ firebird/trunk/src/jrd/build_no.h 2012-07-23 04:33:47 UTC (rev 54736) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30036 + FORMAL BUILD NUMBER:30037 */ -#define PRODUCT_VER_STRING "3.0.0.30036" -#define FILE_VER_STRING "WI-T3.0.0.30036" -#define LICENSE_VER_STRING "WI-T3.0.0.30036" -#define FILE_VER_NUMBER 3, 0, 0, 30036 +#define PRODUCT_VER_STRING "3.0.0.30037" +#define FILE_VER_STRING "WI-T3.0.0.30037" +#define LICENSE_VER_STRING "WI-T3.0.0.30037" +#define FILE_VER_NUMBER 3, 0, 0, 30037 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30036" +#define FB_BUILD_NO "30037" #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 2012-07-22 01:42:19 UTC (rev 54735) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-07-23 04:33:47 UTC (rev 54736) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30036 +BuildNum=30037 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...> - 2012-07-24 04:28:53
|
Revision: 54741 http://firebird.svn.sourceforge.net/firebird/?rev=54741&view=rev Author: firebirds Date: 2012-07-24 04:28:46 +0000 (Tue, 24 Jul 2012) 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 2012-07-23 15:29:40 UTC (rev 54740) +++ firebird/trunk/ChangeLog 2012-07-24 04:28:46 UTC (rev 54741) @@ -1,3 +1,12 @@ + 2012-07-23 15:29 mkubecek + M builds/install/arch-specific/linux/misc/firebird.xinetd.in +Use firebird instead of fb_smp_server in xinetd config template + + 2012-07-23 09:48 hvlad + M src/jrd/exe.cpp + M src/jrd/tra.h +Fixed bug CORE-3895 : High memory usage when PSQL code SELECT's from stored procedure which modified some data + 2012-07-22 01:42 asfernandes M src/dsql/DdlNodes.epp Fixed CORE-3894 - Wrong numbers in error message for decreasing char/varchar columns. Modified: firebird/trunk/src/jrd/build_no.h =================================================================== --- firebird/trunk/src/jrd/build_no.h 2012-07-23 15:29:40 UTC (rev 54740) +++ firebird/trunk/src/jrd/build_no.h 2012-07-24 04:28:46 UTC (rev 54741) @@ -3,16 +3,16 @@ *** DO NOT EDIT *** TO CHANGE ANY INFORMATION IN HERE PLEASE EDIT src/misc/writeBuildNum.sh - FORMAL BUILD NUMBER:30037 + FORMAL BUILD NUMBER:30039 */ -#define PRODUCT_VER_STRING "3.0.0.30037" -#define FILE_VER_STRING "WI-T3.0.0.30037" -#define LICENSE_VER_STRING "WI-T3.0.0.30037" -#define FILE_VER_NUMBER 3, 0, 0, 30037 +#define PRODUCT_VER_STRING "3.0.0.30039" +#define FILE_VER_STRING "WI-T3.0.0.30039" +#define LICENSE_VER_STRING "WI-T3.0.0.30039" +#define FILE_VER_NUMBER 3, 0, 0, 30039 #define FB_MAJOR_VER "3" #define FB_MINOR_VER "0" #define FB_REV_NO "0" -#define FB_BUILD_NO "30037" +#define FB_BUILD_NO "30039" #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 2012-07-23 15:29:40 UTC (rev 54740) +++ firebird/trunk/src/misc/writeBuildNum.sh 2012-07-24 04:28:46 UTC (rev 54741) @@ -9,7 +9,7 @@ MajorVer=3 MinorVer=0 RevNo=0 -BuildNum=30037 +BuildNum=30039 NowAt=`pwd` cd `dirname $0` This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |