ChangeLog for dal
=================
Version 1.199 - 2022-05-28 (RDS)
-------------------------------
+ (src/common/dal_utilities.cc/h) Added method to copy a column.
(SCR-7654)
Version 1.198 - 2021-09-15 (RDS)
-------------------------------
+ (src/readerwriter/MemFitsReaderWriter.cc) Explicitly add comments
for tables. This is to avoid comments being removed when a table
is opened in a file as "Modify" and when the MEMORY_MODEL=HIGH
(SPR-7608)
Version 1.197 - 2021-05-17 (RDS
-------------------------------
+ (src/readerwriter/HiLowFitsReaderWriter.cc) Removed the call
deleteCommentsAndHistory for tables and replaced it with a new
routine deleteHistory (SPR-7608)
Version 1.196 - 2020-06-10 (AI)
-------------------------------
+ (src/f90/dal_implementation.cc) New definition of Dope vector
template for "unsigned" and setcell.
Version 1.195 - 2020-06-08 (AI)
-------------------------------
+ (src/f90/dal_implementation.cc) New definition of Dope vector
templates.
+ Several no compliant UTF-8 characters removed from documentation.
Version 1.194 - 2019-02-28 (AI)
-------------------------------
+ (src/f90/dal_implementation.cc) New definitions of array descriptors
(Dope vectors) complain with new Fortran 2018 standards and gcc v8.0
and higher. Related to SOC-SPR-7550
Version 1.193 - 2019-02-28 (AI)
-------------------------------
+ (readerwriter/MemFitsReaderWriter.cc) The parameters units and arrayComments
are passed to addArray method in the wrong order.
Version 1.192 - 2018-02-13 (EO)
-------------------------------
+ This is a new major version of this package including a new GNU
Public License Text disclaimer required to distribute the SAS source
code to the Astronomical Community under the terms of the GNU Public
License. The text as it is shown below is the same that has been
included in all SAS source code files.
ESA (C) 2000-2018
This file is part of ESA's XMM-Newton Scientific Analysis System
(SAS).
SAS is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
SAS is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with SAS. If not, see .
---------------------------------------------------------------------
Version 1.191.1 - 2016-12-02 (AI)
-------------
+ (src/common/dal_utilities.cc) There was a bug in the calculation of
the number of elements in a string array. In Mac OSX (gcc 6.2) a seg.
fault was thrown (don't undestand why Linux could cope with this bug...)
Version 1.191 - 2016-08-24 (RDS)
-------------
+ (src/dal_utilities.cc) - Removed useless debug line
Version 1.190 - 2016-08-23 (RDS)
-------------
+ (src/ExtDal.cc) - Changed array to arrayB to avoid
problem with GCC 6
src/FitsReaderWriter.cc,
src/MemFitsReaderWriter.cc Solved issues with logical expressions
which were identified in GCC 6 testing
Version 1.189 - 2016-06-30 (AI)
-------------
+ (doc/reference/examples/stringcell.f90 setstringcell.f90)
Test cases upgraded to be compatible with gfortran compiler.
Version 1.188 - 2016-06-29 (AI)
-------------
+ Version 1.188 identical to 1.2
Version 1.2 - 2016-06-29 (AI)
-------------
+ (f90/dal_implementation.cc) - Dope (array descriptor)
compatibility changes with gfortran compiler.
Version 1.187 - 2014-04-15 (AI)
-------------
+ gcc4.8.2 portability changes
Version 1.186 - 2012-09-05 (RDS)
-------------
+ (f90/dal_implementation.cc) - Ensured that the internal vector
used for fast read of srting columns
is updated when setStringCell is
called (SCR-341)
Version 1.185 - 2012-07-17 (RDS)
-------------
+ (f90/dal_implementation.cc) - A new technique for speeding up
the reading of string columns.
+ interface/Dal.h Now uses an internal vector of strings
associated with a column
object (SCR-341)
Version 1.184 - 2012-05-23 (AI)
-------------
+ (src/FitsReaderWriter.cc) Bug regarding comment component searching fixed.
Before using the strcpy function to copy the comment component to a char*, now
we check that string find method returns a value within the string boundaries,
so the strcpy can be used safely.
Version 1.183.2 - 2011-02-18 (RDS)
-------------
+ cxxtest/testclobber - export SAS_CLOBBER and SAS_FORMAT
+ cxxtest/testformat - for SOLARIS fix
Version 1.183.1 - 2011-02-15 (RDS)
-------------
+ cxxtest/testclobber - SASCLOBBER to SAS_CLOBBER
Version 1.183 - 2009-11-23 (AI)
-------------
+ (DalAttribute.cc) The precision in the conversion to string in real attribute values
has been increased from 6 to 16. SOC-SPR-6578 closed.
Version 1.182.3 - 2009-06-30 (AI)
-------------
+ (HiLowFitsDatabase.cc) remove debug statement.
Version 1.182.2 - 2009-06-22 (AI, EO, RDS)
-------------
+ Modifications is several source files to make dal gcc 4.3 compliant.
Version 1.182.1 - 2007-06-08 (RDS)
-------------
+ doc/reference/examples/foreachblock.f90 - explicit intent for displayblock
+ test/sprtest/Makefile - adding extra test to avoid "_test" error.
Version 1.182 - 2005-03-01 (JSH)
-------------
+ SPR2491 - (MemFitsReaderWriter.cc) Verbosity level of "Optimal number of rows" message changes
+ SPR2417 - (dal_implementation.cc) F90 seek() rejects negative counts
+ SPR2523 - (dal_utilities.cc) Add TCROT to ColumnKeywords
Version 1.181.1 - 2004-03-05 (JSH)
-------------
+ SPR2478 - Fix spr2390_cfitsio test case for Tru64
Version 1.181 - 2003-08-29 (GV)
-------------
+ (MemFitsReaderWriter.cc) Get rid of the message about the
optimal number of rows cfitsio will read.
Version 1.180 - 2003-06-19 (GV)
-------------
+ A few more include of cassert in the test harnesses.
Version 1.179 - 2003-06-16 (GV)
-------------
+ Misc. fixes to make gcc-3.3 happy: include and/or
proper initialization of base classes.
Version 1.178 - 2003-06-13 (GV)
-------------
+ Add include in various places, to make gcc-3.3 happy.
Version 1.177 - 2003-05-06 (GV)
-------------
+ Re-upload of 1.176 to fix permissions problem.
Version 1.176 - 2003-04-21 (GV)
-------------
+ (dal_description.tex) fix inclusion of error/warning
documentation.
Version 1.175 - 2003-03-06 (GV)
-------------
+ (SmartDalImplementation.cc) add a C-style int cast to make
gcc-2.95.3 happy. This should not be needed.
Version 1.174 - 2003-03-03 (GV)
-------------
+ (SmartDal) tweak interface to open sets. Add utility functions
to read/write string rows.
Version 1.173 - 2003-02-26 (GV)
-------------
+ (SmartDal) removed unused variables that triggered a warning ->
error.
Version 1.172 - 2003-02-25 (GV)
-------------
+ (compoundnames.cc) adjust the position of the attributes,
because now there is an extra attribute (LONGSTR).
+ (SmartDal) fix specialization of operator() so that gcc-2.95.x
can swallow it.
Version 1.171 - 2003-01-29 (UL)
-------------
+ closed SPR 2405: printing pointer value
Version 1.170 - 2003-01-29 (GV)
-------------
+ (DalAttribute.cc) remove debug statement.
+ DEPEND: it needs error 1.41 or later.
Version 1.169 - 2003-01-28 (GV)
-------------
+ (Dal.h) Add some doxygen documentation.
+ Documentation updated for new list of errors and warnings.
Version 1.168 - 2003-01-27 (GV)
-------------
+ (FitsReaderWriter.cc) message for warning duplicateTableName now
spells out the table names explicitly. SOC-SPR-2362.
+ (FitsReaderWriter.cc) Give some more information when a FITS
data type that cannot be converted to one of the types supported
by the DAL is encountered. Test harness added. SOC-SPR-2360.
+ (DalDataSertServer.cc) add LONGSTRN attribute if not present, so
that fverify does not complain. This also required changing the
list of reserved keywords in dal_utilities.cc. SOC-SPR-2217.
+ (DalAttribute.cc) When an attempt is made to set an attribute to
NaN, catch the condition, issue a warning, clear the attribute
value and keep going. SOC-SPR-2294.
Version 1.167 - 2003-01-24 (GV)
-------------
+ Reference documentation lists all of the internal errors and
warnings.
Version 1.166 - 2003-01-21 (GV)
-------------
+ (MemFitsReaderWriter.cc) make message on number of rows appear
only when the verbosity is high. SOC-SPR-2397.
+ (SmartDal) memory model available on the open.
+ (daltypes.f90) make the data member of the custom types private,
so they cannot be tampered with from f90. This is a f95 feature.
Version 1.165 - 2002-01-07 (GV)
-------------
+ (SmartDal) Added smart pointer implementation of Dal.h, without
need to use the dataSetServer or delete methods.
+ (test/smart) Tests for the above.
Version 1.164 - 2002-01-03 (GV)
-------------
+ (HiLowFitsDatabase.cc:addEntry) use fits_create_tbl instead of
fits_insert_btlb when adding a new table. The latter requires a
priori knowledge of the size of the heap (PCOUNT) when the table
contains a variable length column. (SOC-SPR-2390)
+ (spr2338.cc) create the test dataset with cfitsio.
Version 1.163 - 2002-01-02 (GV)
-------------
+ (tests/sprtests/spr2390*cc) Show that the problem reported in
SOC-SPR-2390 is in the DAL and not in cfitsio.
Version 1.162 - 2002-12-13 (GV)
-------------
+ (Dal.h) Add declaration for osstream, and qualify std::ostream.
Version 1.161 - 2002-11-28 (GV)
-------------
+ Disable one test harness in test/misc as it was not ready
(required header files not yet part of DAL).
Version 1.160 - 2002-11-26 (GV)
-------------
+ (MemFitsReaderWriter.cc) re-implement the algorithm to
read/write tables to take advantage of cfitsio's buffering
capabilities. This makes the I/O about 3 times faster.
Version 1.159 - 2002-11-04 (GV)
-------------
+ (FitsReaderWriter.cc:readTableInfo) make the buffer holding a
long string keyword value larger to avoid segfault as in
SOC-SPR-2358.
Version 1.158 - 2002-09-09 (GV)
-------------
+ (FitsReaderWriter.cc) Get rid of an assert that cause the seg
fault described in SOC-SPR-1883.
+ (FitsReaderWriter.cc) Ignore reserved keywords out of context
instead of terminating with an error. (SOC-SPR-2141, SOC-SPR-2338)
+ (DalTable.cc) It is now impossible to add a table with name
PRIMARY, as this name is reserved for the primary image
(SOC-SPR-2311).
Version 1.157 - 2002-09-06 (GV)
-------------
+ The copyRows() implementation for variable length vector columns
was not always doing the right thing. It now works
(SOC-SPR-2343). Also, when asked to make a copy so that from ==
to, do nothing instead of uselessly copying. Test harness spr2343
added.
Version 1.156 - 2002-09-01 (GV)
-------------
+ Reorganize directories, remove dead code, make tests run one at
a time. No functional changes.
Version 1.155 - 2002-06-27 (JBa)
------------
+ Preparation for GCC 3.1
+ Added virtual to otherwise dangerous destructors
Version 1.154.3 - 2002-04-12 (GV)
---------------
+ (dal_implementation.cc::settonullcolumn) When accessing an
element it should allow for the possibility of a seek having being
done on the table. Change row into row +
col->from(). SOC-SPR-2289. Corresponding test harness added under
sprtests.
Version 1.154.2 - 2002-01-25 (GV)
---------------
+ Misc. doc fixes (SOC-SPR-2224)
+ Enable unsigned variable length vector column test in spr2159.cc
Version 1.154 - 2002-01-24 (GV)
-------------
+ (sprtests) activate test harnesses related to SOC-SPR-2159: spr2159,
spr2159f90, and vlcaddcolumns (this one related to SOC-SPR-2251).
Version 1.153 - 2002-01-21 (GV)
-------------
+ (DalDataSetServer.cc) update history records in the open instead
of the close. This solves SOC-SPR-2253 (History records
duplicated). Test harness: spr2253.
Version 1.152 - 2002-01-17 (GV)
-------------
+ (DalTable.cc) remove extra check on number of elements of a
vector column, as it is ok to have an n dimensional vector columns
with 0 extent (SOC-SPR-2254).
Version 1.151 - 2002-01-14 (GV)
-------------
+ (FitsReaderWriter.cc) It was incorrectly adding an empty
XPROC. The new cfitsio now writes out empty string keywords, and
this was causing the test harness process.cc to fail.
+ Activate a number of test harnesses that had highlighted cfitsio
problems. Most of them now pass.
Version 1.150 - 2001-11-01 (GV)
-------------
+ move templates back into Dal.h
+ DataSetServer::open: using an empty set name generates a
comprehensible error message.
Version 1.149 - 2001-10-30 (GV)
-------------
+ template specialization (see 1.148) works also for bool8.
+ move actual specializations away from Dal.h in DalDal.cc.
Version 1.148 - 2001-10-25 (GV)
-------------
+ Dal.h: add template T * Data::data() const; and
corresponding specializations.
Version 1.147 - 2001-10-22 (GV)
-------------
+ dal.f90: add i/f to dataSetServer::client
+ add std namespace qualifiers
+ dal_implementation.cc: change the behavior of stringcell, so
that f9x's trim function works as expected.
+ sprtests: add test harness for the above.
Version 1.146 - 2001-10-18 (GV)
-------------
+ (sprtest/Makefile) add more tests for SPRs.
Version 1.145 - 2001-10-16 (GV)
-------------
+ (HiLowColumn::insertRows()) now works in low mem (solves 1/3 of
SOC-SPR-2192).
+ (HiLowColumn::deleteRows()) now works in low mem (solves another
1/3 of the same SPR).
+ (HiLowColumn::copyRows)) as above, final 1/3 of SPR.
Version 1.144 - 2001-10-11 (GV)
-------------
+ (DalDataSet::blockNumber()) clarify error message for some cases
of wrong compound syntax. SOC-SPR-2097 and SOC-SPR-2104.
Version 1.143 - 2001-10-11 (GV)
-------------
+ (DalTable::deleteColumn()) release the data before deleting the
column. SOC-SPR-1962.
+ (DalDataSet::releaseBolck()) idem.
+ (DalTable::deleteColumn()) make sure column access mode is reset
when column is relased. SOC-SPR-2124.
Version 1.142 - 2001-10-05 (GV)
-------------
+ (dal.f90) add numberOfelementsOfCell(column, row) to be used
with variable length vector columns.
+ (dal_implementation.cc) implementation of the above,
(setvariablecolumn.f90) test harness adapted to new interface.
Version 1.141 - 2001-10-04 (GV)
-------------
+ (MemColumn::insertRows()) now does variable length columns
correctly (SOC-SPR-2167: himem only).
+ Implement MemColumn::deleteRows() and MemColumn::copyRows() also
for variable length vector columns.
Version 1.140 - 2001-10-02 (GV)
-------------
+ (spr2159.cc) comment out some of the code, as it rquires a cfitsio
version that is not yet available.
+ Now it stops cleanly when trying to insertRows on a variable
length vector column. t still does not work though.
Version 1.139 - 2001-10-02 (GV)
-------------
+ Typo in DalTable.cc
Version 1.138 - 2001-10-01 (GV)
-------------
+ implement set->add(block) so that it also works with tables that
contain variable length columns. SOC-SPR-2159.
This boils down to implementing MemColumn::assignVariable and
HiLowColumn::assignVariable. Add test harness.
Version 1.137 - 2001-07-25 (UL)
-------------
+ fixed minor compilation problem under -O in dalcom/dal_utilities.h
(for details see SPR 2131: Fails to compile)
Version 1.136 2001-05-31 (MT)
------------------------
- Fixed a suble problem with Table::seek(); it should now work
correctly with the high memory model.
- Overhauled the implementation of the dataset server.
- cxx: Implemented the following method
// *******************************************************************
// The client name to which which a dataset is to be associated
// is set using the method DataSetServer::client( const string&
// clientName ). Whenever a dataset is opened it is always associated
// with the current clientName.
// The cleanupClient( const string& clientName ) method iterates
// through all open datasets and closes those (regardless of the
// reference count) datasets whose client name
// matches the given client name.
// *******************************************************************
/** Flush all the datasets associated with the named client back to
disk.
* @param clienName The name of the client. */
virtual void DataSetServer::cleanupClient( const string& clientName ) = 0;
---------------> THIS METHOD MUST ONLY BE CALLED BY METAtASKS.
- f90: Implemented the following subroutine (it has the same functionality as
described above)
subroutine cleanupClient( clientName )
character(len=*), intent(in) :: clientName
call error( "", errorMessage )
end subroutine cleanupClient
---------------> THIS SUBROUTINE MUST ONLY BE CALLED BY METAtASKS.
Version 1.135 2001-05-22 (MT)
------------------------
- Updated the FITS readerWriter to work with the latest cfitsio; i.e. the
proceesing of COMMENT and HISTORY no longer removes the two spaces
which older versions of cfitsio prepended to COMMENT and HISTORY
records.
Version 1.134.5 2001-05-23 (MT)
---------------
- dalcomtests now run correctly; also rolled back version 1.135 (temporarily).
Version 1.134.4 2001-05-22 (MT)
---------------
- Test harnesses now work in low memory mode again.
Version 1.134.2 2001-05-08 (MT)
---------------
- Corrected a problem with dal/interface/dal.h; it now compiles with the
C compiler.
- C: The following functions have been added to the C I/f in c/dal.h
void setBoolAttributeValue(
Attribute* attribute,
bool8 value );
void setIntAttributeValue(
Attribute* attribute,
int value );
void setRealAttributeValue(
Attribute* attribute,
double value );
void setStringAttributeValue(
Attribute* attribute,
const char* value );
Version 1.134.2 2001-05-07 (MT)
---------------
- C: The following functions have been added to the C I/f in c/dal.h
Attribute * addAttribute(
Attributable* attributable,
const char* name,
const char* comment,
const char* units );
Attribute * addIntAttribute(
Attributable* attributable,
const char* name,
int value,
const char* comment,
const char* units );
Attribute * addRealAttribute(
Attributable* attributable,
const char* name,
double value,
const char* comment,
const char* units );
Attribute * addStringAttribute(
Attributable* attributable,
const char* name,
const char* value,
const char* comment );
Attribute * addBoolAttribute(
Attributable* attributable,
const char* name,
bool value,
const char* comment );
Version 1.134.1 2001-05-07 (MT)
---------------
- The dal test harness is no longer run in low memory mode; this is
now being done automatically by the system build procedure.
Version 1.134 2001-04-23 (MT)
-------------
- Implemented a method
ColumnData * Column::rowData(
unsigned long rowNumber,
AccessMode accessMode=AsParent )
which can be used to access either Fixed or Variable length column data.
+ Implemented cxx test harness cxxtest/fixvarcolumn.cc which shows how an
example of how to use it.
- Table::seek() now works correctly in high memory mode.
- Optimsed the way in which the DAL checks the format of FITS files.
- Implemented a c++ dal utility class TableSeeker:
+ to use it do
#include
+ Implemented cxx test harness dalcomtest/tableseeker.cc, which shows an
example of how to use it.
+ Implemented the f90 type:
type TableSeekerT
integer, pointer :: ptr
end type
+ Implemented the following f90 dal modules/functions/subroutines:
! Functions/Subroutines related to the TableSeeker class
function newTableSeeker( table )
type(TableT), intent(in) :: table
type(TableSeekerT) :: newTableSeeker
call error( "", errorMessage )
end function newTableSeeker
subroutine releaseTableSeeker( tableSeeker ) ! accessible through release interface
type(TableSeekerT), intent(in) :: tableSeeker
call error( "", errorMessage )
end subroutine releaseTableSeeker
function tableSeekerNext( tableSeeker ) ! accessible through interface next
type(TableSeekerT), intent(in) :: tableSeeker
logical :: tableSeekerNext
call error( "", errorMessage )
end function tableSeekerNext
function fromTableSeeker( tableSeeker ) ! accessible through interface from
type(TableSeekerT), intent(in) :: tableSeeker
integer :: fromTableSeeker
call error( "", errorMessage )
end function fromTableSeeker
function countTableSeeker( tableSeeker ) ! accessible through interface count
type(TableSeekerT), intent(in) :: tableSeeker
integer :: countTableSeeker
call error( "", errorMessage )
end function countTableSeeker
subroutine resetTableSeeker( tableSeeker ) ! accessible through interface reset
type(TableSeekerT), intent(in) :: tableSeeker
call error( "", errorMessage )
end subroutine resetTableSeeker
+ Implemented fortran90 test harness f90test/tableseeker.f90, which shows an
example of how to use it.
Version 1.133 2001-04-06 (GV/MT)
-------------
- The DAL now strips one of single quotes from each 'pair of single quotes'
from string attribute values.
Version 1.132 - 2001-04-02 (GV)
-------------
+ remove obsolete c++ headers.
Version 1.131 2001-03-12 (MT)
-------------
- Inhibit the message about file fomats being unrecognised.
- Change the way in which the DataSetServer::exists() method works; it now
uses the fits::open() & fits::close() sequence to determine if the
given dataset is in fits format(). This should allow support for
a fits file in gzipped format.
Version 1.130.3 2000-12-20 (MT)
---------------
- TDISP is now an allowed column attribute name.
Version 1.130.2 2000-11-30 (MT)
---------------
- Added config/dal.info
- Documentation now version 1.1
Version 1.130.1 2000-11-09 (MT)
---------------
- Some small changes to the FitsReaderWriter class allowing special handling of
invalid columns and keywords.
- Warning about unreleased data objects has been down graded to a message.
Version 1.130 2000-10-31 (MT)
-------------
- c: Implement releaseArray() and releaseColumn() functions.
- Fix several problems which only were only manifested when compiler
optimization was switched on.
Version 1.129 2000-10-05 (MT)
-------------
- A subtle bug, which was introduced dal-1.127, causing occassional
segmentation faults, has ben fixed.
Version 1.128 2000-09-27 (MT)
-------------
- Closed SPR-1754 : warning (unreleasedData)
The High Memory Fits Writer now correctly deletes the ColumnData objects
which it uses to access the data to be written to disk.
Version 1.127 2000-09-26 (MT)
-------------
- The fully qualified name of unreleased data objects is now displayed
by the DAL. The message has also been upgraded to a warning.
Version 1.126 2000-09-25 (MT)
-------------
- Closed SPR-1072 : Doc refers to "comment" function
- Closed SPR-1707 : overflow not yet handled correctly in setData()
Also improved the error and warning messages produced by the setData()
funtion.
- Closed SPR-1742 : verbosity of messages
Dal messages are now done with Msg::Core. Dataset access messages are
now Msg::Sparse. Other object access messages are now Msg::Noisy.
Version 1.125 2000-08-01 (PV)
-------------
- added f90 interface to setData().
modified files:
M f90/dal_implementation.cc
M f90test/Makefile
M f90test/alltests
A f90test/setdata.f90
M interface/dal.f90
Version 1.124 2000-07-20 (MT)
-------------
- f90 documentation now has function index.
- Closed SPR-1267 : insertrow assert failure: memory corruption/lost after 14400 bytes !?
- Closed SPR-1326 : cxxtest/columnrow SEGV with SAS_MEMORY_MODEL=high
Version 1.123 2000-07-12 (MT)
-------------
- Redeliver 1.122 as 1.123
Version 1.122 2000-07-12 (MT)
-------------
- cxx: void Nullable::deleteNullValue() method implemented.
Version 1.121.3 2000-07-03 (MT)
-------------
- Fix cxxtest/insertrow.cc test harness.
Version 1.121.2 2000-06-22 (MT)
-------------
- Re-organise the way in which table/columns are read, so that
dspurify/MemFITSReaderWriterX.cc can
easily ignore invalid columns, but read valid columns.
- When opening a dataset the DAL now outputs a debug message indicating
the number of datasets currently in memory.
- When opening/closing a file the DAL now outputs a debug message if the
operation gives rise to a change in the number of fits files currently open.
- Improved log messages when opening/closing datasets.
Version 1.121.1 2000-06-08 (MT)
-------------
- The DAL now writes some debug messages into a FITS file. THe keyword
XDAL has been reserved for this purpose.
- The TDIM keyword is now only written for columns which have
dimension greater than 1.
- Re-implemented a number of functions in the f90 DAL API, making
string passing between 90 and c++ more reliable.
Version 1.121 2000-05-22 (MT)
-------------
- When a reserved keyword is found in a table extension, but has no purpose
e.g. DATE or CREATOR, a more descriptive error message is raised.
Version 1.120 2000-05-19 (MT)
-------------
- Row-wise column writing is now the default. The enviroment
variable SAS_ROW_WISE has been renamed to SAS_COLUMN_WISE.
SAS_COLUMN_WISE should be defined in order to activate
column-wise writing.
Version 1.119 2000-05-17 (MT)
-------------
- ExtDal: forEachSubTable no longer keeps its own list of columnData
objects, but lets the column's data clerk take care of this house-keeping.
Modified test harnesses appropriately.
- f90: f90test/forEachSubTable.f90 test harness now releases columns (this
is now necessary because forEachSubTable no longer does this).
- f90: after forEachSubTable has completed, the table's subrange (seek)
is reset to its default.
- f90: implemented seek( from, count ), which has been overloaded from both
columns and tables.
- XPROC records are no longer being duplicated in lowmem mode.
- Insert/Delete Rows in himem mode is now more reliable.
- Allow Creator/Date to set for individual datasets.
CREATE & DATE are now reserved keywords
The DataSetServer class has been extended with the following methods:
class DataSetServer {
...
/** Get/Set Creator and Dat�
*/
virtual void creator(
const DataSet* dataSet,
const string& creator ) = 0;
virtual const string& creator( const DataSet* dataSet ) const = 0;
virtual void date(
const DataSet* dataSet,
const string date ) = 0;
virtual const string& date( const DataSet* dataSet ) const = 0;
...
};
Version 1.118 2000-05-05 (MT)
-------------
- Closed SPR-1166 : copyBlock fails on empty arrays
- Format of error message blockExists is not correct.
Version 1.117 2000-05-04 (MT)
-------------
- Closed SPR-1222 : Dal arborts for empty input file
- Closed SPR-1307 : Test harness fails with row-wise writing
- Allow process history information to be set for individual datasets.
XPROCnnn is now a class reserved keywords.
The DataSetServer class has been extended with the following methods:
class DataSetServer {
...
/** Register a description of the process that is going on.
When a dataset is closed processDescription is added to the
process history list.
*/
virtual void process( const string& processDescription ) = 0;
virtual const string& process() const = 0;
/** This adds processDescription to the given dataset's
process history list.
*/
virtual void process(
const DataSet* dataSet,
const string& processDescription ) = 0;
virtual const string& process(
const DataSet* dataSet,
unsigned int processNumber ) const = 0;
virtual unsigned int processes( const DataSet* dataSet ) const = 0;
...
};
Version 1.116 2000-04-20 (MT)
-------------
- DalChild.h is now exported with INTERFACE
- Tidy up Slicer.cc
Version 1.115 2000-04-12 (MT)
-------------
- lowmem: Prototype minimum-slice-sizes, which in some circumstances
might improve performance in lowmem mode; try it and see!
Activated with setenv SAS_MIN_SLICE_SIZE
- cxx: const string& DataSetServer::client() const method implemented.
Version 1.114 2000-03-31 (MT)
-------------
- Extended functionality of CompounName class
- DAL_ROWS renamed to SAS_ROWS
Version 1.113 2000-03-28 (MT)
-------------
- Closed SPR-1185 : DAL clobber NOT default if undefined
Documentation was incorrect, which has now been updated; the
default behaviour is to clobber if the environment variable
SAS_CLOBBER is undefined.
- Closed SPR-1241 : opening a data set containging nameless table
- Closed SPR-1128 : Cannot read data sets containing multiple blocks with the
same name
Version 1.112 2000-03-22 (MT)
-------------
- Closed SPR-1216 Wrong last event in low memory mode
- Deleting table rows is now more reliable in LMM
- cxxtest/deleterow.cc test harness implemented
- cxxtest/insertrow.cc test harness implemented
Version 1.111 2000-03-21 (MT)
-------------
- Optimised the cleanup of data objects in a first-constructed-last-destroyed
manner.
- cxxtest/columnrow.cc test harness implemented
- f90test/columnrow.f90 test harness implemented
- A message is now issued if a dataset is closed before releasing
all data.
- f90: Accessing columns by row is now more reliable.
Version 1.110 2000-03-17 (MT)
-------------
- The DAL is now able to read a FITS table which has
a very large number of columns, quickly and efficiently.
The environment variable SAS_NO_COLUMN_ATTRIBUTES now
has no effect.
- Error message about attribute not found is now in correct format.
Version 1.109 2000-03-14 (MT)
-------------
- Extended cxx deleteattribute.cc test harness to test with all object
attributes.
- Deletion of attributes now works in Low mem mode.
- XMMSEP is now a reserved attribute name.
- In low mem mode, the history, comments and attributes are now
not modified (in fact, deleted) until the dataset is closed.
- Additional test harness cxx/varlengthcolumn.cc
- Implement a switch which skips the reading of the column attributes from a fits
file; this:
+ IS A TEMPORARY FIX TO IMPROVE THE PERFORMANCE OF THE DAL WHEN READING
A FITS FILE WHICH CONTAINS A LARGE NUMBER OF COLUMNS. IT
WILL BE REPLACED LATER BY A MORE EFFICIENT ALGORITHM.
+ is activated with setenv SAS_NO_COLUMN_ATTRIBUTES
+ to be used only when it is known that the fits file contains no column attributes.
- ExtDal.h: fixed a problem with block iteration.
- dalcom/Model.h is now exported.
Version 1.108 2000-03-07 (MT)
-------------
- Improvements for daltools package:
+ Attribute output operator improved
+ New dal_utilities class CompoundName
+ Improved dumpObject utility function
Version 1.107 2000-02-29 (MT)
-------------
- Implementation of DataSet::deleteBlock()
- Accessing vectors columns by row now works in low memory mode
- f90: Fixed a bug with string columns
Version 1.106 2000-02-29 (MT)
-------------
- Prototype implementation of dataset cloning:
+ cxx: DataSet* DataSetServer::clone( from, to, mode, model, readerWriter )
cxx test harness cxxtest/clone.cc
+ f90: function clone( from, to, mode, model ) return type(DataSetT)
- Warning about blank strings in fits files has been down-graded to a message.
Version 1.105 2000-02-23 (MT)
-------------
- Attempt to improve the facility to write columns by row.
- Allow a table to be created with zero rows:
setenv SAS_TABLE_ZERO_ROWS to activate
- Error message for 'invalidCompoundName' improved.
Version 1.104 2000-02-22 (MT)
-------------
- Closed SPR-1144 : DataSet::add(Block *) does not copy column attributes
Version 1.103 2000-02-19 (MT)
-------------
- More reliable parsing of compound names.
Version 1.102 2000-02-18 (MT)
-------------
- Closed SPR-0695 : DAL deleteColumn segfaults
- Closed SPR-1197 : DAL requires column release before deleteColumn
- Fixes to extended DAL.
- Removal of DataClerk object from f90 layer; functionality now
transferred to core cxx DAL.
Version 1.101 2000-02-17 (MT)
-------------
- Fits X Columns are now rejected with a graceful message.
- Compound-name notation now of the form set:tab%att etc.
- Depends on utils-1.63
- Implement a switch which allows writing of columns by cell:
To activate: setenv SAS_ROW_WISE
- Low Memory Dal improvements:
+ Warnings are now generated for all unreleased data; this may be upgraded
to an error in the future.
+ The memory management is more reliable
- Closed SPR-1120 : copyBlock and low memory mode 2
Version 1.100 2000-02-04 (MT)
-------------
- Update DEPEND to utils-1.62
- The problem where the DAL incorrectly reported the sizeof
string and boolean types has now been fixed.
- Re-instated support for the DAL file format in himem mode; this is
still only prototyped. No support for this format yet in low memory mode.
- Completion of SPR-1072
- Closed SPR-1119 : low mem dal crashes gtialign
- The low memory DAL no longer writes the redundant TDIM '(1)' keywords.
- Column::copyRows(), Column::insertRows(), Column::deleteRows() will
now work only if the column does not have read-only access.
- Now run cxxtests for DAL file format (setenv SAS_FORMAT 2).
Version 1.99 2000-01-27 (MT)
------------
- Closed SPR-0767 : Gui dataset browser cannot handle empty comment lines in FITS
- Closed SCR-1093 : missing function to delete a dataset
- Improved debug messages: in hilow memory mode, fits reading and writing
data messages are sent to Sas::message( Msg::Lib, Msg::Verbose )
- Now depend on utils-1.62
Version 1.98 2000-01-21 (MT)
------------
- The DAL now handles read-only objects a little more safely.
e.g. Attempting to copy rows on a read-only table will fail, and
an error will be raised.
- Closed SPR-1081 : Error message needs quotes around filename
- Closed SPR-1092 : wrong error message on on unrecognised file
- Prototyped SCR-1093 : missing function to delete a dataset
cxx: DataSetServer::remove( const string& setName) implemented
f90: deleteDataSet( setName ) implemented
cxx: test harness deletedataset.cc implemented
Version 1.97 2000-01-13 (MT)
------------
- Closed SPR-0707 : If SAS_CLOBBER=0, the error message should be more explicit
- Closed SPR-0985 : DAL does not trap fitsio file open error
- Closed SPR-1075 : DAL (himem) ends in error when zero-length images are read/written
Version 1.96 2000-01-13 (MT)
------------
- Fix trivial problem with doc.
Version 1.95 2000-01-12 (MT)
------------
- Closed SPR-0951 : arrays created in C++ have different dimensions in f90
Reference documentation updated.
- Closed SPR-0966 : reference doc
- Closed SPR-0974 : [PATCH] Buggy SAS_DEBUG statement im MemDal or temp() decl.
- Closed SPR-0975 : [PATCH] Buggy SAS_DEBUG the third & fourth & ... no that's it :)
- Closed SPR-1036 : SPR#974 MemDataSet.cc patch: ok with SAS_DEBUG defined but not without
- Closed SPR-1055 : Mode parameter on columns does nothing in F90
Reference documentation updated.
- Closed SPR-1009 : Temp and low memory mode
Rejected since an empty string is an invalid dataset name.
But, TEMP files in low memory mode are now deleted upon closure.
- Closed SPR-1010 : Attributes and low memory mode
- Closed SPR-0570 : Dal copying facility error behaviour
- Closed SPR-1008 : copyBlock and low memory mode
Fixed by virtue of SPR-1009
- Closed SPR-0749 : messages written to cerr
- Closed SPR-0579 : Type conversion needed
Rejected
- Closed SPR-0433 : DAL should not be case sensitive
Rejected
- Closed SPR-0421 : Iteration example is unreadable
- Closed SPR-0431 : DAL produces misleading error when column vector length set to zero
- Closed SPR-0191 : accuracy of keyword values in dal (FITS) files does not mach F90 kinds
This was implemented on 1998-08-25
- Closed SPR-1072 : Documentation is late
Version 1.94 1999-12-15 (MT)
------------
- Closed SPR-0960 : f90 setStringCell does not work properly
The setcolumn.f90 test harness has been updated to test this
correctness of this implementation.
- Fixes for LINUX
Fully qualifiy member functions to get address.
- Closed SPR-0955 : [PATCH] SEGV in copyanddelete (SPR#666 and SPR#809)
Version 1.93 1999-12-13 (MT)
------------
- Fixed another minor problem with setattributes.f90 test harness.
Version 1.92 1999-12-13 (MT)
------------
- Fixed minor problem with setattributes.f90 test harness.
Version 1.91 1999-12-09 (MT)
------------
- dal_description.tex no longer built by default
- dal_reference_description renamed dal_description. Also edited for clarity.
- Closed SPR-1020 : Mode parameter does nothing 2
The DAL mode parameter is regarded as a hint. It is a misuse of
the DAL to modify an object which has read-only access.
The DAL is able to protect against some misues e.g. an error is raised if
an attribute is added to a read-only attributable object.
- Closed SPR-1019 : name should return trimmed strings
Reject: It is not possible to return a variable length string
from a fortran function.
- Closed SPR-1021 : DataSet::add ends with error
Version 1.90 1999-12-08 (MT)
------------
- Fix for gcc 2.95.1 on linux
- Closed SPR-0973 : [PATCH] Buggy SAS_DEBUG statement
- Closed SPR-0284 : Use private member functions?
Rejected
Version 1.89 1999-12-07 (MT)
------------
- Fix trivial problem with multiline comments preventing compilation
- Closed SPR-0967: copyBlock does not propagate attributes for arrays
f90 test harness copying.f90 extended to check that this SPR has been fixed.
- Closed SPR-0990 : access of Array as Table and vice versa
Version 1.88 1999-12-06 (MT)
------------
- f90: Removal of obsolete interfaces
columnUnits
copyAttributes
arrayUnits
attributeComment
attributeUnits
Version 1.87 1999-12-01 (MT)
------------
- C API: Implementation of missing C functions.
- f90 API: Support for unsigned int16 and int32 columns and arrays.
When accessing data with int16Data and int32Data a check is made to see if
the underlying data is unsigned, in which, case a warning message
is raised (which in the future may be upgraded to an error),
and a (signed) pointer is returned to the data.
The following additional interfaces are now implemented (if the
underlying data is not unsigned an error will be raised):
interface uint16Data ! Warning: returns signed data
module procedure uint16ColumnData
module procedure uint16ColumnDataElement
module procedure uint16ArrayData
end interface
interface uint32Data ! Warning: returns signed data
module procedure uint32ColumnData
module procedure uint32ColumnDataElement
module procedure uint32ArrayData
end interface
interface uint16VectorData ! Warning: returns signed data
module procedure uint16ColumnVectorData
module procedure uint16ColumnVectorDataElement
module procedure uint16ArrayVectorData
end interface
interface uint32VectorData ! Warning: returns signed data
module procedure uint32ColumnVectorData
module procedure uint32ColumnVectorDataElement
module procedure uint32ArrayVectorData
end interface
interface uint16Array2Data ! Warning: returns signed data
module procedure uint16ColumnArray2Data
module procedure uint16ColumnArray2DataElement
module procedure uint16ArrayArray2Data
end interface
interface uint32Array2Data ! Warning: returns signed data
module procedure uint32ColumnArray2Data
module procedure uint32ColumnArray2DataElement
module procedure uint32ArrayArray2Data
end interface
interface uint16Array3Data ! Warning: returns signed data
module procedure uint16ColumnArray3Data
module procedure uint16ColumnArray3DataElement
module procedure uint16ArrayArray3Data
end interface
interface uint32Array3Data ! Warning: returns signed data
module procedure uint32ColumnArray3Data
module procedure uint32ColumnArray3DataElement
module procedure uint32ArrayArray3Data
end interface
interface uint16Array4Data ! Warning: returns signed data
module procedure uint16ColumnArray4Data
module procedure uint16ColumnArray4DataElement
end interface
interface uint32Array4Data ! Warning: returns signed data
module procedure uint32ColumnArray4Data
module procedure uint32ColumnArray4DataElement
end interface
- Closed SPR-0961 : f90 setAttribute does not set empty string attributes
Rejected
Version 1.86 1999-11-16 (MT)
------------
- DataSets are now renamed correctly in the DataSetServer _keeps and _refs
- COMBILIBS mechanism now employed.
- INTERFACES mechanism now supported.
- Closed SPR-0953 : [PATCH] Bug in logic in checkAndSet* broke most test on Digital Unix
- Included some additional INTERFACES needed by daltools e.g. MemFitsReaderWriter.
Version 1.85 1999-11-15 (MT)
------------
- Closed SPR-0901 : no support for FITS X-type columns
The FileReaderWriter is now detached from the DAL:
New directory dal/readerwriter created containing most of the relevant source
files (dal/Makefile modifed appropriately). Specialised reader/writers may be
created by deriving classes from the core Fits/DAL readerWriters.
cxx: A specialised ReaderWriter may now be specified in the open() method.
combi/Makefile modifed for new additional links to readerwriter headers and
library. These changes will tool e.g. dspurify to remove X columns from a
dataset.
Version 1.84 1999-11-10 (MT)
------------
- cxx extended dal: block iteration implemented.
extdaltest/blockiteration.cc has a simple example.
- Implemented const string& DataSetServer::process() const;
Version 1.83 1999-11-09 (MT)
------------
- f90: Handle unsigned int16 and unsigned int32 data.
This is done, by returning unsigned data as signed.
- convertType now works properly for columns.
- Additional dal utilities for dumping table columns.
- Improved diagnostic messages when opening/closing datasets.
- f90: qualifiedNameOfObject() and nameOfO