Version 4.1.1 --------------- 1. Date of change: 09.08.2000 Fixed memory problem in slave server related to ExTradeRecord. This problem was exposed by a query sent by Brian Leo that crosses up and down. This caused the slave to crash when run in bmim. 2. Date of change: 09.20.2000 Couldn't read tick by tick data in the rtd store. (This was the funny '&' use in getObjectV()). This should now be fixed. 3. Date of change: 09.25.2000 Some rollover bugs that Shannon fixed. Version 4.1.2 --------------- 1. Date of change: 09.27.2000 Fixed problem with rollover. The backwards adjust combined with a nearby > 1 was not using the right adjustments. 2. Date of change: 09.29.2000 Fixed problem with XmimPutRecords (in the server) Version 4.1.3 --------------- 1. Date of change: 10.02.2000 Fixed a problem with XmimPutRecords (in the server) 2. Date of change: 10.06.2000 Fixed problem with within calendar Version 4.1.4 -------------------------- 1. Date of change: 10.17.2000 Changed a routine used by get_records() from a linear search to a binary search. 2. Date of change: 10.20.2000 Made changes in the library to improve tick performance. 3. Date of change: 10.20.2000 Corrected several bugs in rtd storage. Version 4.1.5 -------------------------- 1. Version 4.1.6 -------------------------- 1. Date of change: 12.06.2000 Changed bmim_client so that you can now narrow using ~ (instead of /home/stephen, for example.) 2. Date of change: 12.06.2000 Changed the output reporter for XML. It is still possibly leaving trash after the final closing tag. Version 4.1.7 -------------------------- 1. Fixed bug with Master/Dedicated Writer (multiple writers were causing problems.) Version 4.1.8 -------------------------- 1. Date of change: 1.05.2001 Fixed memory problems in tick rollover computations. 2. Date of change: 1.17.2001 Fixed problem with multiple writers. (two bmim_clients locking/unlocking caused a client handle already in use error.) Version 4.1.9 -------------------------- 1. Date of change: 1.28.2001 Fixed bug in MakeRPCCall() when slave crashed during stateful operation. 2. Date of change: 1.28.2001 Added roll date rule to print_relation output from bmim_client 3. Date of change: 2.2.2001 Fixed memory problems with UtilTimePeriod (I believe this was causing slave to crash for Steve G. @ dynegy) Version 4.1.10 -------------------------- 1. Date of change: 3.7.2001 (Stephen) Fixed bug in the library. It wasn't sending client state info to the 4091 server after unlocking, then relocking. 2. Date of change: 3.8.2001 (Stephen) Changed MIM so it checks size of data files before allocating more space. The limit is 2 GB. 3. Date of change: 3.19.2001 (Stephen) Plugged a some small leaks. 4. Date of change: 3.19.2001 Geoffrey He fixed Volume Crossover bug 5. Date of change: 3.19.2001 Geoffrey He fixed bug where graphics options weren't saved in query 6. Date of change: 3.20.2001 Geoffrey He fixed bug with conversion between miltary time and am/pm. 7. Date of change: 3.23.2001 Geoffrey He fixed rollover policy bug which rollover policy contracts are different from roolover date contracts 8. Date of change: 3.20.2001 (Stephen) Plugged big leak in intraday TimeSeriesbig 9. Date of change: 3.26.2001 (Stephen) facts_read now reports line number of .prn when a parse error occurs. 10. Date of change: 4.03.2001 (Stephen) Fixed the server so it now calls msynch with appropriate pagesize values. Version 4.1.11 -------------------------- 1. Date of change: 4.5.2001 (Geoffrey He) Fixed set default date format problem. Add new environment variable XMIM_LOCALE. The value is UK or US. 2. Date of change: 4.18.2001 (Geoffrey He) Fixed Order query trade group unit price bug 3. Date of change: 5.10.2001 (Geoffrey He) Fixed rollover on last trade day bug 4. Date of change: 5.10.2001 (Geoffrey He) Fixed mimdbcp copy integer data bug 5. Date of change: 5.30.2001 (Stephen) Made optimization in ts_iterator.C (cmpCursor calls were redundant) 6. Date of change: 5.31.2001 (Stephen) Fixed bug with XML error handling 7. Date of change: 6.11.2001 (SLongo) Added REC_SIZE argument to XmimVaPutRecords() 8. Date of change: 6.12.2001 (SLongo) Took out the MSYNC code Version 4.1.12 -------------------------- 1. Changed bmim_client -d command so it now narrows (stephen) instead of setting widest list. 2. Changed XmimPutRecords library code. It wasn't (stephen) getting the rec_size from the server if it wasn't specified in the API call. 3. Changed make_def_daily_file, make_def_intraday_file, (Geoffrey) and make_def_tick_file so relative path can be used. 4. Removed some prints and fixed bug in xml routines. (stephen) Version 4.1.13 -------------------------- 1. Date of change: 7.26.2001 Fixed memory leak in facts_read. (Stephen) Version 4.1.14 -------------------------- 1. Date of change: 8.29.2001 Fixed the Bar column in column list problem. (Geoffrey He) 2. Date of change: 9.11.2001 Added -d option for units_measure_load and modify_trade_pattern (Stephen) 3. Date of change: 9.14.2001 Fixed the api double truncated to float problem. (Geoffrey He) Version 4.1.15 -------------------------- 1. Date of change: 9.24.2001 Fixed the space allocation problem, so version number won't be corrupted. (Geoffrey He) Version 4.1.16 -------------------------- 1. Date of change: 10.08.2001 Fixed bug in file manager that corrupted time series. (Stephen) Version 4.1.17 -------------------------- 1. Date of change: 10.18.2001 Fixed bug in xmim_client that make wrong fake category. (Geoffrey) Version 4.1.18 -------------------------- 1. Date of change: 10.20.2001 New query XML syntax added Version 4.1.19 -------------------------- 1. Date of change: 10.26.2001 Changed report so it lists only the filename and not the fullpath Version 4.1.20 -------------------------- 1. Date of change: 10.31.2001 Added new schema XML syntax for trading pattern and futures information. (lisa) 2. Date of change: 11.5.2001 (Geoffrey He) Fixed the "nearby backward adjusted prices" roll over problem. 3. Date of change: 10.29.2001 Fixed a graph options bug. Version 4.1.21 -------------------------- 1. Date of change: 11.123.2001 (Geoffrey HE) Fixed the stop loss trail bug 2. Date of change: 11.12.2001 (Stephen) Fixed a bug in query_execute when using "%exec.holidayschedule: yes" Version 4.1.22 -------------------------- 1. Date of change: 11.16.2001 (Geoffrey He) Fixed the Profit/Loss trade report problems. Version 4.1.23 -------------------------- 1. Date of change: 12.6.2001 (Geoffrey He) Add lock database check user feature. Version 4.1.24 -------------------------- 1. Date of change: 12.13.2001 (Geoffrey He) Fix MACRO SECURITY rollover bug. 2. Date of change: 12.17.2001 (Stephen) Fixed XmimUpdateCurrentTick() so that multiple relation-columns can be inserted at once. Version 4.1.25 -------------------------- 1. Date of change: 12.20.2001 (Stephen) Undo of locking changes. 2. Date of change: 12.20.2001 (Geoffrey He) Fix slave 4091 still running after lock failure bug. Version 4.1.26 -------------------------- 1. Date of change: 12.26.2001 (Geoffrey He) Fixed bug where users were unable to lock the MIM database unless it had permissions set to 777. With the fix, users should be able to lock a database with permissions set to the default 755. Version 4.1.27 -------------------------- 1. Incident ID: none, Date of change: 01.03.2001 (Stephen) Added "rtdChecking" option for .xmimrc to enable/disable rtd checking. 2. Incident ID: 2091, Date of change: 01.04.2001 (Stephen & Lisa) Fixed problem with bmim scripts so trade times can now include seconds. This allows user to load a complete day's worth of 24-hour tick data without losing the last minute of the day (before midnight). Version 4.1.28 -------------------------- 1. Incident ID: 1818, Date of change: 01.08.2002 (Geoffrey He) Fix the %exec.skip option bug. Version 4.1.29 -------------------------- 1. Incident ID: 1589, Date of change: 01.18.2002 (Geoffrey He) Bmim delete_facts will check date syntax. If there is syntax error, delete_facts won't delete any data. If other Bmim commands have syntax error, Bmim won't execute that command. ***BUG IN LIBXMIM.A and LIBXMIM.SO FILES. Causes XmimGetRecords to fail. Version 4.1.30 -------------------------- 1. Incident ID: 2406, Date of change: 01.25.2002 (Stephen) Passing XMIM_INVALID_DATE into XmimGetRecords wasn't working. XmimGetRecords() is supposed to return all data if the date range is "invalid". (This fixes the bug found in 4.1.29) 2. Incident ID: 2414, Date of change: 01.28.2002 (Stephen) In facts read, an invalid relation's data was being loaded into the previous valid relation. 3. Incident ID: 2385, Date of change: 01.25.2002 (Lisa) Updated ent_tool. Version 4.1.31 -------------------------- 1. Incident ID: 2251, Date of change: 01.29.2002 (Lisa) Fix default column names to work correctly in MIM 4. They were partially broken during the conversion from MIM 3 to 4. New default column behavior for MIM 4 is to look for "_Implicit_", then "Close", then find the first column that has the correct units for the query. Old default column behavior for MIM 3 was to look for "_Implicit_", then "Close", then if the relation had only one column, use that column as a default column. Default column names are used when the user specifies a relation name in a query without a column name. Example: "SHOW 1: HOUSTON.TX" is now equivalent to "SHOW 1: HighTemp of HOUSTON.TX" Example: "SHOW 1: IBM" is (and was) equivalent to "SHOW 1: Close of IBM" Version 4.1.32 -------------------------- 1. Incident ID: 2468, Date of change: 01.30.2002 (Lisa) Fixed Aliases so that we can find the columns of an aliased relation. Also, since an Alias can't have a description, I fixed the Alias' description to be that of the real relation. 2. Incident ID: 1632, Date of change: 01.31.2002 (Geoffrey He) Fix some bugs with stop-loss and trail stop-loss. Stop-loss and trail stop-loss can now distinguish buy -vs- sell, and trigger the stop according to the type of trade. Also, price is now used as the "gauge" for the stops. 3. Incident ID: 2476, Date of change: 02.04.2002 (Stephen) Changed XmimConnect() so it pings the server before attempting to connect. This will allow XmimConnect() to return immediately when the server is not running (instead of waiting.) 4. Incident ID: 2531, Date of change: 02.05.2002 (Lisa) get Relation Info for "NG_1999F" from Java API via XML caused a Java "NumberFormatException" because of an invalid date format in the XML returned by the MIM server. Fixed MIM server XML generation to use correct date formats (YYYYMMDD) for futures-expiration-date and futures-first-notice-date tags. (Java API did not need fixing) 5. Incident ID: 2566, Date of change: 02.13.2002 (Lisa) XML generation was not getting any units-conversion information from the MimicUM_RelColConversions or the MimicUM_OnlyRelColConversions tables. Fixed the code to check these two tables in addition to MimicUM_Conversions table, which it was already reading. 6. Incident ID: 1816, Date of change: 02.13.2002 (Geoffrey He) Check and Format duplicate comment and delete comment bug is fixed. This problem also occurs when switching from Advanced Mode to Normal Mode. 7. Incident ID: 2735, Date of change: 02.20.2002 (Geoffrey He) Fix short buy stop_entry and limit bug. This bug is found from query for trail stop-loss. Version 4.1.33 -------------------------- 1. Incident ID: 2807, Date of change: 03.02.2002 (Stephen) Fix for macd and macd_osc builtins. If starting date of query was before starting date of timeseries, exponential average was computed incorrectly. 2. Incident ID: none, Date of change: 02.26.2002 (Shannon) MIMIC password changes. 3. Incident ID: 2650, Date of change: 03.02.2002 (Lisa) Added db_catalog to the build / release. 4. Incident ID: 2710,2877, Date of change: 02.26.2002 (Stephen) Changed logging so it sends just one message to the logfile after a command has finished. Before, it was logging a "pre" and "post" message whenever a command was executed. This caused problems trying to parse the log file when messages from different slaves were interleaved. 5. Incident ID: none, Date of change: 02.26.2002 (Stephen) Made change so XmimPutRecords() can put data if RTD (real tick data) exists for the relcol. (Stephen found this bug while working on RTD folding). Version 4.1.34 -------------------------- 1. Incident ID: none, Date of change: 03.04.2002 (S. Longo) Removed space as a delimiter from units_measure_load. It causes a problem with formulas in the file. (spaces were added in 4.1.32) Version 4.1.35 -------------------------- 1. Incident ID: 2796, Date of change: 03.05.2002 (Geoffrey He) %exec.uniondate option is added. If this option is set, the Show/When query result dates is union of two time series. Default is intersection. 2. Incident ID: 2435, Date of change: 03.05.2002 (Stephen) Fixed bug when entitlements were used with multiple databases. Fixed bug in BmimServerEnd::setUserName(). It cached the user privileges and this caused problems with multiple databases. It now recomputes privileges when doing a facts_read. Also, changed the error message (that notifies the user of unauthorized reads/writes) to include the database name. 3. Incident ID: none, Date of change: 03.05.2002 (Shannon) Added mim_touch utility. 4. Incident ID: none, Date of change: 03.05.2002 (S. Longo) Fixed problem with loading a file into the Excel_password table. Version 4.1.36 -------------------------- DEPENDENCIES: a) NT Client Apps will need new DLL files: (includes C/API, VB/API, Excel Add-In, Mimic, Java API JNI Adaptor) b) Solaris users of the Java API JNI Adaptor should NOT need to re-build their libXmimNativeApi.so file 1. Incident ID: 2796, Date of change: 03.12.2002 (Geoffrey He) %exec.uniondate option is added to XMIM client GUI. This option can be set and reset in GUI. 2. Incident ID: 2990,2954 Date of change: 03.13.2002 (Stephen) Null pointer was being dereferenced in XmimLockDatabase(), causing bmim to crash. 3. Incident ID: 2865, Date of change: 03.18.2002 (Geoffrey He) verbose option is added to bmim print_schema command. 4. Incident ID: 2990, Date of change: 03.19.2002 (Stephen) Changed master server so it will wait for the 4091 to go down. However, if it takes longer than 10 seconds, it will no longer wait. 5. Incident ID: 3016,3054 Date of change: 03.19.2002 (Lisa, S. Longo) Added XMIM_UNION_DATE option to XmimVaSelectRecords(). XMIM_UNION_DATE is an integer option, whose values are 0 or 1: 0 = no (the default), or 1 = yes. 6. Incident ID: 2995, Date of change: 03.20.2002 (Geoffrey He) Stop_loss works for short. 7. Incident ID: none, Date of changes: 03.21.2002 (Lisa, S. Longo) Added client DLL files to the /home/lim/xmim/lib directory Version 4.1.37 -------------------------- 1. Incident ID: 3074, Date of change: 03.26.2002 (Geoffrey He) Two new European date formats were added for the XMIM client. The new formats are dd/mm/yy and dd/mm/yyyy. If the Unix environment variable XMIM_LOCALE is set to EU, the default date format will be dd/mm/yyyy. Here is help on how to set XMIM_LOCALE for ksh and csh respectively: export XMIM_LOCALE=EU setenv XMIM_LOCALE EU 2. Incident ID: 2413, Date of change: 04.05.2002 (Lisa) Major changes to the lock-database permissions algorithm. Here is the new algorithm sequence: a) if write-permissions for the db-file are not turned on for the database owner, nobody will be allowed to lock the database. b) if Write-permission on db-file is turned on for "Others", anyone will be allowed to lock the database. c) if the database owner has write-permissions to the database, allow the database owner to lock the database when connecting to and from the MIM server host. d) all other users that need lock-database permissions must be added to a new file called "xmimlock.acl" (acl=access control list). The new xmimlock.acl file resides in the database schema directory. An example pathname for xmimlock.acl is: /home/lisa/data/xmimlock.acl where the database file pathname is: /home/lisa/data/xmim.mim The syntax for an xmimlock.acl file entry is: username[@IP|@host] where IP is in the form: x.x.x.x[/n] where /n is the netmask. Without a netmask, an IP refers to a specific host. With the netmask, an IP can refer to a network. Here are some example entries for the xmimlock.acl file: lisa@matrix lisa@12.43.227.00/24 lisa@12.43.227.45 geoffrey lim After modifying the xmimlock.acl file, the MIM server does not need to be restarted in order for the changes to take affect. 3. Incident ID: 2968, Date of change: 04.08.2002 (Geoffrey He) Fixed bug that was preventing P&L/Order queries from being entered "n days ago". 4. Incident ID: 3284, Date of change: 04.09.2002 (Lisa) Fixed "../../libxmim-sol.so not found" problem in mimic_passwd, mim_touch, and mimdbcp applications. Problem was that 'ldd' for those apps referenced ../../libxmim-sol.so. Build was incorrect for those apps. 5. Incident ID: 3246, Date of change: 04.09.2002 (Stephen & Shannon) Fixed seg'v in master server. The master was referencing an already freed pointer causing memory problems, and ultimately a SIGBUS error. 6. Incident ID: 3246, Date of change: 04.09.2002 (Stephen) Fixed seg'v in xmim_slave_server. Examining a core file revealed where a NULL pointer was being dereferenced. This should now be fixed. 7. Incident ID: 2140, Date of change: 04.09.2002 (Lisa) Added "trading_pattern" argument to bmim relation_add and relation_modify commands. Example bmim script using trading_pattern: ======================================== lock_files relation_add { name = NEW_ONE; parent = TopRelation; trading_pattern = MTWHFSD; description = "new relation"; } relation_modify IBM { trading_pattern = MTWHF; } unlock_files ========================================= 8. Incident ID: 2140, Date of change: 04.12.2002 (Lisa) Added getTradingInfo utility to the install list. 9. Incident ID: 3326, Date of change: 04.12.2002 (Lisa) Updated bmim code so that system calls to modify_trade_pattern from bmim scripts are now translated to invoke the (new) bmim logic to modify the trade pattern via bmim_mod_relation(). This way, modify_trade_pattern commands inside of bmim scripts will always operate on the same list of db's (and obey the same rules) as the rest of the commands in the bmim script. 10. Incident ID: 3344, Date of change: 04.12.2002 (Lisa & S.Longo) Fixed bug in FillOptInRange in api_lib_util.h, per Shannon. 11. Incident ID: 2367, Date of change: 04.15.2002 (Lisa) Portability changes to C/API. 12. Incident ID: 2388, Date of change: 04.17.2002 (Lisa) Add libxmim-tarball.tar file to our build/install directory. 13. Incident ID: 3323, Date of change: 04.17.2002 (Stephen) Fixed race condition introduced in master server that was introduced in version 4.1.36 Version 4.1.38 -------------------------- 1. Incident ID: 2997, Date of change: 04.22.2002 (Geoffrey He) Trade will exit at reverse position trade start date not enter date. 2. Incident ID: 3599, Date of change: 04.22.2002 (Stephen) Added -q option to xmim_svr_info. 3. Incident ID: 3466, Date of change: 04.24.2002 (Lisa) Added xmim_find application to the build / install. 4. Incident ID: 3257, Date of change: 04.25.2002 (Geoffrey He) Out of data range date value is Nan. 5. Incident ID: 3527, Date of change: 04.25.2002 (Lisa) Added xmim_get application to the build / install. 6. Incident ID: 3600, Date of change: 04.25.2002 (Stephen) Added custom/custom1.spc and custom/libcustom1.so to the build and install. 7. Incident ID: 3251, Date of change: 04.26.2002 (Toms) Added the functionality to cancel a query. Currently, this feature is only provided for the MIM Excel add-in. 8. Incident ID: 3567, Date of change: 04.30.2002 (Lisa) Changed the new union-date argument for XmimVaSelectRecords() API server layer be backwards-compatible with old client DLL's, etc. 9. Incident ID: 3628, Date of change: 05.02.2002 (Stephen) Fixed probable cause of server core dump in 4.1.37. Null pointer was dereferenced in server_wrapper::kill_and_reply() method. Version 4.1.39 -------------------------- 1. Incident ID: 3987, Date of change: 06.12.2002 (Geoffrey) xmim_client fake relation category bug is fixed. XMIM client was looping infinitely (hanging) when trying to display relations for certain categories. 2. Incident ID: none, Date or change: 06.13.2002 (Lisa) changed name of executable from getTradingInfo to xmim_trading_info in the build. 3. Incident ID: 3796, Date of change: 05.24.2002 (Geoffrey) Percentage (%) syntax is now supported correctly in trail stop loss for P&L / Order queries. 4. Incident ID: 2296, Date of change: 06.10.2002 (Geoffrey) C/API XmimVaGetRecordsRollOver() 1 day move bug is fixed. This bug was causing the C/API to calculate the Daily move differently from bmim_client. Version 4.1.40 -------------------------- 1. Incident ID: 4118. Date of change: 06.20.2002 (Stephen) Fixed bug in CoLetRollover. When using multiple databases, the single schema that was selected was not necessarily the right one. Version 4.1.41 -------------------------- 1. Incident ID: 3549, Date of change: 06.26.2002 (Shannon) Allow Mimic_password and Excel_password to be readable from a read-only database on the file system: e.g. a development system mounting a production database read-only file system mode. Version 4.1.42 -------------------------- 1. Incident ID: 4283, units_measure_load.c: Date of change: 06.27.2002 (slongo) (units_measure_load.c) units_measure_load utility: added another database narrow after the 2nd lock_database call. Version 4.1.43 -------------------------- 1. Incident ID: 4284, Date of change: 07.02.2002 (stephen) (xmim_slave_server, database/sch_file_mgr.C) Changed block manager code so that it is more aggresive when allocating large blocks. Version 4.1.44 -------------------------- 1. Incident ID: 4093, Date of change: 07.03.2002 (Geoffrey He) Stop_loss will now exit the trade at the Stop price instead of at the high. 2. units_measure_load: Date of change: 07.16.2002 (slongo) Fixed the fix from 4.1.42. 3. Incident ID: 4456, Date of change: 07.30.2002 (Lisa) Fixed LDD problem with mimdbcp, dbcatalog, dbcompare, xmim_trading_info. Version 4.1.45 -------------------------- 1. Incident ID: none, Date of change: 08.01.2002 (Shannon) remove bad option date cache code from util/DateIo.C 2. Incident ID: 3717, Date of change: 05.30.2002 (Lisa) BMIM will now terminate after a failed database_narrow, database_widen, database_open, or database_new command. Previously, BMIM would report an error, but continue processing! 3. Incident ID: 4459, Date of change: 08.02.2002 (Geoffrey) Xmim client can search symbol like C_1964H and give right path. Fixes Internal error while searching virtual categories. Version 4.1.46 -------------------------- 1. Incident ID: 4822, Date of change: 08.23.2002 (Lisa) Fix rollover date computation so that it does not depend on the existence of the Close column in the timeseries. Version 4.1.47 --------------------------- 1. Incident ID: 4964, Date of change: 09.11.2002 (Shannon) facts_read from bmim was storing all of the data in the tick store, thus a facts_delete could not delete the bad point, only a clear of the tick store. 2. Incident ID: 5003, Date of change: 09.19.2002 (Geoffrey) Fix the multiple segment trading times bug so that trading-time can now span multiple days. Version 4.1.48 -------------------------- 1. Incident ID: none, Date of change: 10.10.2002 (Stephen) null pointer was dereferenced in the slave, in file sch_trading_info.C. Caused a problem when using an external database. 2. Incident ID: none, Date of change: 10.10.2002 (Stephen) slave method, SchSchemaOpenInterface::isColumnSubfield(), was not implemented. Caused a problem when using an external database. 3. Incident ID: 3968, Date of change: 07.10.2002 (Stephen) Changed MAX_DIGITS so that facts_read will read in 10 digit integers (incident is also fixed in 4.2.02) 4. Incident ID: 4336, Date of change: 07.19.2002 (Geoffrey) A few days ago in rollover period now works fine. (incident is also fixed in 4.2.03) 5. Incident ID: 4749, Date of change: 08.26.2002 (Geoffrey) Fix the bug that entry_price of RELATION will crash query. (incident is also fixed in 4.2.05) 6. Incident ID: 3903, Date of change: 10.1.2002 (Geoffrey) Fix the sell trail stop_loss bug. Trail Stop Loss was not exiting on the last trades. (incident is also fixed in 4.2.06) 7. Incident ID: 4947, Date of change: 10.8.2002 (Geoffrey) Fix the trade group only has buy or sell trades bug. (incident is also fixed in 4.2.06) 8. Incident ID: 5580,5581, Date of change: 10.21.2002 (Stephen) XmimDateTimeObj() API function was not working when the to_date was specified in the future. The data for the future dates were being returned as random garbage. Version 4.1.49 -------------------------- 1. Incident ID: 5680, Date of change: 10.30.2002 (Stephen) status variable was being overwritten, causing it to always return true. This led to an infinite loop that corrupted the schema. (modified ts/ts_multi_val_supra_day.C) Version 4.1.50 -------------------------- 1. Incident ID: 3966, Date of change: 11.04.2002 (Shannon) Added a new program xmim_incremental_fold to convert tick into historical data. Added start and end date arguments to xmim_rt_clear. New executables: xmim_incremental_fold xmim_rt_clear xmim_rt_input xmim_rt_setup xmim_rt_stat xmim_rt_update 2. Incident ID: NA, Date of change: 11.06.2002 (Shannon) Fix print of relation type in xmim_find. 3. Incident ID: 5775, Date of change: 11.06.2002 (Geoffrey) Change option expiration date default format from mm/yyyy to mm/dd/yyyy. Removed XmimExpDateFormat from include/xmim_api.h and from api code. Former uses of XmimExpDateFormat now use XmimDateFormat. 4. Incident ID: none, Date of change: 10.31.2002 (S. Longo) Added XMIM_APPEND_TO_ALL to xmim_get utility so that current tick data will also be fetched. 5. Incident ID: none, Date of change: 11.12.2002 (S. Longo) Added xmim_get_options utility. 6. Incident ID: none, Date of change: 11.12.2002 (Lisa, per Shannon) Updated 4.1 build with latest cgi-bin changes and gzip functionality. 7. Incident ID: none, Date of change: 11.12.2002 (Lisa, S. Longo) Updated xmim4.dll with new api changes. Also, added a new file to the release/lib directory: xmim4.lib Version 4.1.51 -------------------------- 1. Incident ID: none, Date of change: 11.19.2002 (Shannon) patch for rtd to fix cache problem (edited rtd/db_rtd_storage_inlines.H, api/api_svr_data.C) Version 4.1.52 -------------------------- 1. Incident ID: none, Date of change: 01.03.2003 (Stephen) Refix the fix that was in 4.1.51. a) Undid previous edits in rtd/db_rdt_storage_inlines.H from 4.1.51 b) Undid previous edit in api/api_svr_data.C from 4.1.51 c) Made edits in rtd/db_rdt_daily_storage.C and rtd/db_rtd_mem_block_ptr_inlines.H Version 4.2.01 -------------------------- 1. Incident ID: 3521, Date of change: 05.10.2002 (Lisa) Remove / fix annoying messages in Entitlements loading. 2. Incident ID: 3778, Date of change: 05.15.2002 (Lisa) Remove stdout debug message from xmimlock.acl logic. 3. Incident ID: 3554, Date of change: 05.17.2002 (Lisa) Give correct command names in BMIM error messages. Incorrect command names were given in error messages for the following commands: database_narrow, database_widen, database_open, database_close, and database_new. Also, a confusing error message was given for the (historical) modify_trade_pattern command. 4. Incident ID: 3409, Date of change: 05.17.2002 (Lisa) Entitlements changes: Users can belong to multiple groups. Entitlements are for read-permission to data. New algorithm is to "poke holes" in the entitlement of a more general category by entitling a more specific category. 5. Incident ID: 3717, Date of change: 05.30.2002 (Lisa) BMIM will now terminate after a failed database_narrow, database_widen, database_open, or database_new command. Previously, BMIM would report an error, but continue processing! 6. Incident ID: 3431, Date of change: 06.19.2002 (Geoffrey He) BMIM dump_expiration_dates now works for just one relation. 7. Incident ID: 3810, Date of change: 06.19.2002 (Lisa) user, host, and group names are now non-case-sensitive for Entitlements and xmimlock.acl logic. 8. Incident ID: 3809, Date of change: 06.19.2002 (Lisa) entitlements does not have a password anymore. 9. Incident ID: 3522. Date of change: 06.14.2002 (Lisa) entitlements commands are now in BMIM. New commands are: entitlementsClear, entitlementsRead, entitlementsWrite. Example BMIM script: ================================== lock_files; # clear all previous entitlements information entitlements_clear; # load new entitlements information from batch file entitlements_read /home/lisa/entitlements.txt; # dump entitlements to output file entitlements_write /home/lisa/entitlements_out.txt; unlock_files; ==================================== 10. Incident ID: 4147, Date of change: 06.21.2002 (Shannon) Incorporate mimic_passwd and excel_passwd functionality into bmim_client Managing Client Application Permissions ======================================= The MIM server applications can be configured to check for permission to execute. This allows the applications to be deployed to desktops and the usage licensing to be controlled on the server. In order to enable application permissioning the following bmim is required. database_narrow { database=~/data/xmim.mim; } lock_files grant_app_perm { username=xmimcheckpass; application=mimic; password="username";} grant_app_perm { username=xmimcheckpass; application=excel; password="username";} This will require the username permissioning be created to run MIMIC and the Excel Addin. If password checking is required, then the password argument should be "password". For example, grant_app_perm { username=xmimcheckpass; application=mimic; password="password";} grant_app_perm { username=xmimcheckpass; application=excel; password="password";} To disable the check, the password is set to "false". For example, grant_app_perm { username=xmimcheckpass; application=mimic; password="false";} grant_app_perm { username=xmimcheckpass; application=excel; password="false";} Here is a complete example of how to configure 3 clients: one for Excel, one for MIMIC and one for both applications. None of the client require password checking. It is required that the username is stored in lowercase. The run time test will be case-insensitive: e.g. JohnDoe will match johndoe. bmim> database_narrow { database=~/data/xmim.mim; } bmim> lock_files bmim> grant_app_perm { overwrite; file=/dev/null; } bmim> grant_app_perm { username="xmimcheckpass"; application="mimic"; password="username"; } bmim> grant_app_perm { username="xmimcheckpass"; application="excel"; password="username"; } bmim> grant_app_perm { username="user1"; application="excel"; } bmim> grant_app_perm { username="user2"; application="mimic"; } bmim> grant_app_perm { username="user3"; application="mimic"; } bmim> grant_app_perm { username="user3"; application="excel"; } We can then examine the permissions with the print_app_perms command. bmim> print_app_perms Printing Application Permissions excel xmimcheckpass username excel user1 NA excel user3 NA mimic xmimcheckpass username mimic user2 NA mimic user3 NA Bmim commands for managing application permissioning. print_app_perms Prints a listing of all applications permissions configured in the database. grant_app_perm { username = "string"; application = "string"; [ password = "string"; ] } Grants permission to user for an application. Passwords are optional and default to NA if not supplied. Example: grant_app_perm { username="johndoe"; application="mimic"; } Permissions can be managed using a file. The file argument should refer to a file of records. username application password Tokens should be space or tab delimited. The password field is optional. grant_app_perm { file = "filename"; overwrite; } The overwrite option in grant_app_perm with the file argument truncates the permissioning tables before loading the file. To truncate the tables. grant_app_perm { file=/dev/null; overwrite; } Application permissions can be revoked in bmim as follows. revoke_app_perm { username = "string"; application = "string"; } All of the application permission commands work with database_narrow. I would imagine a typical maintenance bmim script would look like: database_narrow { database=~/data/xmim.mim; } lock_files grant_app_perm { file=~/xmimapps.acl; overwrite; } A sample session: bmim> database_narrow { database=~/data/xmim.mim; } bmim> lock_files Locking Files bmim> grant_app_perm { file=~/xmimapps.acl; overwrite; verbose; } Grant Application Permissions Truncate permission table Add: excel johndoe NA Add: mimic marysue NA A sample xmimapps.acl will contain the following. xmimcheckpass excel username xmimcheckpass mimic username johndoe excel marysue mimic 11. Incident ID: 4143, Date of change: 06.21.2002 (Lisa) Added new utility called ent_load. ent_load loads entitlements file from command line by calling the new API function, XmimReadEntitlements(). 12. Incident ID: 2871, Date of change: 06.26.2002 (Geoffrey He) A new option, xmim3x, is added to .xmimrc. The default value is 'no'. If this option is set to 'yes', the 'move' built-in will use the 3x formula. Otherwise, it uses the 4x formula. 3x formula: "1 day move of Low of SP = Low of SP - Close of SP 1 day ago." 4x formula: "1 day move of Low of SP = Low of SP - Low of SP 1 day ago." Usage: add one of these lines to the $LIMHOME/.xmimrc file, and restart the server xmim3x: yes xmim3x: no Version 4.2.02 -------------------------- 1. Incident ID: 4494, Date of change: 07.19.2002 (Shannon) Added many Linux portability changes. 2. Incident ID: 3968, Date of change: 07.10.2002 (Stephen) Changed MAX_DIGITS so that facts_read will read in 10 digit integers 3. No Incident: Date of change: 07.16.2002 (Shannon) Added gzip output stream support to mim-xml-*_1.fcgi programs. If "gzip=1" is added to the POST args, then the output is gzip'd binary of the XML. Note that a corresponding change is required in MIMIC to enable the compressed mode. 4. Incident ID: 4135, Date of change: 07.17.2002 (Lisa) Added two entitlements test tools: ent_test, and ent_test_batch. ent_test is a cmd-line test tool. It calls the new api function XmimUserIsEntitledP(). ent_test_batch is also cmd-line, but takes a filename as an input argument so that it basically does an ent_test for each entry in the file. ent_test -h USAGE: ent_test [-h] [-q host] [-p server_number] username relation column pass_fail where pass_fail=1 indicates that you expect the user to be entitled. where pass_fail=0 indicates that you expect the user NOT to be entitled. ent_test_batch -h USAGE: ent_test_batch [-h] [-q host] [-p server_number] batchfile Each line in batchfile has the format: username relation column pass_fail where pass_fail=1 indicates that you expect the user to be entitled. where pass_fail=0 indicates that you expect the user NOT to be entitled. 5. Incident ID: 3806, Date of change: 07.17.2002 (Lisa) Changed xmimlock.acl functionality so that the username is optional in the file. Also, improved the error message given when permission is denied for locking the database. Here are some new example entries for the xmimlock.acl file: lisa@matrix lisa@12.43.227.00/24 lisa@12.43.227.45 geoffrey lim @austin Here is an example error message if permission to lock the database is denied: ERROR: Lock Database: Permission Denied. User, lim@matrix, does not have permission to lock database, /export/dev/lisa/data_complete/data/xmim.mim. Permissioned users are listed in /export/dev/lisa/data_complete/data/xmimlock.acl. 6. Incident ID: 3807, Date of change: 07.18.2002 (Lisa) Added server locking (ACL) functionality. There is a new file called $LIMHOME/xmimsvr.acl (i.e. /home/lim/xmimsvr.acl) which lists the users with permission to connect to a MIM server. The algorithm for validating permission to connect to a MIM server is as follows: 1) if the MIM server owner is trying to connect from the MIM server host (localhost), the connection is allowed. 2) else, read the file $LIMHOME/xmimsvr.acl and see if the user@host has permission to connect MIM servers. The format of the xmimsvr.acl file is identical to the format for xmimlock.acl. Here are some example entries for the xmimsvr.acl file: lisa@matrix lisa@12.43.227.00/24 lisa@12.43.227.45 geoffrey lim @austin Here is an example error message if the connection is denied: ERROR: User, lim@matrix, does not have permission to connect to any MIM servers. Permissioned users are listed in /home/lim/xmimsvr.acl. Version 4.2.03 -------------------------- 1. Incident ID: 4336, Date of change: 07.19.2002 (Geoffrey) A few days ago in rollover period now works fine. 2. Incident ID: 4491, Date of change: 07.29.2002 (Lisa) Eliminate some redudant schema read-locks during entitlements permission checking. Test and fix issues with multi-database entitlements. 3. Incident ID: 4410, Date of change: 07.30.2002 (Lisa) Mimic_password and Excel_password tables are now searched with non-case-sensitive string comparison. 4. Incident ID: 3805, Date of change: 08.01.2002 (Lisa) Add Host/IP/Netmask option to username in Entitlements. 5. Incident ID: 3803, Date of change: 08.05.2002 (Lisa) Log "permission denied" error messages caused by either one of the ACL files: a) xmimsvr.acl (Server-Level, connect) b) xmimlock.acl (Database-Level, lock_files) Sample error messages in the XMIM Server log: ============================================== Xmim Connect: Permission Denied. User, lim@matrix, does not have permission to connect to any MIM servers. Permissioned users are listed in /home/lim/xmimsvr.acl. Lock Database: Permission Denied. User, lim@matrix, does not have permission to lock database, /home/lisa/data_complete/data/xmim.mim. Permissioned users are listed in /home/lisa/data_complete/data/xmimlock.acl. Version 4.2.04 -------------------------- 1. Incident ID: 4691, Date of change: 08.07.2002 (Lisa) Added a new tag for BMIM to allow 4.2 BMIM commands to exist on older systems. Tag is '#v4.2 '. Example BMIM script using new tags: ======================================== lock_files database_narrow { database = /home/lim/data/xmim.mim; } # entitlements commands were added to BMIM in 4.2 ... #v4.2 entitlements_clear; #v4.2 entitlements_read entitlements.txt; unlock_files ======================================== 2. Incident ID: 4690, Date of change: 08.08.2002 (Lisa) 'Free Pass' is now given to slave-owner on slave-host for data entitlements. This is the same as the free pass given for lock_files and for XMIM server connect. (the code for the lock_files 'free pass' is shared with entitlements) 3. Incident ID: 4802, Date of change: 08.08.2002 (Lisa) Fixed a seg'v found during testing of 4690. The seg'v occurred if permission to lock_files was denied, and an xmimlock.acl file did not exist in the database directory. 4. Incident ID: 4803, Date of change: 08.09.2002 (Geoffrey, Shannon, Lisa) Fixed bug introduced in 4.2.02 with portability changes. Bug was in ExProfitLossBlock::generateRow(). Caused infinite loop during certain queries. Version 4.2.05 -------------------------- 1. Incident ID: none, Date of change: 08.13.2002 (Shannon) Fixed bug in xml-find_1.c / mim-xml-find_1.fcgi. Bug was causing MIMIC HTTP users to never get any answers from "Search". 2. Incident ID: 4749, Date of change: 08.26.2002 (Geoffrey) Fix the bug that entry_price of RELATION will crash query. 3. Incident ID: 3861, Date of change: 08.20.2002 (Geoffrey) Fix bug in query where "Date is not Saturday" condition was causing Friday to be dropped. 4. Incident ID: 4844, Date of change: 08.27.2002 (Lisa) Allow domain names in ACL files. =========================================== Examples of domain name usage in ACL file: =========================================== lisa@europa.lim.com lisa@europa @europa.lim.com lisa@lim.com @lim.com @.com lisa@.com =========================================== Examples of domain name usage in Entitlements file: =========================================== [groups] my_group [users] lisa@europa.lim.com my_group lisa@europa my_group @europa.lim.com my_group lisa@lim.com my_group @lim.com my_group @.com my_group lisa@.com my_group =========================================== Version 4.2.06 -------------------------- 1. Incident ID: 4964, Date of change: 09.11.2002 (Shannon) facts_read from bmim was storing all of the data in the tick store, thus a facts_delete could not delete the bad point, only a clear of the tick store. (fixed in 4.1.47) 2. Incident ID: 5003, Date of change: 09.19.2002 (Geoffrey) Fix the multiple segment trading times bug. (fixed in 4.1.47) 3. Incident ID: 5015, Date of change: 09.24.2002 (Geoffrey) Fix problem with 2-digit expiration dates. Previously, all 2-digit expiration dates were interpreted as 19xx. Now, 2-digit expiration dates from 00-49 are interpreted as 2000-2049; 50-99 are interpreted as 1950-1999. For example, an expiration date of 04/26/02 will now be interpreted as 04/26/2002. 4. Incident ID: 3903, Date of change: 10.1.2002 (Geoffrey) Fix the sell trail stop_loss bug. Trail Stop Loss was not exiting on the last trades. 5. Incident ID: 5247, Date of change: 10.1.2002 (Lisa) Added timestamps to log messages for xmimlock.acl and xmimsvr.acl "permission denied" messages. 6. Incident ID: 5251, Date of change: 10.2.2002 (Lisa) XMIM client and C/API will now print errors if connection to server is denied for lack of permission (xmimsvr.acl). Added new method, server_wrapper::connection_allowed_p() to check permission before connecting to the master via XmimConnect(). Also tightened up security for Mimic so that Mimic is unable to get answers when the connection to the server was denied. 7. Incident ID: none, Date of change: 10.3.2002 (Lisa) Changed the write-flag in entitlements batch file to be optional. If it is present, it is ignored. 8. Incident ID: 4947, Date of change: 10.8.2002 (Geoffrey) Fix the trade group only has buy or sell trades bug. 9. Incident ID: none, Date of change: 10.14.2002 (Lisa) Use new WARNING method for BMIM warning message so that MIM server does not get stdout messages to its console. Also, use ERROR() instead of ERROR_FOR_REAL() for same reason. 10. Incident ID: none, Date of change: 10.10.2002 (Stephen) null pointer was dereferenced in the slave, in file sch_trading_info.C. Caused a problem when using an external database. (fixed in 4.1.48) 11. Incident ID: none, Date of change: 10.10.2002 (Stephen) slave method, SchSchemaOpenInterface::isColumnSubfield(), was not implemented. Caused a problem when using an external database. (fixed in 4.1.48) Version 4.2.07 -------------------------- all incidents from 4.1.49 and 4.1.50, plus: 1. Incident ID: 5844, Date of change: 11.13.2002 (Lisa) Updated library (libxmim.a) so that 4.2 clients can connect to 4.1 servers. If the new server_wrapper::mimrpc_connection_allowed_p_ms() method is not defined on the server we are connecting to, then we now assume that connection to the master is permitted. (The method is defined on 4.2 servers, but not defined on 4.1 servers.) Version 4.2.08 -------------------------- (ESP5775: removed expiration_date format changes that were in 4.2.07) 1. Incident ID: 5948, Date of change: 11.20.2002 (Lisa) Removed old-format XML FCGI support from the cgi-bin. Customers are no longer using our old-XML formats. 2. Incident ID: 5634, Date of change: 11.20.2002 (Stephen) Added new binary "xmim_add_id" to release build. This binary lets you run from the command line without prompting the user. 3. Incident ID: 6029, Date of change: 11.25.2002 (Lisa) tag was missing for XML query with multiple result sets when no statistics were generated. (1 file modified: util/util_reporter_file_xml.C) 4. Incident ID: 6054, Date of change: 11.26.2002 (Lisa) XML for futures relation had trash for rollover_day and rollover_policy tags if the futures relation was added without specifying values for those items. Changed the XML to default the values of those tags as is done in the rest of the MIM, as follows: rollover_day: "last data day" rollover_policy: "1 nearby actual prices" (1 file modified: api/api_svr_schema.C) 5. Incident ID: 5827, Date of change: 12.2.2002 (Geoffrey) Fix getting option expiration date bug Version 4.2.09 -------------------------- 1. Incident ID: 4114, Date of change: 12.13.2002 (Geoffrey) XMIM client users can set their own default options in .xmimclient_options. 2. Incident ID: 6290, Date of change: 12.16.2002 (Geoffrey) Bmim dump_expiration_dates command output format is changed to "20040322, CLC_2004J" and is sorted by expiration dates. 3. Incident ID: 6414, Date of change: 12.30.2002 (Lisa) Loading the TAQ database did not work in 4.2. The initialization of the new data-type array in TsTimeSeries constructor did not take place if there were more than 4 datatypes in the array. I think this would always cause a problem when reading or writing a timeseries with more than 4 columns. 4. Incident ID: 6422, Date of chnage: 12.30.2002 (Shannon) Remove TERM signal handler from libgzip. Avoid core on slave shutdown. Version 4.2.10 -------------------------- 1. Incident ID: 6433, Date of change: 01.10.2003 (Geoffrey) Fix the volume crossover, backward adjusted price rollover bug (roll_comp.C modified) 2. Incident ID: 6280, Date of change: 01.03.2003 (Lisa) Handle the case during lock or connect where the candidate host in the ACL file is a simple hostname (without a domain). When it is a simple hostname, we check to see that the client and server domains are the same before we accept the entry as a match. (util/util_xmimusers.C modified) 3. Incident ID: 6653, Date of change 01.20.2003 (Shannon) xmim_find exited the children loop when no rel cols are found for one child. 4. Incident ID: 6207, Date of change: 01.23.2003 (Geoffrey) Adding two builtin functions, coregression_intercept() and coregression_slope(). 5. Incident ID: None, Date of changge: 01.23.2003 (Stephen) Fixed bugs in xmim_server::ctd_update. There were two bugs. With multiple databases, ctd_update() would fail to write the data into the appropriate database. The other bug was a "Freeing Unallocated Memory" error that was messing up the heap. Version 4.2.11 -------------------------- 1. Incident ID: 6640, Date of change: 01.30.2003 (Stephen) Fixed bug in rollover for backwards adjusted prices. This only happened when the last contract was the only trading contract. (all the others had expired and there were no other contracts trading). 2. Incident ID: 6717, Date of change: 01.31.2003 (Geoffrey) Fix "week average" bug. User was getting no occurrences returned from a query in 4.2.09 which had worked in 4.1 and previous to that. The query was: "SHOW 1: 1 week average of SPX WHEN Date is weekly Close". We identified that the query had been "broken" in release 4.2.05 by the "Date is not Saturday" fix (ESP3861). Version 4.2.12 -------------------------- 1. Incident ID: 6950, Date of change: 02.12.2003 (Lisa) Fixed problem that special XML characters were not escaped properly. Details of fix: Changed util_reporter_file_xml to use the UtilXmlStringBuilder classes. Fixed the UtilXmlStringBuilder classes to do xml-special-character substitution in the beginElementWithAttributes() method for each attribute/value pair. Added an argument/option to that method to auto-terminate that tag because those tags with properties often have no data. (modified util/util_xml_string_builder and util/util_reporter_file_xml) 2. Incident ID: 6967, Date of change: 02.13.2003 (Shannon) 2 fcgi programs had incorrect logic for testing gzip flags. (modified apps/cgi-bin/xml-query_1.c and xml-schema_1.c) 3. Incident ID: 6828, Date of change: 02.13.2003 (Shannon) Add -n flag for database_narrow in xmim_find. This will aide in removing data from specific databases. The issue is caused by improperly loaded data into the data.ometrics database. 4. Incident ID: 7063, Date of change: 03.18.2003 (Lisa) Fix 2 entitlements issues: 1) entitlements_clear needs to reset the database so that users are allowed back into the database by default. (Fixed logic of SchSchema4x::entitlementsDefinedP()). 2) add the 'anonymous' user/group concept back into entitlements. The anonymous concept was there in 4.1, but had been omitted from 4.2. We needed it back. Users that belong to no other group are automatically included in the 'anonymous' group if one exists. (modified database/sch_schema_4x.C) 5. Incident ID: 6928, Date of change: 02.20.2003 (Stephen) Fixed bug with BMIM reading in floats with more than 10 digits after the decimal place. The numbers were sometimes garbage instead of rounded. Version 4.2.13 -------------------------- 1. Incident ID: 5775, Date of change: 02.27.2003 (Lisa) Add expiration date format changes back in to the release now. Expiration date formats now support 4-digit years. The default format is mm/dd/yyyy. Original description of 5775: Change option expiration date default format from mm/yyyy to mm/dd/yyyy. Removed XmimExpDateFormat from include/xmim_api.h and from api code. Former uses of XmimExpDateFormat now use XmimDateFormat. 2. Incident ID: 6950, Date of change: 02.27.2003 (Shannon) Fixed bug with recent changes to XML report format. Statistics label was being closed when it was supposed to be opened. This fixes a bug introduced in 4.2.12 (with fixes for incident 6950). (edited util/util_reporter_file_xml.C) Version 4.2.14 -------------------------- 1. Incident ID: 4336, Date of change: 02.28.2003 (Shannon) Back out some changes from 4336 which caused incorrect data. Version 4.2.15 -------------------------- 1. Incident ID: 7206, Date of change: 03.04.2003 (Shannon) Added a new global execution option. %exec.disable_backadjustment: YES This will zero all adjustment factors in the futures rollover. So, show 1: CL 2: CL 1 day ago will not have backadjustment when the contract rolls. All of the futures in the execution are affected. 2. Incident ID: 7277, 7291, Date of change: 03.06.2003 (Lisa) Added an informative error message and an assert statement to RollComp::copyAdjustedValuesByDay() to alert the user when the date is invalid. This happens when there are gaps in a futures contract. If processing continues past that point, we have been calling realloc with a -1, which is 4.2gig unsigned. (changed database/roll_comp.C) 3. Incident ID: 6950, Date of change: 03.04.2003 (Lisa) Add report 'title' to the XML output for queries. (changed util/util_reporter_file_xml.C) 4. Incident ID: 6628, Date of change: 03.05.2003 (Shannon) Change adjustTree to compute 1 day ago so that rollover trades occur on the proper dates. 5. Incident ID: 6640, Date of change: 03.06.2003 (Shannon) Change backwards adjusted for a more complicated test for the case when no back contract exists. Fix of a regression problem in 4.2.09 6. Incident ID: 6613, Date of change: 03.07.2003 (Geoffrey) Commission can be calculated by per trade, per contract and per share. This can be done through order option or query. Version 4.2.16 -------------------------- 1. Incident ID: 7464, Date of change: 04.21.2003 (Geoffrey) Made a fix for "2 nearby" syntax in ORDER query. 3 files modified: execution/ex_relcol.C, database/roll_comp.H, roll_comp.C 2. Incident ID: 7316, Date of change: 04.14.2003 (Stuart) Changed dbcatalog to gather dates from minute time series when daily data is not available. 3. Incident ID: 7937, Date of change: 04.21.2003 (Shannon) delete_facts of intraday data causes slave server crash. Version 4.2.17 -------------------------- (skipped this version) Version 4.2.18 -------------------------- 1. Incident ID: 8268, Date of change: 05.02.2003 (Lisa) Fixed a problem in the XML DTD. There was a missing comma. 1 file modified: util/util_reporter_file_xml.C 2. Incident I:D nnnn, Date of change: 05.02.2003 (Stephen, Shannon) Changed db_rtd_storage.C, DbRtdStorage::initialize() to not set dataUpdateTimeStamp. Version 4.2.19 -------------------------- 1. Incident ID: 7930, Date of change: 05.12.2003 (Geoffrey) Fix the Profit/Loss front, back and far rollover bug. Version 4.3.01 -------------------------- 1. Incident ID: 7206, Date of change: 03.14.2003 (Geoffrey) new option "Disable Backadjustment" is added to xmim client GUI. 2. Incident ID: 7085, Date of change: 03.24.2003 (Geoffrey) Bmim query_execute replaced contract names are printed in data output head. Back-compatibility (Lisa): New "replaceStr" argument will be passed by new clients to xmim_server::rpc_exec_query2. Old clients will call the old method, xmim_server::rpc_exec_query(), without the "replaceStr" argument. 3. Incident ID: 3573, Date of change: 04.01.2003 (Tom) Updated print_schema to (1) show "Trading Pattern", fix "Expiration Date" and fix "RollOver"; and (2) reformatted the printed information. 4. Incident ID: 7732, Date of change: 04.04.2003 (Lisa) Added timestamp to 2 error messages concerning gaps in futures contracts. Also, changed "gap in futures contracts" to be a debug-only message because the condition was occurring during load_updates.sh. 5. Incident ID: 7763, Date of change: 04.16.2003 (Lisa) Added XMIM_UNION_DATE arg for XmimVaQueryExecute(). Made changes back-compatible to allow for old clients to interact with new server. Added xmim_server::rpc_exec_parse2() and xdr_exec_init_args2. 6. Incident ID: None, Date of chagen: 04.19.2003 (Stephen & Shannon) Changed FILE* to XMIM_FILE* so that we can migrate off of fopen(). fopen() limited us to 255 file streams on Solaris, regardless of the limit set on the operating system. (see http://access1.sun.com/technotes/01406.html for more info) Since real-tick collection and multiple databases are becoming more and more common, this problem is magnified. From now on, we should only use open() with file descriptors instead of using fopen() with FILE*. 7. Incident ID: 7810, Date of change: 04.22.2003 (Lisa) Fixed BMIM so that it is able to add normal columns correctly after adding composite columns. (modified bmim.C) 8. Incident ID: 7927, Date of change: 04.25.2003 (Tom) Converted the dbcompare code base to C++ syntax, so that, it will compile using the CC compiler. 9. Incident ID: 7861, Date of change: 04.24.2003 (Lisa) Fixed BMIM print_app_perms to be able to print permissions for just one application instead of stopping if there is no permission table for one of the applications. Also, corrected the command-names displayed by BMIM during app_perm command errors. 10. Incident ID: 7927, Date of change: 4.25.2003 (Tom) Converted the dbcatalog code base to C++ syntax, so that, it will compile using the CC compiler. 11. Incident ID: 7927, Date of change: 4.25.2003 (Tom) Converted the mimdbcp code base to C++ syntax, so that, it will compile using the CC compiler. 12. Incident ID: 7998, Date of change: 05.08.2003 (Lisa) Changed facts_read logic to use the C standard library function strtod() whenever the facts_read input file-format is variable. Using strtod() removes previous BMIM limitations with reading FLOATs and DOUBLEs. Furthermore, using strtod() allows BMIM to read numbers expressed in scientific notation (such as 2.3456e+3). Fixed-format facts_read input files are not affected by this change. They have the same limitations as in the past. 13. Incident ID: 7927, Date of change: 5.13.2003 (Tom) Modified Makefiles for dbcatalog, dbcompare, and mimdbcp to do conditional compiling per the OS and to use Sun's StdC library. 14. Incident ID: 7807, Date of change: 05.19.2003 (Geoffrey) Fix the new future contract not showing up in xmim_client. 15. Incident ID: 7316, Date of change: 5.20.2003 (Tom) Fixed a memory leak caused by misuse of malloc/free. 16. Incident ID: 8147, Date of change: 05.28.2003 (Lisa) Increased MAX_DAILY_NANS from 3 to 15, so that "200 value average" query will stop spitting out NaNs after receiving a series of 4 NaNs starting on 9/11/2001. (modified execution/ex_time_offset.C) 17. Incident ID: 8572, Date of change: 05.22.2003 (Lisa) XmimPutRecords() does not work with units of XMIM_HOURS, but it did not error on such a condition. Previously, it would just put trash into your timeseries. I fixed XmimPutRecords() to error if XMIM_HOURS is provided as the units argument. Instead of XMIM_HOURS, you should use XMIM_MINUTES to put hourly data into the timeseries with XmimPutRecords(). (modified api/api_lib_data.c, api_lib_error.h, api_lib_util.h) 18. Incident ID: 8594, Date of change: 05.22.2003 (Shannon) Added -b and -e options to dbcompare utility. -b will set XMIM_FROM_DATE in the XmimGetRecords() call made from dbcompare. -e will set XMIM_TO_DATE in the XmimGetRecords() call made from dbcompare. 19. Incident ID: 8500, Date of change: 05.21.2003 (Lisa) New expanded version of print_schema command from BMIM was crashing the slave server when there was no trade-pattern information available for the relation. So, if you managed to create a new relation without a trade-pattern, print_schema for that relation would crash the server. 20. Incident ID: 8074, Date of change: 05.29.2003 (Tom) Modified correctionsAdd in bmim_server_end.C to handle intra-day corrections. Added code to load intraday corrections data, and conditionally insert daily or intraday corrections, depending on the correction file type. 21. Incident ID: 8074, Date of change: 05.29.2003 (Tom) Created a new intraday corrections class - schema/Corrections.[CH] - which provides intraday corrections functionality and table record schemas. ___________________________________________________________________________________ Handling Corrections in XMIM 4.0 1. Introduction Changes were made to BMIM, to accommodate proper handling of intra-day corrections data. The new file format and schema are documented below. 2. Adding Corrections To add a correction to the database, either BMIM or the API may be used. Adding intra-day corrections is the same as it is for adding daily corrections. The synopsis for the both BMIM 4.0 commands is: corrections_add filename The argument filename is the name of the file containing the corrections data. The synopsis for the C API call is as follows: XmimReturnCode XmimAddCorrections (XmimClientHandle handle, XmimString fileName); XmimReturnCode XmimVaAddCorrections (XMIM_CLIENT_HANDLE, handle, XMIM_FILENAME, fileName, XMIM_END_ARGS); 3. Corrections File Format The file specifying the corrections data must be composed of one correction per line. The correction file can contain daily or intraday corrections. The Intraday corrections data is of the following form: 20030421, 0000, APX.DAHOURLY, Val, 20030422, 1400, 1.25 Transaction Date : April 21, 2003 Ticker Symbol : APX.DAHOURLY Value to be Correction : Val Date to be Corrected : April 22, 2003 and Previous Date : April 22, 2003 Time to be Corrected : 2:00 PM Previous Value : 1.25 where this line indicates that on April 21, 2003 a corrected value for Val of APX.DAHOURLY on April 22, 2003 at 2:00 PM was placed in the database and the previous value for that series was 1.25. Note that if two corrections for the same relation on the same date and time are received, only the last one is kept. 4. Using the Table Facility to Retrieve or Update Corrections The XMIM 4.0 Table Facility available through the C API is actually used to store the correction information. Thus, all of the routines provided and available with that facility can be used such that corrections information can be retrieved, modified or deleted. The name of the intraday table used is "XMIM_CORRECTIONS_INTRADAY" and the field descriptions are provided below: const XmimTableFieldDesc corrections_schema[5] = {{"Date", XMIM_TAB_FIELD_DATE}, {"Relation", XMIM_TAB_FIELD_ATOM}, {"Column", XMIM_TAB_FIELD_ATOM}, {"OldDate", XMIM_TAB_FIELD_DATE}, {"OldTime", XMIM_TAB_FIELD_TIME}, {"OldValue", XMIM_TAB_FIELD_DOUBLE}}; Version 4.3.02 -------------------------- 1. Incident ID: 8509, Date of change: 06.02.2003 (Geoffrey) Change xmim_client XDIV and SPLIT date file show up from button menu to scroll menu. 2. Incident ID: 8567, Date of change: 06.02.2003 (Tom) Fixed logic bug which conditionally prevented "Intra-day Prices" from being displayed. 3. Incident ID: 9058, Date of change: 06.04.2003 (Stephen) Added new API routine "XmimGetPathsForRelation" to help determine if a relation exists, and if so, where it exists. 4. Incident ID: 8853, Date of change: 06.06.2003 (Tom) Fixed dbcatalog to handle an apostrophe in the description field of a relation, which becomes an html link. 5. Incident ID: None, Date of change: 06.10.2003 (Stephen) Fixed bug in real-tick-data code. xmim_rt_clear didn't always delete properly and this is now fixed. 6. Incident ID: 8826, Date of change: 06.10.2003 (Geoffrey) Fixed %graph.graphtype 'line histogram' and 'zero histogram' problem where these options were not being properly restored from a saved query file. 7. Incident ID: 8207, Date of change: 06.17.2003 (Geoffrey) Fixed the volume crossover with linear interpolate for 15 days rollover bug. 8 Incident ID: none, Date of change: 06.18.2003 (Lisa) Preliminary changes for formulas are in this build, but are not yet supported. Consequently, there are revisions in this build to handle the SCH_VERSION logic. SCH_VERSION should remain at 8 until the schema is accessed with an actual 4.4 version of the MIM, at which point, the SCH_VERSION will be incremented to 9. LIM Developers may have some version 9 schemas created during the transition. Those databases are not readable with this release. There are new formula API functions, and changes to the xdr files. 9. Incident ID: 8554, Date of change: 06.18.2003 (Lisa) Fixed problem at beginning of timeseries with value average queries, such as: SHOW 1: 3 value average of Close of F. Previously, the first value at the beginning of the timeseries was always skipped over. Version 4.3.03 -------------------------- 1. Incident ID: 8983, Date of change: 06.19.2003 (Shannon) Changed output format of BMIM print_app_perms so that it is a valid input format for grant_app_perms: user, application, password. (modified bmim/bmim.C) 2. Incident ID: 8961, Date of change: 06.30.2003 (Tom) Removed code from bmim_facts_write which labelled the date output from a multi-pathed relation with the relation name. (modified database/bmim_server_end.C) 3. Incident ID: none, Date of change: 06.17.2003 (Ruben) New query execution options: %exec.min_start_date: 6/1/2002 %exec.max_end_date: 6/30/2002 will crop the automatically generated (or even user-defined) start/end dates to fit the given range. In the above, you can be guaranteed that there will be no answers outside the June 2002 range (modulo the obvious end_date exemption when units is greater than days, e.g. years) (modified model/mQueryProtocol.H, others) 4. Incident ID: none, Date of change: 06.25.2003 (Stephen) Lots of changes to build with darwin. 5. Incident ID: 9299,8816, Date of change: 07.09.2003 (Stephen) No data returned from query in Java/API/XML was causing the slave to crash. XML object was not entirely initialized if no data was returned, but it was being used at cleanup time. (modified util/util_reporter_file_xml.H) Version 4.3.04 -------------------------- 1. Incident ID: 8862, Date of change: 07.10.2003 (Geoffrey) Fix header file date format bug. 2. Incident ID: none, Date of change: 07.15.2003 (Lisa) Formulas: Stop doing all the unnecessary work in the SchSchema4x::addInheritedFormulaRelcols() method if there is no formula table in the schema. 3. Incident ID: 9451, Date of change: 07.16.2003 (Geoffrey) Fix query performance bug. (backed out change for 7930, FRONT, BACK, FAR). 4. Incident ID: 8974, Date of change: 07.16.2003 (Tom, Lisa) Fixed problems with mimdbcp and guile/ice-9. Installed new guile on neo and on europa. Version 4.3.05 (incremental build) -------------------------- 1. Incident ID: 8974, Date of change: 07.17.2003 (Tom) Placed all guile related files (i.e source and libraries) in the mimdbcp directory. And automated the installation and building of guile for any platform. (modified files in apps/mimdbcp) 2. Incident ID: 9368, Date of change: 07.23.2003 (Geoffrey) Fix the periods_in_range for hourly bug. (modified ts/ts_single_seg.C) 3 Incident ID: 9594, Date of change: 07.23.2003 (Tom) Added a funtion to check if Correction table exist before attempting to populate it. (modified schema/Corrections.[HC], database/bmim_server_end.C) 4. Incident ID: 9487, Date of change: 07.29.2003 (Geoffrey) Fix relcol default data type bug. In BMIM, data type was defaulting to an integer if a type was not specified. (modified bmim_server_end_inlines.H, bmim_server_end.C) 5. Incident ID: 9463, Date of change: 07.28.2003 (Lisa) In Java/API/XML, sometimes when the XML string needed to grow, we were not detecting the need for growth because the 'length' variable had not been updated. This was causing the slave server to crash (when trying to write off the end of the XML-string array) for certain queries with LET statements. (modified util/util_xml_string_builder.C) 6. Incident ID: 9894, 9881, Date of change: 08.07.2003 (Lisa) Fixed libxmim-tarball.tar to include the extra files it needed per the most recent api changes. In particular, api_rpc.c, and also some extra include files. 7. Incident ID: 9762, Date of change: 08.07.2003 (Lisa) Changed units_measure_load program to do a disconnect, sleep, connect after the first unlock to see if it shakes out the re-lock problems we've been having. Version 4.3.06 (incremental build) -------------------------- 1. Incident ID: 10148, Date of change: 08.05.2003 (Lisa) Removed stderr debug output from rollover adjustment. (modified database/roll_comp.C) 2. Incident ID: 9620, Date of change: 08.11.2003 (Geoffrey) Fix problem where a P&L query made the slave hang. Memory problem found and fixed with help of Purify. (modified mUtils.C, mTokenDict.H, mTokenDict.C) 3. Incident ID: 10053, Date of change: 08.15.2003 (Lisa) Modified rpc_exec_parse and rpc_exec_parse2 so that execution options embedded in a query take precedence over the execution options passed into the method. (so that the default values do not override the values set in the query). This solves problem with Java/API and Excel Add-In where they were not able to set the uniondate from the query string. (modified api/api_svr_exec.C) 4. Incident ID: 8393, Date of change: 08.15.2003 (Lisa) Fix bug where the fromDate was sometimes getting ahead of the toDate in a compiled query. This bug was causing average to not work if the average started on a weekend. (modified execution/ex_query.C) Version 4.3.07 (full build, not incremental. first build without compat=4) -------------------------- 1. Incident ID: 9127, Date of change: 08.04.2003 (Tom) Added check for missing file in "facts_read". Fixes a seg'v on bmim_client with stdin. (modified bmim.C) 3. Incident ID: 10080, Date of change: 08.14.2003 (Lisa) Put extra checks in RollDateComp::getContractId() so we do not dereference null pointers in that method. Attempting to prevent a seg'v in RollDateComp::getContractId(). (modified database/roll_comp.C) 4. Incident ID: 9620, Date of change: 08.21.2003 (Geoffrey) Fix bug where we were writing off the end of the trading_range array in a ORDER Buy TRADE GROUP (P&L) query, sometimes causing the slave server to hang. (modified mTokenDict.C, ex_trade_order.C) 5. Incident ID: 10256, Date of change: 08.25.2003 (Tom) Fixed a seg'v in the BMIM print_schema command. Seg'v was due to utilizing an uninitialized string. (modified api/api_lib_util.c) 6. Incident ID: 8573, Date of change: 09.02.2003 (Craig) Added defaults for XmimVaAddRelation() and XmimAddRelation() C/API routines for the tradingPattern. TradingPattern now defaults to MTWThF. (modified api/api_svr_bmim.C and database/bmim_server_end.C) 7. Incident ID: 10426, Date of change: 09.05.2003 (Craig) Removed call to fflush in UtilDiskCacheCell::flush(). This improves the performance of units_measure_load (LLC) and the table facility in general. (modified util/util_disk_cache.C) (modified util/util_xmim_file.C - removed fsync() - Lisa) 8. Incident ID: 10567, Date of change: 09.09.2003 (Lisa) Changed entitlements_write BMIM command to (quietly) skip over permission lines for deleted relations or deleted columns. (modified lots of files in database/ directory) 9. Incident ID: 10014, Date of change: 09.10.2003 (Stephen) Changed the master so that it will start slaves that have died and failed to restart. We hope this fix will alleviate the "RPC Timed out" state seen for alot of slave servers in the server.info command, where those slave servers never seem to recover, and eventually, the server has to be restarted. The normal behavior (which we hope we have restored) is that the server should detect any failed slaves and restart them. (modified api/api_wrp.C) 10. Incident ID: 10728, Date of change: 09.16.2003 (Tom) Added -v version for db_catalog. Also, db_catalog has been changed to remove ampersands from string names. Previously, the ampersands were causing db_catalog to not work. ---- BELOW ARE CHANGES TO THE CODE WHICH WERE MADE FOR FUTURE ---- FEATURES OR IMPROVEMENTS. THEY ARE NOT FULLY SUPPORTED YET. 11. Incident ID: none, Date of change: 09.04.2003 (Ruben) Added support for gsoap. (added XmimSoap.wsdl, api/api_slave_soap_fd_reader.C, api/api_slave_soap_fd_reader.H, api/api_slave_soap_processor.C, api/api_slave_soap_processor.H, api/api_slave_soap_server.H, api/api_soap_*.[CHch], api/api_soap_processor_util.C, api/api_svr_soap_util.h, api/xmimsoap.h, apps/soapclients/*, common/gsoap/goap-linux* Changed the xmim_find app to enable soap ?) 12. Incident ID: none, Date of change: 08.30.2003 (Ruben and Danette) Added initial support for options facility to be in the schema. Each specific option is stored in its own relation. 13. Incident ID: none, Date of change: 07/22/2003 (Ruben) more work on Formulas (still unsupported in this release). Fixed a bug where formulas didn't work across multiple databases. Added support for "delete formula" and "get formula" API calls. 14. Incident ID: none, Date of change: 07/18/2003 (Shannon and Stephen) Made many changes to compile the code with 64-bit flags turned on. Code doesn't work with 64-bit yet. It is only compiling. 15. Incident ID: 9039, Date of change: 08.05.2003 (Lisa) Modified XmimVaGetRelColumn() to have two new args: XMIM_FORMULA and XMIM_FORMULA_INDEX. Made it back-compatible with old releases. Wrote JNI wrapper also. (modified api/api_svr_svc.C, api_svr_rslt.C, api_lib_svr_xdr.c, api_svr_schema.C, api_lib_svr_util.c, api_lib_schema.c, api_svr_svc.H, api_svr_rslt.H, api_lib_svr.h, database/sch_schema_4x.C, database/sch_schema_4x.H) 16. Miscellaneous: added apps/pairs/*, added common/xerces/linux/*, added common/xerces/solaris/*, Version 4.3.08 (full build, built without compat=4) -------------------------- 1. Incident ID: None, Date of change: 09.11.2003 (Stephen) Fixed an annoyance where bmim_client wouldn't report an error if the server wasn't running. 2. Incident ID: 10238, Date of change: 09.16.2003 (Geoffrey) Implemented tick_convert for BMIM facts_read command. 3. Incident ID: 10788, Date of change: 09.18.2003 (Shannon) .xmim_server_0.log in /tmp not /home/lim/tmp. Bad pattern was passed to mkstemp. 4. Incident ID: 10475, Date of change: 09.22.2003 (Craig) Added check in RollComp::copyAdjustedValuesByDay to check for last data date. This fixes problem where a CL rollover query with execution units of 5 minutes was retrieving data out to 11/11/2009. (changed database/roll_comp.C) 5. Incident ID: 10817, Date of change: 09.23.2003 (Geoffrey) Fixed rollover bug when unit is minute and database is read-only. This fixes problem where a CL rollover query with execution units of 5 minutes was causing the slave server to crash because it couldn't take a "write lock" on the database. (fix was to change the "write lock" to a "read lock"). 6. Incident ID: 10773, Date of change: 09.24.2003 (Craig) Changed XmimAddFormula & XmimModFormula api to send the file contents to the server as opposed to just the file name. 7. Incident ID: 10884, Date of change: 09.24.2003 (Slongo) Fixed problem where XmimPutRecords() was no longer working with some of the options changes. (changed api/api_svr_data.C) 8. Incident ID: 10772, Date of change: 09.24.2003 (Regina) Added Java JNI functions for AddFormula and ModFormula. (changed: include/xmim_api.h) 9. Incident ID: 10446, Date of change: 09.22.2003 (Regina) Changed getDataRange C/API method so that it gives a better error message if a category name is passed in instead of a relation name. (This will also affect messages received through the Java/API). (change api/api_svr_util.H, api/api_svr_data.C) 10. Incident ID: 10470, Date of change: 09.22.2003 (Lisa) Fixed UMR problem in TsMgrDescriptor object which was getting hit 2300 times in CL Rollover query. (changed ts/ts_mgr_desc.C, ts/ts_mgr_desc_inlines.H) Version 4.3.09 (incremental build on 4.3.08, built without compat=4) -------------------------- 1. Incident ID: 11010, Date of change: 09.26.2003 (Lisa) Changed trade pattern code back to undo change from 8573. modify_relation was always changing the trade pattern to 5-day. (modified api/api_svr_bmim.C and database/bmim_server_end.C) -------------------------- *** NOTE: 4.3.10 XMIM client will not work with previous versions of MIM server *** *** NOTE: 4.3.10 server will not work with previous versions of the XMIM client *** Version 4.3.10 (full build) -------------------------- 1. Incident ID: None, Date of change: 09.26.2003 (Stephen) Added code so the server can support both the old and the new publishers. 2. Incident ID: 9140, Date of change: 09.29.2003 (Craig) Changed the entitlements_write api to print the full path of the specified relation. 3. Incident ID: 11110, Date of change: 09.30.2003 (Shannon) LET DATA FILE header parser failed with trailing newline. Bug in fgets replacement. 4. Incident ID: 5372, Date of change: 10.01.2003 (Shannon) get_records needs to grow xfer buffer for new options 5. Incident ID: 10995, Date of change: 10.02.2003 (Regina) Fixed miss-matched memory frees and an uninitialized variable problem. Bad memory management was causing slave server to intermittently crash while using Java/XML/RPC api for getRelColumns() and probably other methods. (modified files: api/api_svr_handle.C, api/api_svr_svc.C) 6. Incident ID: 10276, 7125, Date of change: 10.06.2003 (Geoffrey) Support new query option, %exec.precison, so user can set precision for query result. For example, to set precision to 7, put this line at the top of your query: %exec.precision: 7 This new precison setting should also work for constants used in the query. New setting has been added to the xmim client GUI also. (modified BNF-new.lisp, BNF.lisp, util_xmimrc_inlines.H, mQueryProtocol.H, mExecOptions.H, mExecOptions_inlines.H, mExecOptions.C, par_options_gen.h, par_options_gen.C, vExecutionUserOptionsDialog.H, vExecutionUserOptionsDialog.C, channel_util.C, api_lib_svr.h, api_lib_svr_xdr.c, api_svr_query_util.c, ex_query.C) 7. Incident ID: 10746, Date of change: 10.07.2003 (Geoffrey) Fixed bad ASSERT statement in the xmim client. (modified par_model_gen.C) 8. Incident ID: 2323, Date of change: 10.08.2003 (Regina) MLK Day is now a holiday; MLK BDay is now a semi-holiday. Waiting for data files (mlk.bday and mlk.day) to be committed by data dept. (modified model/mDateCond.C, model/mTokenDict.C, model/mValues.H, execution/co_date_cond.C, modified view/vDateDialog.C, parser/par_model_gen.C, parser/par_tokenizer_inlines.H, modified parser/par_tokens.C, parser/par_tokens.H, parser/par_tokenizer.C, modified parser/par_tokenizer.H, mlk.bday, mlk.day) 9. Incident ID: 11327, Date of change: 10.08.2003 (Lisa) Made changes to clean up some UMRs and FMRs found by Purify for a CL rollover query so that the performance of the query is more consistent. (modified database/roll_comp.C, database/sch_schema_single.C, execution/co_let_binding.C, execution/ex_relcol.C, model/mSecurity.C, model/mSecurity.C, schema/Database.C, ts/ts_multi_seg_sub_day.C, ts/ts_options.C, ts/ts_time_series.C) 10. Incident ID: 11295, Date of change: 10.11.2003 (Lisa) Fixing entitlements problem where entitlements_read was dropping users for a large entitlements file. Problem was that if a hash-collision occurred for 2 different users in the same group, the 2nd user was not added to the hash table for entitlements. Made some performance improvements. Also, found and fixed a problem where entitlements_clear was causing an infinite loop if two entries next to each other were deleted. Changed entitlements_clear to more forcibly fix problems in hash table if necessary. (modified database/sch_string_hash.C, sch_schema_4x.C, sch_string_db_inlines.H, database/sch_string_hash.H) 11. Incident ID: 11327, Date of change: 10.10.2003 (Regina) Fixed problem in futures rollover queries where timeseries was being released more than once. Also fixed a string problem. (This is part 2 of the fix Lisa started in #9). (modified Model/mExecOptions.C, Ts/ts_mgr_desc.C, Execution/ex_let_expr.C) 12. Incident ID: 10984, Date of change: 10.13.2003 (Shannon) Slow facts_write with very long list of relations. Changed O(n^2) algorithm to linear. (modified database/sch_io_manager.C) 13. Incident ID: 10276, 7125, Date of change: 10.06.2003 (Geoffrey) Fix precison option to work on all columns. (previously only worked on first column) (modified ex_query.C) 14. Incident ID: 10574, (incremental fix) Date of change 10.15.2003 (Craig) Performance improvements for corrections facility by calling fstat and storing stat struct in XMIM_File limiting the number of fstat system calls required during a Corrections update. Also fixed a key reference when creating a intraday corrections table so that it creates the key successfully for the table. (modified util_xmim_file.H, util_disk_cache.C, and Corrections.C) 15. Incident ID: 9534, Date of change: 10.14.2003 (Ruben) no changes here. (backed out) (par_parser.C, par_tokens.H, par_tokens.C, par_model_gen.C, co_date_cond.C, ex_relprop.H, ex_relprop.C, others) 16. Incident ID: 11578, Date of change: 10.17.2003 (Lisa) P&L query was causing slave server crash due to UMR's and null-pointer dereference caught by Purify. (modified channel/ch_result_holder.C, channel_util.C, execution/ex_trade_record_smart_pointer.C, ex_pl_header.H) 17. Incident ID: 2518, Date of change: 09.25.03 (Regina) Fixed putRecords() so that it gives an error on invalid units instead of allowing the slave server to crash. Slave server was crashing if putRecords() was called with XMIM.HOURS. (modified api/api_lib_util.h, api/api_lib_error.h, api/api_lib_data.c) Version 4.3.11 (incremental build) -------------------------- 1. Incident ID: 11883, Date of change: 10.28.2003 (Lisa) Skip entitlements checking for individual futures contracts. Just check top contract. Speeds up any rollover query of futures contracts when entitlements is turned on. (modified database/roll_comp.C) 2. Incident ID: 11883, Date of change: 10.29.2003 (Lisa) Garbage written to output of entitlements_write command. Purify found memory errors. (modified database/sch_schema_4x.C, database/bmim_server_end.C) Version 4.3.12 (incremental build) -------------------------- 1. Incident ID: 11310, Date of change: 10.16.2003 (Regina) Removed the former BMIM "set" option (now unsupported) from the query_execute command in the BMIM parser. Now, trying to use the "set" option will produce a syntax error. (modified database/BmimParser.y) 2. Incident ID: 11494, Date of change: 10.23.2003 (Geoffrey) Environment variable XMIM_LOCALE is now used to change the Date Condition dialog in XMIM client. If XMIM_LOCALE is set to US, or is not set, the dialog will be the US Date Condition dialog. Otherwise, the dialog will be the EU Date Condition dialog. (view/vDateDialog.C) 3. Incident ID: 10380, Date of change: 10.24.2003 (Regina) The "value" option was not working with an offset on a holiday date. This query: "SHOW 1: IBM 10 values ago when Date is 12/25/2002" would return a NaN because 12/25 is a holiday. We didn't try to retrieve the "10 values" before 12/25/2002. This problem is now fixed. (modified execution/ex_time_offset.C) 4. Incident ID: 11671, Date of change: 10.29.2003 (Regina) Query process inconsistency has been fixed: "on next { date is last day of the month }" was not returning expected results, whereas "on next { date is last day of the week }" was returning expected results. (modified execution/ex_date_cond.C) 5. Incident ID: 11580, Date of change: 10.28.2003 (Regina, Lisa) Adding BMIM entitlements_clear_users command. This new command leaves the groups and permissions in place, but removes all user/group pairs from the entitlements. Also, changed algorithm of entitlements so that if there are no users, it is same as if there are no entitlements (everyone gets in). (modified: api/api_lib_bmim.c api/api_lib_svr.h, api/api_svr_svc.[CH] api/api_lib_svr_util.c, api/api_svr_bmim.C, bmim/bmim.[CH], bmim/bmim_client_end.[CH], database/BmimLexer.l, database/BmimParser.y, database/bmim_server_end.[CH], database/sch_schema_multiple.[CH] database/sch_schema_single.[CH] database/sch_schema.H, sch_schema_4x.[CH], database/sch_string_hash.[CH], include/xmim_api.h) 6. Incident ID: 11963, Date of change: 10.31.2003 (Lisa) Fixing XML DTD for query results. missing or incorrect tags were: mimtime, mimvariables, mimstatistics. (modified util/util_reporter_file_xml.C, util/util_reporter_file_xml.H) 7. Incident ID: 12015, Date of change: 11.04.2003 (Lisa) When an unentitled relation/column was referenced in a LET statement of a query, the entitlement error message and XMIM_ERROR status was not being returned to the calling client code. (modified execution/ex_relcol.H, execution/ex_relcol.C, execution/ex_query.C, database/sch_schema_4x.C) 8. Incident ID: 12121, Date of change: 11.07.2003 (Lisa) Fix timing problems while loading entitlements information. Timing problems arise during entitlements_read, while there is incomplete information loaded. Also, added user name to entitlements error. (modified database/bmim_server_end.C, sch_auth.[CH], sch_schema.H, sch_schema_4x.[CH], sch_schema_multiple.[CH], sch_schema_single.[CH], execution/ex_query.C) 9. Incident ID: none, Date of change: 10.22.2003 (Shannon) Remove xerces from XMLPropList and don't link with it anymore. (util/XMLPropList.[CH], Makefile - remove xerces from link) 10. Incident ID: 10491, Date of change: 11.11.2003 (Shannon) Fixed space allocator to be conservative for new options facility structure. Completely backwards compatible. (modified database/sch_schema_4x.C) 11. Incident ID: none, Date of change: 11.13.2003 (Shannon) Another fix for options. (modified api/api_svr_data.C) 12. Incident ID: none, Date of change: 11.07.2003 (Lisa) add_id and list_id weren't behaving properly. they had a mix of old file i/o and new file i/o. (modified schema/list_ids.C, schema/check_ids.C, Makefile) 13. Incident ID: 12121, Date of change: 11.19.2003 (Lisa) Change storage for user_name on the sch auth structure. (modified database/sch_auth.[CH], sch_schema_4x.C) 14. Incident ID: 12383, Date of change: 11.20.2003 (Lisa) fix performance problem associated with doing 'fstat' in the constructor for XMIM_FILE (ESP10574). Needed to also do the 'fstat' in the fopen() in case the fp wasn't available at construction time. Since 'fstat' had never been done on the file, the 'reloadIfNecessary()' method always said to reload the table, so the tables were loaded too many times during the MIMC initialization. This problem was causing MIMIC to have a long delay while bringing up a worksheet in releases 4.3.09, 4.3.10, 4.3.11. (modified util/util_xmim_file.[CH]) Version 4.3.13 (full build, bad) -------------------------- Version 4.3.14 (incremental build from 4.3.12) -------------------------- 1. Incident ID: 12157, Date of change: 11.13.2003 (Geoffrey) Change default precision to 4 (modified util/util_xmimrc_inlines.H, model/mExecOptions.C) 2. Incident ID: 2323, Date of change: 11.14.2003 (Geoffrey) Adding Martin Luther King Day as holiday to xmim client. (Modified view/vDateDialog.C) Version 4.3.15 (incremental build from 4.3.12) -------------------------- 1. Incident ID: 12098, Date of change: 12.02.2003 (Lisa) Fixed a large memory leak with let statements in queries. (modified: execution/ex_let_block.C) 2. Incident ID: none, Date of change: 12.02.2003 (Shannon) Partial fix for problems with XmimAddFormula query / file issues. (modified: database/bmim_server_end.C, api/api_lib_bmim.c) 3. Incident ID: 12553, Date of change: 12.05.2003 (Lisa) Fixed the "cannot read timeseries from disk" problem, which was initially caused when adding a feature for 10238. (modified ts/ts_mod_modifier_inlines.H) Version 4.3.16 (incremental build from 4.3.12) -------------------------- 1. Incident ID: 12786, Date of change: 12.12.2003 (Lisa) fixed bug where you would get error "Can't retrieve formula for relation of column" when trying to perform XmimGetRecords() or XmimVaGetRelColumn() api functions. (modified database/sch_schema_4x.C) Version 4.3.17 (incremental build from 4.3.12) -------------------------- 1. Incident ID: 11310, Date of change: 01.09.2004 (Lisa) Added back BMIM "set" option to the query_execute command in the BMIM parser. Although the syntax is obsolete, some customers are successfully using it. (modified database/BmimParser.y) 2. Incident ID: 4096, 13162, 13175, Date of change: 12.01.2003 (Regina) "from ... to" syntax was not working properly for %move. (modified: execution/ex_date_cond.C) 3. Incident ID: 11671, 4558, Date of change: 12.02.2003 (Regina) "last day of ..." now works for weeks, months, quarters and years. This is a "re-fix" of this incident. Fix no longer interfering with fix for ESP4096. (modified: execution/ex_date_cond.C, execution/ex_date_cond_inlines.H, execution/ex_date_cond.H) Version 4.3.18 (incremental build from 4.3.14) -------------------------- 1. Incident ID: related to 14757, 14960, Date of Change: 04.01.2004 (Stephen) Changed rollover so it no longer calls getRelcols(). getRelCols() is slow because of changes for formulas.N Now rollover code calls a new method: getRelcolsWithoutFormulas(). (modified database/sch_schema_4x.[CH], database/roll_comp.[CH], database/sch_schema_single.[CH]) (fixed in 4.4.14) 2. Incident ID: 14960, Date of change: 04.13.2004 (Lisa) Changed entitlements so that it no longer checks futures contracts or continuous contracts for entitlements. It only checks the parent futures contract for entitlements if that is referenced in the query or retrieval. The performance hit is too great for checking futures individual contracts. (modified database/sch_schema_4x.C) (fixed in 4.4.14) 3. Incident ID: 14261, Date of change: 03.01.2004 (Lisa) xmim_server was seg'v'ing more often probably due to having faster hardware. We added a loop to avoid race conditions when bringing up the slave. Also, we added code to check the client handle before calling xmim_clnt_call, so that the core dumps will stop even if there is a race condition. (modified api/api_wrp_slave_inlines.H, api/api_wrp.C) (fixed in 4.4.09) Version 4.3.19 (incremental build from 4.3.14) -------------------------- 1. Incident ID: related to 14757, 14960, Date of Change: 04.01.2004 (Stephen) Fix problem with this fix: Changed rollover so it no longer calls getRelcols(). getRelCols() is slow because of changes for formulas.N Now rollover code calls a new method: getRelcolsWithoutFormulas(). (modified database/sch_schema_4x.[CH], database/roll_comp.[CH], database/sch_schema_single.[CH]) (fixed in 4.4.14) Version 4.3.20 (incremental build) -------------------------- 1. Incident ID: 15956, 16148, Date of change: 05.24.2004 (Stephen) A change for incident 3257 caused a bug in sparse fill forward. The last data point wasn't being filled forward, instead it was being overwritten and set to fill_nan. This causes undesired behavior when trying to perform UnSplits. (modified ts/ts_time_series.C) (fixed in 4.4.18) 2. Incident ID: 15359, Date of change: 04.29.2004 (Regina) XML not generating correct tag for "IF ... ENDIF" variable (modified util/util_reporter_file_xml.C) (fixed in 4.4.17) 3. Incident ID: 15238, Date of change: 04.21.2004 (Stephen) XML did not respect the precision argument (%exec.precision) in a query. (modified util/util_reporter_file_xml.C) (fixed in 4.4.17) Version 4.3.21 (incremental build) -------------------------- 1. Incident ID: 15649, Date of change: 06.08.2004 (Lisa) Changed generate_xml() method so that it uses column-id's instead of column-name's, so that the Java XML API can handle non-unique column names. (modified api/api_svr_schema.C) (fixed in 4.4.18) Version 4.4.05 (full build) -------------------------- (4.4.x code supports use of formulas. 4.3.x code does not have complete formula support.) 1. Incident ID: None, Date of change: 10.17.2003 (Stephen) Removed all references to SchSchema3x. Removed many files from the Makefile so 3x code won't be linked into the server. 2. Incident ID: None, Date of change: 10.23.2003 (Lisa) Fixed memory leaks in the XML code found while Purify'ing the testsuite. (modified util/util_reporter_file_xml.C, util_reporter_file_xml.H, util_xml_string_builder.H, util_xml_string_builder.C) 3. Incident ID: 9534, Date of change: 10.14.2003 (Ruben) Added support in the query language parser for "WHEN Date is Column of SYMBOL first_data_day". There is no support in the GUI menus. You must type the query in with advanced mode. (parser/par_parser.[CH], can update par_tokens.[CH], can update par_model_gen.[CH], can update execution/co_date_cond.C, can update ex_relprop.[CH], can update ex_relprop_inlines.H, can update model/mContextMgr.C, can update) 4. Incident ID: none, Date of change: 10.31.2003 (Lisa) Added "mimtime" tag to the XML DTD because it was missing. Also, removed redundant DTD string from the code. (modified util/util_reporter_file_xml.C) 5. Incident ID: none, Date of change: 11.07.2003 (Lisa) add_id and list_id weren't behaving properly. they had a mix of old file i/o and new file i/o. (modified schema/list_ids.C, schema/check_ids.C, Makefile) 6. Incident ID: 12321,4870, Date of change: 11.24.2003 (Regina) Miss-matched memory free caused volume data to be incorrect and causing slave crash. (modified: ts/ts_sub_day_io.C) 7. Incident ID: 2545, Date of change: 11.25.2003 (Regina) simple_rsi no longer returning a NaN for zero division. (modified: execution/ex_show_attr.C, execution/ex_object.H, exectution/ex_object_inlines.H, execution/co_builtins.C) 8. Incident ID: 12507, Date of change: 11.26.2003 (Shannon) Change XmimAddFormula API call to take the formula query string as the argument instead of a file name. Change bmim to read the file locally and send the string to the server. 9. Incident ID: 4096, Date of change: 12.01.2003 (Regina) "from ... to" syntax was not working properly. This fix removes the fix for ESP11671. (modified: execution/ex_date_cond.C) (fixed in 4.3.17) 10. Incident ID: 11671, 4558, Date of change: 12.02.2003 (Regina) "last day of ..." now works for weeks, months, quarters and years. Fix no longer interfering with fix for ESP4096 (modified: execution/ex_date_cond.C, execution/ex_date_cond_inlines.H, execution/ex_date_cond.H) (fixed in 4.3.17) 11. Incident ID: none, Date of change: 12.02.2003 (Shannon) Fixed problems with XmimAddFormula query / file issues. (modified: database/bmim_server_end.C, api/api_lib_bmim.c) 12. Incident ID: 12237, Date of change: 12.04.2003 (Geoffrey) Added GUI support for ESP9534. (Column is added to symbol in date GUI.) (modified: model/mQueryProtocol.H, mDateCond.C, view/vDateDialog.H, vDateDialog.C) 13.Incident ID: 7860, Date of change: 12.05.2003 (Regina) The "repeat for" was not working with "values" (modified execution/ex_time_offset.C, co_time_offset.C, execution/ex_show_attr.C) 14. Incident ID: 7384, Date of change: 12.10.2003 (Geoffrey) Fixed the "gap" in future contracts (modified database/roll_comp.C) 15. Incident ID: none, Date of change: 12.11.2003 (Regina) fixed compile errors for 'gmake text_client' (modified graphics/gDisplayBase.H, graphics/gDisplayBase.C) 16. Incident ID: 12215, Date of change: 12.11.2003 (Lisa) fixed bug with 64-bit API where GetVaDate() and GetVaTime() were only skipping over 4 bytes instead of 8. (modified api/api_lib_util.c) 17. Incident ID: 12786, Date of change: 12.12.2003 (Lisa) fixed bug where you would get error "Can't retrieve formula for relation of column" when trying to perform XmimGetRecords() or XmimVaGetRelColumn() api functions. Also, revised schema loading so that schema version is no longer incremented to version 9, but schema header is extended for formulas when necessary and possible. (modified database/sch_schema_4x.[CH]) (fixed in 4.3.16) 18. Incident ID: 12265, Date of change: 12.01.2003 (Craig) Save intraday corrections in multiple daily files to avoid a single file greater than 1.5G. 19. Incident ID: 12266, Date of change: 12.12.2003 (Craig) Added api XmimGetCorrections() provided initial functionality for api, still need to add robustness. (modified api/api_lib_data.c, api/api_lib_svr.h, api/api_lib_svr_util.c, api/api_lib_svr_util.h, api/api_lib_svr_xdr.c, api_lib_util.c, api/api_lib_util.h, api/api_svr_data.C, api/api_svr_data.C, api/api_srv_rslt.H, api/api_svr_rslt.C, api/api_svr_svc.C, api/api_svr_svc.H, api/api_svr_table.C, include/xmim_api.h, schema/Corrections.C, schema/Corrections.H) 20. Incident ID: 12787, Date of change: 12.15.2003 (Lisa) XmimAddFormula() was crashing the server when adding a very large formula query. (modified database/bmim_server_end.[CH], parser/par_model_gen.H, database/sch_schema_4x.H) Version 4.4.06 (incremental build from 4.4.05) -------------------------- 1. Incident ID: 12266, Date of change: 12.18.2003 (Craig) More fixes for corrections. Fixing some purify errors. (modified: api/api_svr_data.C, schema/Corrections.C, api/api_lib_data.c, api/api_svr_rslt.C, database/bmim_server_end.C) Version 4.4.07 (full build) -------------------------- 1. Incident ID: 12866, Date of change: 12.18.2003 (Regina) Added Text Client which needed libraries libTextClientApi.so and libTextClient.so to be created. added: java/src/c/XmimNativeApi/TextClientApi.c view/vTextClient.H include/text_client.h apps/ssl-xmim/text_client.h changed: java/src/c/XmimNativeApi/XmimNativeApi.c java/src/c/XmimNativeApi/makefile.sol Makefile view/vTextClient.C include/xmim_api.h apps/ssl-xmim/xmim_api.h 2. Incident ID: 12890, Date of change: 12.31.2003 (Geoffrey) Fix tick_convert fact_write time index problem (modified ts/ts_sub_day_io.C, ts_mod_modifier_inlines.H) 3. Incident ID: none, Date of change: 12.15.2003 (Ruben) Added more support for SOAP. Files checked in have *** empty log message ***, modified on 2003/12/15. 4. Incident ID: 13057, Date of change: 12.31.2003 (Stephen) Fixed slave crash caused by XmimGetXMLRelationInfo(). 5. Incident ID: 12863, Date of change: 12.30.2003 (Craig) Added XmimDeleteCorrections() api function. (modified api/api_lib_data.c, api_lib_svr.h, api_lib_util.[ch], api_svr_data.C, include/xmim_api.h, schema/Corrections.[CH]) Version 4.4.08 (full build) -------------------------- 1. Incident ID: 11310, Date of change: 01.09.2004 (Lisa) Added back BMIM "set" option to the query_execute command in the BMIM parser. Although the syntax is obsolete, some customers are successfully using it. (modified database/BmimParser.y) (fixed in 4.3.17) 2. Incident ID: 12778, Date of change: 01.13.2004 (Lisa) Improved performance of multi-field (composite) columns by removing unnecessary read-locks. (modified database/sch_schema_4x.[CH], sch_schema_3x.[CH], sch_schema_single.H, api/api_svr_data.C) 3. Incident ID: 8974, Date of change: 01.8.2004 (Tom) Fixed problem in mimdbcp. Now doing SCM lookup using "gh_lookup", since the previous function is obsolete. (modified apps/mimdbcp/main.cc) Version 4.4.09 (full build) -------------------------- 1. Incident ID: 13240, Date of change: 01.23.2004 (Geoffrey) Fixed the nearest_integer builtin return -0.0000 problem. This problem caused a query which should return zeros to return negative numbers instead. (modified execution/ex_builtin_binary.C) 2. Incident ID: none. Date of change: 01.23.2004 (Craig, Lisa) 64-bit fixes. (modified api/api_svr_data.C, ) 3. Incident ID: none. Date of change: 01.26.2004 (Shannon) fixes to load_updates script. fixed genexdate test. (modified sascripts/templates/load_updates.sh) 4. Incident ID: 13179. Date of change: 01.30.2004 (Lisa) Fixed purify memory errors found in table facility when running the ThreadTest sample program for Java XML/RPC mode. (modified api/api_svr_handle.C, api/api_svr_table.C) 5. Incident ID: 13560. Date of change: 01.30.2004 (Lisa) Fixed purify-reported memory leaks found when running the 2 new queries sent to me by markethistory.com. (modified model/mMacroDef.C) 6. Incident ID: 12866. Date of change: 01.30.2004 (Regina) Now have a conditional to #include if we are building without OI. (modified view/*, gui/*, graphics/*, Makefile) regex and regcmp were not defined with WITHOUT_OI flag. (modified util/util_regexp_inlines.H) nint was not defined with WITHOUT_OI (modified util/rounding.h) 7. Incident ID: 13509. Date of change: 01.30.2004 (Tom) mimdbcp utility: Fixed logic to correctly delete allocated memory. Added conditional logic to skip walking the relational hierarchy for invalid relations. Added '-V' to print version and fixed '-l' to log stdout. Changed exit messages to read "closing" instead of "deleting". (modified apps/mimdbcp/main.cc, apps/mimdbcp/mim_db_copy.cc, apps/mimdbcp/mim_server.cc) 8. Incident ID: 13595. Date of change: 02.01.2004 (Lisa) Large error messages were crashing the clients. Fixed slave to truncate error messages to 1024 bytes. (modified util/Utils.C, execution/co_let.C) 9. Incident ID: none. Date of change: 02.02.2004 (Shannon) win32 add /vmg so virtuals are processed legally. (modified Makefile) remove udp for win32 server (modified api/api_svr_svc.C) reorder calls to mktemp to avoid clobber of input by output (modified api/api_svr_bmim.C) win32 don't translate path in bmim chdir (modified bmim/bmim.C) win32 server (modified database/bmim_server_end.C) remove win32 ssize_t and size_t decl (modified include/xmim_api.h) replace flushall with commit (modifed ts/ts_vector.C, util/util_xmim_file.[CH]) 10. Incident ID: 13323, Date of change: 02.03.2004 (Slongo) added "formula" permissioning to the BMIM 'grant_app_perm' and 'print_app_perms' commands. These 2 commands now support these 3 applications: "excel", "mimic", "formula" (modified bmim/bmim.C) 11. Incident ID: None, Date of change: 02.18.2004 (Lisa) Fixed problem with GET_CORRECTION/DEL_CORRECTION in the middle of an enum, which was breaking compatibility between new servers / old clients, and vice versa. (modified api/api_lib_svr.h) 12. Incident ID: 13964, Date of change: 02.17.2004 (Stephen) Added new API call: XmimGetTargetForRelationAlias(). Without this API call, there is no way to determine if a relation is an alias or not. There was also no way to determine what relation an alias pointed to. This API solves both of those problems. (modified api/api_lib_svr.h, include/xmim_api.h, api/api_lib_schema.c, api/api_lib_svr_util.c, api/api_svr_schema.C, api/api_svr_svc.C, api/api_svr_svc.H) 13. Incident ID: 14261, Date of change: 03.01.2004 (Lisa) xmim_server was seg'v'ing more often probably due to having faster hardware. We added a loop to avoid race conditions when bringing up the slave. Also, we added code to check the client handle before calling xmim_clnt_call, so that the core dumps will stop even if there is a race condition. (modified api/api_wrp_slave_inlines.H, api/api_wrp.C) (fixed in 4.3.18) == skip 4.4.10 and 4.4.11. They are really 4.5.x == Version 4.4.12 (build from 4.4.09, plus this fix) -------------------------- 1. Incident ID: 14563, Date of change: 03.15.2004 (Shannon) Fixed bug in xmim_client ... in fake_sed(), a size_t needed to be a ssize_t. This bug was causing xmim_client to loop infinitely when running a search and replace. (modifed util/Utils.C) Version 4.4.13 (build from 4.4.09, plus these selected fixes) -------------------------- 1. Incident ID: 13867, Date of change: 02.12.2004 (Lisa) BMIM dump_expiration_dates was not working properly on some Linux boxes due to a problem where we were calling fclose on a file even when it had not been opened. (modified bmim/bmim.C, util/util_xmim_file.C) 2. Incident ID: 14261, Date of change: 03.01.2004 (Lisa) xmim_server was seg'v'ing more often probably due to having faster hardware. We added a loop to avoid race conditions when bringing up the slave. Also, we added code to check the client handle before calling xmim_clnt_call, so that the core dumps will stop even if there is a race condition. (modified api/api_wrp_slave_inlines.H, api/api_wrp.C) 3. Incident ID: 14217, Date of change: 03.08.2004 (Stephen) Added new utility, xmim_get_rel_paths. 4. Incident ID: 14563, Date of change: 03.15.2004 (Shannon) Fixed bug in xmim_client ... in fake_sed(), a size_t needed to be a ssize_t. This bug was causing xmim_client to loop infinitely when running a search and replace. (modifed util/Utils.C) 5. Incident ID: 14585, Date of change: 03.16.2004 (Shannon) Fix byte order for Linux with SelectRecords api's. (modified api/api_svr_data.C) 6. Incident ID: 13944, Date of change: 03.19.2004 (Geoffrey) Fix the LET statement multi file bug (modified api/api_svr_query_util.C) Version 4.4.14 (build from 4.4.13, plus these selected fixes) -------------------------- 1. Incident ID: related to 14757, 14960, Date of Change: 04.01.2004 (Stephen) Changed rollover so it no longer calls getRelcols(). getRelCols() is slow because of changes for formulas.N Now rollover code calls a new method: getRelcolsWithoutFormulas(). (modified database/sch_schema_4x.[CH], database/roll_comp.[CH], database/sch_schema_single.[CH]) (fixed in 4.3.19) 2. Incident ID: 14960, Date of change: 04.13.2004 (Lisa) Changed entitlements so that it no longer checks futures contracts or continuous contracts for entitlements. It only checks the parent futures contract for entitlements if that is referenced in the query or retrieval. The performance hit is too great for checking futures individual contracts. (modified database/sch_schema_4x.C) (fixed in 4.3.19) Version 4.4.15 (build from 4.4.14, plus this fix) -------------------------- 1. Incident ID: 15175, 15868, Date of change: 04.22.2004 (Tom) Removed a debug print statement from the option code, which was causing a performance problem, and was clustering the monitor. (modified util/XMLPropList.C) Version 4.4.16 (build from 4.4.15, plus this fix) -------------------------- 1. Incident ID: 15137, Date of change: 04.28.2004 (Lisa) Added print methods in MIM_DEBUG mode to print hash table errors. DID NOT ADD ALL CODE. JUST DID THE FOLLOWING: hand-edit sch_multihash.CH - add print method hand-edit sch_block_array.C - fix potential bg with hash table size hand-edit sch_schema_4x.C - added the print calls Version 4.4.17 (build from 4.4.16, plus these fixes) -------------------------- BUG FIXES FOR CUSTOMERS: (undo the hash table debug flag) 1. Incident ID: 15378, Date of change: 04.27.2004 (Lisa) Formula_password table is now case_insensitive. (modified api/api_svr_table.C) 2. Incident ID: 15359, Date of change: 04.29.2004 (Regina) XML not generating correct tag for "IF ... ENDIF" variable (modified util/util_reporter_file_xml.C) (fixed in 4.3.20) 3. Incident ID: 15238, Date of change: 04.21.2004 (Stephen) XML did not respect the precision argument (%exec.precision) in a query. (modified util/util_reporter_file_xml.C) (fixed in 4.4.17, 4.3.20) 4. Incident ID: 11671, 15475, Date of change: 05.11.2004 (Regina) The "next" nonfarm.rpt payroll report is jumping past the next and returning the one after that. The original fix for 11671 caused this error. Put a new fix in. (modified execution/ex_date_cond.C) 5. Incident ID: 15478, Date of change: 05.12.2004 (Geoffrey) Fix the on previous last day of the month on last day of the month is not right day bug. (modified execution/ex_date_cond.C) 6. Incident ID: 13662, Date of change: 03.24.2004 (Geoffrey) Fixed the xmim_client disappears after xmim server goes down bug. (modified channel/RPCChannelClntEnd.C, api/api_lib_misc.c) 7. Incident ID: 14715, Date of change: 05.11.2004 (Lisa, Shannon) Fixed problem where "server.info -r" caused each database to be listed twice in the database list of the MIM Server. (modified api/api_wrp_inlines.H) 8. Incident ID: 14195, Date of change: 05.12.2004 (Shannon) Incorrect error message on facts_read when file is empty. New error message: ERROR: read_facts line 4412 in make_data | ERROR: read_facts line 1 | Cannot Read, File is empty: /home/lim/tmp/cftc_cot_d_0.prn (modified database/bmim_server_end.C) 9. Incident ID: 14608, Date of change: 05.18.2004 (Tom) Modified code to add the Option candidates only once. It was adding the Option descendents twice, which of course created duplicate results. (modified api/api_svr_data.C) 10. Incident ID: 15283, Date of change: 05.21.2004 (Lisa) Fixed BMIM so that it does not produce erroneous error message about duplicate categories for futures relations. (modified bmim/bmim.C) Version 4.4.18 (incremental build) -------------------------- BUG FIXES FOR CUSTOMERS: 1. Incident ID: 16104, Date of change: 06.23.2004 (Tom) If a single relation, then switch to single schema, and lock once Removed debug call to getRelationName (api/api_svr_data.C) 2. Incident ID: 15956, Date of change: 05.24.2004 (Stephen) A change for incident 3257 caused a bug in sparse fill forward. The last data point wasn't being filled forward, instead it was being overwritten and set to fill_nan. This causes undesired behavior when trying to perform UnSplits. (modified ts/ts_time_series.C) (fixed in 4.3.20) 3. Incident ID: 15649, Date of change: 06.08.2004 (Lisa) Changed generate_xml() method so that it uses column-id's instead of column-name's, so that the Java XML API can handle non-unique column names. (modified api/api_svr_schema.C) 4. Incident ID: 15407, Date of change: 06.15.2004 (Geoffrey) Fix the multi relations in LET statement cause query quit bug. (modified execution/ex_const.C) 5. Incident ID: 16394, Date of change: 06.21.2004 (Geoffrey) Fix the EURUSD in query can not be graph bug. (modified execution/ex_query.C) 6. Incident ID: 15269, Date of change: 06.22.2004 (Lisa) Fixed BMIM formula_add command. Files changed: bmim.[CH], BmimParser.y, bmim_client_end.[CH], bmim_facts.H 7. Incident ID: 14785, Date of change: 05.27.2004 (Geoffrey) Improve the query performance that expiration day is in from to date condition. (modified execution/ex_query.H, ex_query_inlines.H, ex_object.C) (this performance improvement was undone by later fix 17328) 8. Incident ID: 16705, Date of change: 06.28.2004 (Shannon) 2 fixes made while testing Linux with RT data. (modified apps/rtfeed/xmim_rt_update.c, util/util_file.H) Version 4.4.19 (incremental build) -------------------------- BUG FIXES FOR CUSTOMERS: 1. Incident ID: 17541, Date of change: 08.17.2004 (Lisa) Slave server crash caused by XML client. strncmp was used after strtok without checking if strtok returned NULL. (modified util/util_reporter_file_xml.C) 2. Incident ID: none, Date of change: 08.17.2004 (Lisa) Added oncrpc.dll and oncrpc.lib back into the "lib" directory of the release area. It is indeed necessary for 4.4.x. Version 4.4.20 (build is no good) -------------------------- Version 4.4.21 (incremental build) -------------------------- BUG FIXES FOR CUSTOMERS: 1. Incident ID: 17727, Date of change: 08.26.2004 (Lisa) slave server was crashing on XmimVaSelectRecords with condition 'when date is from 1/1/1999 to 1/1/1998'. Fixed two problems with empty data results. (modified util/MimDynArrayGeneric.C, api/api_svr_data.C) 2. Incident ID: 17099, Date of change: 08.10.2004 (Geoffrey) Fix Profit/Loss query rollover data problem. (modified execution/ex_object.C) 3. Incident ID: 17328, Date of change: 08.12.2004 (Geoffrey) Fix builtin function periods_in_range bug. (modified execution/ex_object.C) ENHANCEMENTS FOR CUSTOMERS: 4. Incident ID: 16098, Date of change: 07.06.2004 (Stephen) Added new API call to get server update log in buffered chunks. Modifications to Publisher. (modified lots of files). 5. Incident ID: none, Date of change: 08.27.2004 (Lisa) Added xmim_get_col_paths utility to the release. BUG FIXES FOR PROBLEMS FOUND INTERNALLY: 6. Incident ID: 17883, Date of change: 09.02.2004 (Stephen) 4.4.20 caused a problem with creating a small database. Fixed the problem here in 4.4.21. (modified database/sch_schema_4x.C) Version 4.4.22 (incremental build) -------------------------- BUG FIXES FOR CUSTOMERS: 1. Incident: 18069, Date of change: 10.11.2004 (Lisa) Write the disconnect to the log for log_level 4 and 5. (modified api/api_svr_svc.C, api_svr_svc.H, schema/DataLogger_inlines.H) Fixed problem with this fix: modified api/api_svr_svc.C 2. Incident ID: none, Date of change: 09.14.2004 (Stephen, Shannon) Changed library name for apps/common from libcs.so to libxmim_cs1.so because libcs.so is the name of a Sybase connection library. 3. Incident ID: none, Date of change: 08.17.2004 (Lisa) Added oncrpc.dll and oncrpc.lib back into the "lib" directory of the release area. It is indeed necessary for 4.4.x. BUG FIXES FOR PROBLEMS FOUND INTERNALLY: 4. Incident ID: 18734, Date of change: 08.14.2004 (Lisa) Changed mimdbcp to not add the "segments" on the XmimVaAddRelation. They were conflicting with the start_trade and end_trade. (modified apps/mimdbcp/mim_server.cc) 5. Incident ID: 18732, 18733, Date of change: 08.15.2004 (Tom, Lisa) Added a from_date to mimdbcp, and fixed a performance bug with copying tick data. (modified apps/mimdbcp/main.cc, mim_db_copy.[cc, hh], mim_server.[cc, hh] Version 4.4.23 (incremental build) -------------------------- BUG FIXES FOR CUSTOMERS: 1. Incident: 18695, Date of change: 10.13.2004 (Lisa) Fixed memory problems that caused a slave server crash at customer site while loading updates. (modified api/api_svr_data.C, ts/ts_iterator.C, api/api_svr_util.C) BUG FIXES FOR PROBLEMS FOUND INTERNALLY: 2. Incident: 18387, Date of change: 10.01.2004 (Lisa) Gracefully handle the error where you have a partial-write that was interrupted, but now can't be completed due to an error. Abandon the completion of the partial-write and continue on to the newly-requested write processes. (Previously, in debug mode, there was an assert. In production, the write proceeded in places where it shouldn't). (modified database/sch_block_array.C) 3. Incident ID: 18594, Date of change: 10.21.2004 (Lisa) Attempt to try to fix problems connecting when running load_updates. Problems were found in 2 places: master connecting to slave, and client connecting to master. Added a sleep before connect, and increased the connection wait_time (wait_time affects number of retries). (modified api/api_wrp_slave.C, api/api_lib_util.c) 4. Incident ID: 13179/14915 Date of change: 07.29.2004 (Craig) Too many clients (threaded or not) were overwhelming the server because tables were not being closed. Added close_tab function in xmim_server::get_string_data() (modified api/api_svr_schema.C) 5. Incident ID: 16602, Date of change: 08.11.2004 (Lisa) Fixing display of error message for lock_files. (modified util/util_xmimusers.[CH], api/api_svr_misc.C, api_wrp.C schema/sch_schema_3x.[CH], sch_schema_4x.[CH], sch_schema_mimdb.H (4.4.24 is a LINUX release only!! Did not build on Solaris) Version 4.4.24 (incremental build) -------------------------- BUG FIXES/ENHANCEMENTS FOR PROBLEMS FOUND INTERNALLY: 1. Incident: 18780, Date of change: 01.11.2005 (Craig) added comand-line option to set contracts_only (modified apps/mimdbcp/main.cc, mim_db_copy.cc, mim_db_copy.hh) 2. Incident: 22688, Date of change: 05.25.2005 (Lisa) Use util_readdir() logic in the 4.4.x release, hoping to allow customer to utilize the GFS filesystem on Linux. 3. Using gcc-3.4.3 with libstdc++.so.6.0.3 Version 4.4.25 (incremental build) -------------------------- BUG FIXES/ENHANCEMENTS FOR PROBLEMS FOUND INTERNALLY: 1. Incident ID: 25183, Date of change: 09/14/2005 (Lisa) The MIM shouldn't delete RTD data. Customer does that with "rm". "deleteRtdRecords" (called by delete_facts) was causing the slave to never return. (modified: database/sch_schema_4x.C, sch_schema_mimdb_inlines.H, rtd/db_rtd_storage.C, ts/ts_sub_day_typed.C, ts_sub_day_typed_inlines.H) Version 4.4.26 (incremental build) -------------------------- BUG FIXES/ENHANCEMENTS FOR PROBLEMS FOUND INTERNALLY: 1. Incident: xxxxxx, Date of change, 10/14/2005 (Shannon) bmim_client cores when slave server crashes in unlock files (modified api/api_lib_util.c) 2. Incident: 25988,20082,22145,25905 Date of change: 10/05/2005 (Shannon) Fixed a seg'v on schema growth. This was a 32-bit and 64-bit bug, but was showing up on our 64-bit databases (modified database/sch_block_array_inlines.H) 3. Incident: 19372, Date of change: 11.16.2004 (Lisa) Better fix for makeConsistentAux method. Closed up a hole that was allowing hash-tables to write out past their curSize. Fixed infinite loop in the method in a better way than previously. especially the relcol_property tables. (modified sch_block_array.[CH], sch_block_array_inlines.H) 4. Incident: 19442, Date of change: 11.24.2004 (Lisa) Fixing problem found where loading an mjk package causes "Can not read time series from disk" error. Here are the fixes: a) Relation name was incorrect or often missing in the 'Unable to Read the Time Series %s from disk' error message. Also, added the column name to the message. (modified ts/ts_time_series.C) b) Fixed bad place when reading timeseries where offset got off by 4 bytes. (modified ts/ts_pers_store.C) 5. Incident ID: 16761, Date of change: 07.07.2004 (Geoffrey) Adding relation name to time series error message, "Unable to read the timeseries from disk". (modified ts/ts_time_series.H, ts_time_series.C, ts_pers_store.C, database/sch_schema_4x.C) 6. Incident ID: xxxxx, Date of change: 10.18.2005 (Lisa) Update mimdbcp to top-of-tree level. (modified: main.cc, mim_db_copy.cc, mim_db_copy.hh, mim_server.cc, mim_server.hh, mimdbcp.cfg) Version 4.5.01 (build from top-of-tree) -------------------------- BUG FIXES FOR CUSTOMERS: 1. Incident ID: 13867, Date of change: 02.12.2004 (Lisa) BMIM dump_expiration_dates was not working properly on some Linux boxes due to a problem where we were calling fclose on a file even when it had not been opened. (modified bmim/bmim.C, util/util_xmim_file.C) (fixed in 4.4.13) ENHANCEMENTS FOR CUSTOMERS: 2. Incident ID: 13870, Date of change: 02.19.2004 (Geoffrey) Adding mid_point as builtin function. It is the same as midpoint builtin function. This fixes a problem when there is also a "midpoint" column that conflicts with the name of the "midpoint" builtin. (modified parser/BNF-new.lisp, par_tokenizer.C, model/mTokenDict.C, channel/channel.C) 3. Incident ID: 13964, Date of change: 02.17.2004 (Stephen) Added new API call: XmimGetTargetForRelationAlias(). Without this API call, there is no way to determine if a relation is an alias or not. There was also no way to determine what relation an alias pointed to. This API solves both of those problems. (modified api/api_lib_svr.h, include/xmim_api.h, api/api_lib_schema.c, api/api_lib_svr_util.c, api/api_svr_schema.C, api/api_svr_svc.C, api/api_svr_svc.H) (fixed in 4.4.09) 4. Incident ID: 13916, Date of change: 03.01.2004 (toms) Created a new application command to calculate the implied volatility for a futures commodity based on the futures options data. (added to apps/xmim_get_impvol: Makefile, params.H, xmim_get_impvol.C, quant_math.C, quant_math.H) (fixed in 4.4.17) 5. Incident ID: 13350, Date of change: 03.08.2004 (Geoffrey) Adding new builtin function median (added util/ListNode.H, ListNode.C, List.H, List.C. modified channel/channel.C, execution/ex_types.H, TEMPLATE_SPEC, co_builtins.C, ex_builtin_sums.H, ex_builtin_sums.C, ex_builtin_sums_result.H, ex_builtin_sums_result_inlines.H, parser/BNF-new.lisp, BNF.lisp, par_model_gen.C, par_tokenizer_inlines.H, par_tokenizer.C model/mValues.H, mTokenDict.C, instance/xmim_slave_server_inst.C, Makefile) 6. Incident ID: 14217, Date of change: 03.08.2004 (Stephen) Added new utility, xmim_get_rel_paths. (fixed in 4.4.13) 7. Incident ID: none, Date of change: 02.12.2004 (Slongo) Removed need for oncrpc.lib and oncrpc.dll. oncrpc support is now built into xmim4.dll and xmim4.lib. This reduces confusion with DLL's at customer sites. BUG FIXES FOR PROBLEMS FOUND INTERNALLY: 8. Incident ID: 14007, Date of change: 02.13.2004 (Craig) bmim_client leaked memory during facts_read if file is set as unreadable. (modified bmim/bmim_facts.C, api/api_lib_svr_util.c) 9. Incident ID: 14261, Date of change: 03.01.2004 (Lisa) xmim_server was seg'v'ing more often probably due to having faster hardware at LIM. We added a loop to avoid race conditions when bringing up the slave. Also, we added code to check the client handle before calling xmim_clnt_call, so that the core dumps will stop even if there is a race condition. (modified api/api_wrp_slave_inlines.H, api/api_wrp.C) STILL UNDER DEVELOPMENT: 10. Incident ID: 14011, Date of change: 02.11.2004 (Shannon) Stop use of portmapper. Added -M flag to xmim_server and xmim_slave_server. This stops registration with the portmapper. 11. Incident ID: 14011, Date of change: 02.11.2004 (Shannon) Support well known port assignments. For master (-p) and slave (-n) flags, range 0-128 are standard and assigned to the portmapper. Range 1056-127968 are explicit ports. Typically values will be in the range 1056 to 12000 every 32. The TCP port is mapped back to a RPC program number. (tcp port - 1024)/32 + 128. The ports are used in 32 port blocks. Example: port 8128. (xmim_server -p 8128 -M). Tcp ports will be: 8128=master, 8129=4091 writer slave, 8130=tick writer, 8128+4=slave 0, 8128+5=slave 1, ... RPC program number will be (8128 - 1024)/32 + 128 = 350 (modified api/api_lib_bmim.c, api/api_lib_misc.c, api/api_lib_rpc.c, api/api_lib_rpc.h, api/api_lib_svr_util.c, api/api_lib_svr_util.h, api/api_lib_util.c, api/api_rpc.c, api/api_rpc.h, api/api_soap_methods.c, api/api_svr_svc.C, api/api_svr_svc.H, api/api_wrp.C, api/api_wrp.H, api/api_wrp_inlines.H, api/api_wrp_slave.C, api/api_wrp_slave_inlines.H, main/api_svr_main.C, main/api_wrp_main.C, main/service.c, main/svr_info.C) 12. Incident ID: 12866, Date of change: 02.12.2004 (Regina) Continuing work on new client: Removed EXPO. (modified channel/ch_result_holder.[CH], channel/ch_row_obj.[CH] model/mQueryModel.C, model/mQueryModel.H, model/mQueryModel2.C) Port to Linux. (modified instance/text_client_inst.C, view/vTextClient.C, view/vToplevelAppWindow.H, view/vViewBaseClass.H, view/vXMIMMainAppWindow.C) 13. Incident ID: none, Date of change: 02.10.2004 (Shannon) Fix remove of old files in the load_updates script. (modified sascripts/templates/load_updates.sh) 14. Incident ID: 13944, Date of change: 02.25.2004 (Lisa) Fixing purify errors in query that crashes the slave. (fixes still in progress) (modified model/mSecurity.C, api/api_svr_bmim.C api_svr_query_util.C) (fixed in 4.4.13) 15. Incident ID: N/A, Date of change: 02.24.2004 (Shannon) Create static port number on Solaris. Pass -M to slave started by master. Fix port number in xmim_svr_info message. Add -I to pass IP address to client instead of hostname. Version 4.5.02 -------------------------- BUG FIXES FOR CUSTOMERS: 1. Incident ID: 14585, Date of change: 03.16.2004 (Shannon) Fix byte order for Linux with SelectRecords api's. (modified api/api_svr_data.C) (fixed in 4.4.13) 2. Incident ID: 13944, Date of change: 03.19.2004 (Geoffrey) Fix the LET statement multi file bug (modified api/api_svr_query_util.C) (fixed in 4.4.13) 3. Incident ID: 13966, Date of change: 03.15.2004 (Stephen & Slongo) Fixed memory leaks in the C library. Fixed memory errors in the WIN32 portion of the code in the C library. (modified api/api_lib_exec.c, api/api_lib_rpc.c, api/api_lib_svr.h api/api_lib_svr_exec_rslts.c, api/api_lib_util.c) ENHANCEMENTS FOR CUSTOMERS: 4. Incident ID: 14748, Date of change: 03.09.2004 (Shannon) Added switch to MIMDBCP utility to only copy the futures contracts and not the continuous contracts. After copying the futures contracts, the regen_continuous function is