LSSTApplications  10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
lsst::daf::persistence::DbTsvStorage Class Reference

Class for database storage with data loading from TSV files. More...

#include <DbTsvStorage.h>

Inheritance diagram for lsst::daf::persistence::DbTsvStorage:
lsst::daf::persistence::DbStorage lsst::daf::persistence::Storage lsst::daf::base::Citizen

Public Types

typedef boost::shared_ptr
< DbTsvStorage
Ptr
 
- Public Types inherited from lsst::daf::persistence::DbStorage
typedef boost::shared_ptr
< DbStorage
Ptr
 
- Public Types inherited from lsst::daf::persistence::Storage
typedef boost::shared_ptr
< Storage
Ptr
 
typedef std::vector< PtrList
 
- Public Types inherited from lsst::daf::base::Citizen
enum  { magicSentinel = 0xdeadbeef }
 
typedef unsigned long memId
 Type of the block's ID. More...
 
typedef memId(* memNewCallback )(const memId cid)
 A function used to register a callback. More...
 
typedef memId(* memCallback )(const Citizen *ptr)
 

Public Member Functions

 DbTsvStorage (void)
 
 ~DbTsvStorage (void)
 
virtual void setPolicy (lsst::pex::policy::Policy::Ptr policy)
 
virtual void setPersistLocation (LogicalLocation const &location)
 
virtual void setRetrieveLocation (LogicalLocation const &location)
 
virtual void startTransaction (void)
 
virtual void endTransaction (void)
 
virtual void createTableFromTemplate (std::string const &tableName, std::string const &templateName, bool mayAlreadyExist=false)
 
virtual void dropTable (std::string const &tableName)
 
virtual void truncateTable (std::string const &tableName)
 
virtual void setTableForInsert (std::string const &tableName)
 
template<typename T >
void setColumn (std::string const &columnName, T const &value)
 
virtual void setColumnToNull (std::string const &columnName)
 
virtual void insertRow (void)
 
template<typename T >
void outParam (std::string const &columnName, T *location, bool isExpr=false)
 
template<typename T >
void condParam (std::string const &paramName, T const &value)
 
template<typename T >
T const & getColumnByPos (int pos)
 
template<>
void setColumn (std::string const &columnName, char const &value)
 
template<>
void setColumn (std::string const &columnName, double const &value)
 
template<>
void setColumn (std::string const &columnName, float const &value)
 
template<>
void setColumn (std::string const &columnName, DateTime const &value)
 
- Public Member Functions inherited from lsst::daf::persistence::DbStorage
 DbStorage (void)
 
 ~DbStorage (void)
 
virtual void executeSql (std::string const &sqlStatement)
 
template<typename T >
void setColumn (std::string const &columnName, T const &value)
 
virtual void setTableForQuery (std::string const &tableName, bool isExpr=false)
 
virtual void setTableListForQuery (std::vector< std::string > const &tableNameList)
 
virtual void outColumn (std::string const &columnName, bool isExpr=false)
 
template<typename T >
void outParam (std::string const &columnName, T *location, bool isExpr=false)
 
template<typename T >
void condParam (std::string const &paramName, T const &value)
 
virtual void orderBy (std::string const &expression)
 
virtual void groupBy (std::string const &expression)
 
virtual void setQueryWhere (std::string const &whereClause)
 
virtual void query (void)
 
virtual bool next (void)
 
template<typename T >
T const & getColumnByPos (int pos)
 
bool columnIsNull (int pos)
 
virtual void finishQuery (void)
 
- Public Member Functions inherited from lsst::daf::persistence::Storage
virtual ~Storage (void)
 
- Public Member Functions inherited from lsst::daf::base::Citizen
 Citizen (const std::type_info &)
 
 Citizen (Citizen const &)
 
 ~Citizen ()
 
Citizenoperator= (Citizen const &)
 
std::string repr () const
 Return a string representation of a Citizen. More...
 
void markPersistent (void)
 Mark a Citizen as persistent and not destroyed until process end. More...
 
memId getId () const
 Return the Citizen's ID. More...
 

Private Member Functions

int _getColumnIndex (std::string const &columnName)
 

Private Attributes

bool _persisting
 
bool _saveTemp
 Do not delete temporary TSV file if true. More...
 
std::string _tempPath
 Directory pathname for temporary TSV file. More...
 
char * _fileName
 Full pathname for temporary TSV file. More...
 
std::string _location
 Database location URL. More...
 
std::string _tableName
 
std::map< std::string, int > _colMap
 Map from column names to positions. More...
 
std::ostringstream _convertStream
 Stream to convert to text. More...
 
std::vector< std::string > _rowBuffer
 
boost::scoped_ptr< std::ofstream > _osp
 Output TSV stream. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from lsst::daf::persistence::Storage
static Ptr createInstance (std::string const &name, LogicalLocation const &location, bool persist, lsst::pex::policy::Policy::Ptr policy)
 
- Static Public Member Functions inherited from lsst::daf::base::Citizen
static bool hasBeenCorrupted ()
 Check all allocated blocks for corruption. More...
 
static memId getNextMemId ()
 Return the memId of the next object to be allocated. More...
 
static int init ()
 Called once when the memory system is being initialised. More...
 
static int census (int, memId startingMemId=0)
 How many active Citizens are there? More...
 
static void census (std::ostream &stream, memId startingMemId=0)
 Print a list of all active Citizens to stream, sorted by ID. More...
 
static const std::vector
< const Citizen * > * 
census ()
 Return a (newly allocated) std::vector of active Citizens sorted by ID. More...
 
static memId setNewCallbackId (memId id)
 Call the NewCallback when block is allocated. More...
 
static memId setDeleteCallbackId (memId id)
 Call the current DeleteCallback when block is deleted. More...
 
static memNewCallback setNewCallback (memNewCallback func)
 Set the NewCallback function. More...
 
static memCallback setDeleteCallback (memCallback func)
 Set the DeleteCallback function. More...
 
static memCallback setCorruptionCallback (memCallback func)
 Set the CorruptionCallback function. More...
 
- Protected Member Functions inherited from lsst::daf::persistence::DbStorage
 DbStorage (std::type_info const &type)
 
- Protected Member Functions inherited from lsst::daf::persistence::Storage
 Storage (std::type_info const &type)
 
void verifyPathName (std::string const &pathName)
 

Detailed Description

Class for database storage with data loading from TSV files.

Subclass of DbStorage, overriding persistence methods.

Persists data to a database using TSV files as an intermediary for performance. Provides methods for writing rows to a table and retrieving rows from a query.

Definition at line 66 of file DbTsvStorage.h.

Member Typedef Documentation

Definition at line 68 of file DbTsvStorage.h.

Constructor & Destructor Documentation

lsst::daf::persistence::DbTsvStorage::DbTsvStorage ( void  )

Constructor.

Definition at line 67 of file DbTsvStorage.cc.

67  : _saveTemp(false) {
68 }
bool _saveTemp
Do not delete temporary TSV file if true.
Definition: DbTsvStorage.h:101
lsst::daf::persistence::DbTsvStorage::~DbTsvStorage ( void  )

Minimal destructor.

Definition at line 72 of file DbTsvStorage.cc.

72  {
73 }

Member Function Documentation

int lsst::daf::persistence::DbTsvStorage::_getColumnIndex ( std::string const &  columnName)
private

Get the index of a given column. Create a new entry in the row buffer if the column hasn't already been seen. May modify the row buffer, so do not call this inside "_rowBuffer[]".

Parameters
[in]columnNameName of the column
Returns
Index of the column in the row buffer

Definition at line 252 of file DbTsvStorage.cc.

252  {
253  std::map<std::string, int>::iterator i = _colMap.find(columnName);
254  if (i == _colMap.end()) {
255  _colMap.insert(std::pair<std::string, int>(columnName,
256  _rowBuffer.size()));
257  _rowBuffer.push_back(std::string());
258  return _rowBuffer.size() - 1;
259  }
260  else {
261  return i->second;
262  }
263 }
std::vector< std::string > _rowBuffer
Definition: DbTsvStorage.h:108
std::map< std::string, int > _colMap
Map from column names to positions.
Definition: DbTsvStorage.h:106
template<typename T >
void lsst::daf::persistence::DbTsvStorage::condParam ( std::string const &  paramName,
T const &  value 
)

Bind a value to a WHERE condition parameter.

Parameters
[in]paramNameName of the parameter (prefixed by ":" in the WHERE clause)
[in]valueValue to be bound to the parameter.

Definition at line 368 of file DbTsvStorage.cc.

368  {
369  DbStorage::condParam<T>(paramName, value);
370 }
void lsst::daf::persistence::DbTsvStorage::createTableFromTemplate ( std::string const &  tableName,
std::string const &  templateName,
bool  mayAlreadyExist = false 
)
virtual

Create a new table from an existing template table.

Parameters
[in]tableNameName of the new table
[in]templateNameName of the existing template table
[in]mayAlreadyExistFalse (default) if the table must not be present

Reimplemented from lsst::daf::persistence::DbStorage.

Definition at line 183 of file DbTsvStorage.cc.

185  {
186  if (_persisting) {
187  DbStorage dbs;
188  dbs.setPersistLocation(LogicalLocation(_location));
189  dbs.startTransaction();
190  dbs.createTableFromTemplate(tableName, templateName, mayAlreadyExist);
191  dbs.endTransaction();
192  }
193  else {
194  DbStorage::createTableFromTemplate(tableName, templateName,
195  mayAlreadyExist);
196  }
197 }
std::string _location
Database location URL.
Definition: DbTsvStorage.h:104
virtual void createTableFromTemplate(std::string const &tableName, std::string const &templateName, bool mayAlreadyExist=false)
Definition: DbStorage.cc:112
void lsst::daf::persistence::DbTsvStorage::dropTable ( std::string const &  tableName)
virtual

Drop a table.

Parameters
[in]tableNameName of the table to drop

Reimplemented from lsst::daf::persistence::DbStorage.

Definition at line 202 of file DbTsvStorage.cc.

202  {
203  if (_persisting) {
204  DbStorage dbs;
205  dbs.setPersistLocation(LogicalLocation(_location));
206  dbs.startTransaction();
207  dbs.dropTable(tableName);
208  dbs.endTransaction();
209  }
210  else {
211  DbStorage::dropTable(tableName);
212  }
213 }
std::string _location
Database location URL.
Definition: DbTsvStorage.h:104
virtual void dropTable(std::string const &tableName)
Definition: DbStorage.cc:121
void lsst::daf::persistence::DbTsvStorage::endTransaction ( void  )
virtual

End a transaction.

Reimplemented from lsst::daf::persistence::DbStorage.

Definition at line 114 of file DbTsvStorage.cc.

114  {
115  if (!_persisting) {
117  return;
118  }
119 
120  // close stream
121  _osp->close();
122 
123  MYSQL* db = mysql_init(0);
124  if (db == 0) {
125  throw LSST_EXCEPT(lsst::pex::exceptions::RuntimeError, "Unable to allocate MySQL connection");
126  }
127  DbStorageLocation dbLoc(_location);
128  unsigned int port = strtoul(dbLoc.getPort().c_str(), 0, 10);
129  if (mysql_real_connect(db,
130  dbLoc.getHostname().c_str(),
131  dbLoc.getUsername().c_str(),
132  dbLoc.getPassword().c_str(),
133  dbLoc.getDbName().c_str(),
134  port, 0,
135  CLIENT_COMPRESS | CLIENT_LOCAL_FILES) == 0) {
136  throw LSST_EXCEPT(lsst::pex::exceptions::RuntimeError,
137  "Unable to connect to MySQL database: " + _location);
138  }
139  if (mysql_options(db, MYSQL_OPT_LOCAL_INFILE, 0) != 0) {
140  throw LSST_EXCEPT(lsst::pex::exceptions::RuntimeError,
141  std::string("Unable to set LOCAL INFILE option - * ") +
142  mysql_error(db));
143  }
144 
145  std::string query = "LOAD DATA LOCAL INFILE";
146  query += " '";
147  query += _fileName;
148  query += "'";
149  query += " REPLACE";
150  query += " INTO TABLE `" + _tableName;
151  query += "` (";
152  for (std::map<std::string, int>::const_iterator it = _colMap.begin();
153  it != _colMap.end(); ++it) {
154  _rowBuffer[it->second] = it->first;
155  }
156  for (std::vector<std::string>::const_iterator it = _rowBuffer.begin();
157  it != _rowBuffer.end(); ++it) {
158  if (it != _rowBuffer.begin()) query += " ,";
159  query += *it;
160  }
161  query += ")";
162 
163  if (mysql_query(db, query.c_str()) != 0) {
164  mysql_close(db);
165  throw LSST_EXCEPT(lsst::pex::exceptions::RuntimeError,
166  "Unable to load data into database table: " + _tableName +
167  "- * " + mysql_error(db));
168  }
169  mysql_close(db);
170 
171  // unlink file
172  if (!_saveTemp) {
173  unlink(_fileName);
174  }
175  delete[] _fileName;
176 }
std::vector< std::string > _rowBuffer
Definition: DbTsvStorage.h:108
char * _fileName
Full pathname for temporary TSV file.
Definition: DbTsvStorage.h:103
std::string _location
Database location URL.
Definition: DbTsvStorage.h:104
std::map< std::string, int > _colMap
Map from column names to positions.
Definition: DbTsvStorage.h:106
bool _saveTemp
Do not delete temporary TSV file if true.
Definition: DbTsvStorage.h:101
boost::scoped_ptr< std::ofstream > _osp
Output TSV stream.
Definition: DbTsvStorage.h:109
virtual void endTransaction(void)
Definition: DbStorage.cc:101
#define LSST_EXCEPT(type,...)
Definition: Exception.h:46
template<typename T >
T const & lsst::daf::persistence::DbTsvStorage::getColumnByPos ( int  pos)

Get the value of a column of the query result row by position.

Parameters
[in]posPosition of the column (starts at 0)

Definition at line 376 of file DbTsvStorage.cc.

376  {
377  return DbStorage::getColumnByPos<T>(pos);
378 }
void lsst::daf::persistence::DbTsvStorage::insertRow ( void  )
virtual

Insert the row. Row values must have been set with setColumn() calls.

Reimplemented from lsst::daf::persistence::DbStorage.

Definition at line 334 of file DbTsvStorage.cc.

334  {
335  // Output row to stream
336  for (std::vector<std::string>::const_iterator i = _rowBuffer.begin();
337  i != _rowBuffer.end(); ++i) {
338  if (i != _rowBuffer.begin()) *_osp << '\t';
339  *_osp << *i;
340  }
341  // \todo Optimization: if columns all outputted, just put out endl
342  *_osp << std::endl;
343 }
std::vector< std::string > _rowBuffer
Definition: DbTsvStorage.h:108
boost::scoped_ptr< std::ofstream > _osp
Output TSV stream.
Definition: DbTsvStorage.h:109
template<typename T >
void lsst::daf::persistence::DbTsvStorage::outParam ( std::string const &  columnName,
T *  location,
bool  isExpr = false 
)

Request a column in the query output and bind a destination location.

Parameters
[in]columnNameName of the column
[in]locationPointer to the destination
[in]isExprTrue if the name is actually an expression

The order of outParam() calls is the order of appearance in the output row. Use either outColumn() or outParam() but not both.

Definition at line 357 of file DbTsvStorage.cc.

358  {
359  DbStorage::outParam<T>(columnName, location, isExpr);
360 }
template<typename T >
void lsst::daf::persistence::DbTsvStorage::setColumn ( std::string const &  columnName,
T const &  value 
)

Set the value to insert in a given column.

Parameters
[in]columnNameName of the column
[in]valueValue to set in the column

Definition at line 270 of file DbTsvStorage.cc.

270  {
271  int colIndex = _getColumnIndex(columnName);
272 
273  // set value in row buffer
274  // \todo quote value as appropriate
275  _convertStream.str(std::string());
276  _convertStream << value;
277  _rowBuffer[colIndex] = _convertStream.str();
278 
279  // \todo Optimization: if next column, output now, plus any others saved
280 }
int _getColumnIndex(std::string const &columnName)
std::vector< std::string > _rowBuffer
Definition: DbTsvStorage.h:108
std::ostringstream _convertStream
Stream to convert to text.
Definition: DbTsvStorage.h:107
template<>
void lsst::daf::persistence::DbTsvStorage::setColumn ( std::string const &  columnName,
char const &  value 
)

Definition at line 284 of file DbTsvStorage.cc.

285  {
286  int colIndex = _getColumnIndex(columnName);
287  _convertStream.str(std::string());
288  _convertStream << static_cast<int>(value);
289  _rowBuffer[colIndex] = _convertStream.str();
290 }
int _getColumnIndex(std::string const &columnName)
std::vector< std::string > _rowBuffer
Definition: DbTsvStorage.h:108
std::ostringstream _convertStream
Stream to convert to text.
Definition: DbTsvStorage.h:107
template<>
void lsst::daf::persistence::DbTsvStorage::setColumn ( std::string const &  columnName,
double const &  value 
)

Definition at line 294 of file DbTsvStorage.cc.

295  {
296  int colIndex = _getColumnIndex(columnName);
297  _convertStream.str(std::string());
298  _convertStream << std::setprecision(17) << value;
299  _rowBuffer[colIndex] = _convertStream.str();
300 }
int _getColumnIndex(std::string const &columnName)
std::vector< std::string > _rowBuffer
Definition: DbTsvStorage.h:108
std::ostringstream _convertStream
Stream to convert to text.
Definition: DbTsvStorage.h:107
template<>
void lsst::daf::persistence::DbTsvStorage::setColumn ( std::string const &  columnName,
float const &  value 
)

Definition at line 303 of file DbTsvStorage.cc.

304  {
305  int colIndex = _getColumnIndex(columnName);
306  _convertStream.str(std::string());
307  _convertStream << std::setprecision(9) << value;
308  _rowBuffer[colIndex] = _convertStream.str();
309 }
int _getColumnIndex(std::string const &columnName)
std::vector< std::string > _rowBuffer
Definition: DbTsvStorage.h:108
std::ostringstream _convertStream
Stream to convert to text.
Definition: DbTsvStorage.h:107
template<>
void lsst::daf::persistence::DbTsvStorage::setColumn ( std::string const &  columnName,
DateTime const &  value 
)

Definition at line 313 of file DbTsvStorage.cc.

314  {
315  int colIndex = _getColumnIndex(columnName);
316  _convertStream.str(std::string());
317  struct tm t = value.gmtime();
318  char buf[20];
319  strftime(buf, sizeof(buf), "%F %T", &t);
320  _rowBuffer[colIndex] = std::string(buf);
321 }
int _getColumnIndex(std::string const &columnName)
std::vector< std::string > _rowBuffer
Definition: DbTsvStorage.h:108
std::ostringstream _convertStream
Stream to convert to text.
Definition: DbTsvStorage.h:107
void lsst::daf::persistence::DbTsvStorage::setColumnToNull ( std::string const &  columnName)
virtual

Set a given column to NULL.

Parameters
[in]columnNameName of the column

Reimplemented from lsst::daf::persistence::DbStorage.

Definition at line 326 of file DbTsvStorage.cc.

326  {
327  int colIndex = _getColumnIndex(columnName);
328  _rowBuffer[colIndex] = "\\N";
329 }
int _getColumnIndex(std::string const &columnName)
std::vector< std::string > _rowBuffer
Definition: DbTsvStorage.h:108
void lsst::daf::persistence::DbTsvStorage::setPersistLocation ( LogicalLocation const &  location)
virtual

Set the database location to persist to.

Parameters
[in]locationDatabase connection string to insert to.

Reimplemented from lsst::daf::persistence::DbStorage.

Definition at line 91 of file DbTsvStorage.cc.

91  {
92  _persisting = true;
93  _location = location.locString();
94  // Set the timezone for any DATE/TIME/DATETIME fields.
95  setenv("TZ", "UTC", 1);
96 }
std::string _location
Database location URL.
Definition: DbTsvStorage.h:104
void lsst::daf::persistence::DbTsvStorage::setPolicy ( lsst::pex::policy::Policy::Ptr  policy)
virtual

Allow a policy to be used to configure the DbTsvStorage.

Parameters
[in]policy

Reimplemented from lsst::daf::persistence::DbStorage.

Definition at line 78 of file DbTsvStorage.cc.

78  {
79  _tempPath = "/tmp";
80  if (policy && policy->exists("TempPath")) {
81  _tempPath = policy->getString("TempPath");
82  }
83  if (policy && policy->exists("SaveTemp") && policy->getBool("SaveTemp")) {
84  _saveTemp = true;
85  }
86 }
std::string _tempPath
Directory pathname for temporary TSV file.
Definition: DbTsvStorage.h:102
bool _saveTemp
Do not delete temporary TSV file if true.
Definition: DbTsvStorage.h:101
void lsst::daf::persistence::DbTsvStorage::setRetrieveLocation ( LogicalLocation const &  location)
virtual

Set the database location to retrieve from.

Parameters
[in]locationDatabase connection string to retrieve from.

Reimplemented from lsst::daf::persistence::DbStorage.

Definition at line 101 of file DbTsvStorage.cc.

101  {
102  _persisting = false;
104 }
virtual void setRetrieveLocation(LogicalLocation const &location)
Definition: DbStorage.cc:89
void lsst::daf::persistence::DbTsvStorage::setTableForInsert ( std::string const &  tableName)
virtual

Set the table to insert rows into.

Parameters
[in]tableNameName of the table

Reimplemented from lsst::daf::persistence::DbStorage.

Definition at line 234 of file DbTsvStorage.cc.

234  {
235  _tableName = tableName;
236  std::string templ = _tempPath + "/" + tableName + ".XXXXXX";
237  _fileName = new char[templ.size() + 1];
238  strncpy(_fileName, templ.c_str(), templ.size());
239  _fileName[templ.size()] = '\0';
240  int fd = mkstemp(_fileName);
241  // \todo check for errors
242  close(fd);
243  _osp.reset(new std::ofstream(_fileName));
244 }
char * _fileName
Full pathname for temporary TSV file.
Definition: DbTsvStorage.h:103
std::string _tempPath
Directory pathname for temporary TSV file.
Definition: DbTsvStorage.h:102
boost::scoped_ptr< std::ofstream > _osp
Output TSV stream.
Definition: DbTsvStorage.h:109
void lsst::daf::persistence::DbTsvStorage::startTransaction ( void  )
virtual

Start a transaction.

Reimplemented from lsst::daf::persistence::DbStorage.

Definition at line 108 of file DbTsvStorage.cc.

void lsst::daf::persistence::DbTsvStorage::truncateTable ( std::string const &  tableName)
virtual

Truncate a table.

Parameters
[in]tableNameName of the table to truncate

Reimplemented from lsst::daf::persistence::DbStorage.

Definition at line 218 of file DbTsvStorage.cc.

218  {
219  if (_persisting) {
220  DbStorage dbs;
221  dbs.setPersistLocation(LogicalLocation(_location));
222  dbs.startTransaction();
223  dbs.truncateTable(tableName);
224  dbs.endTransaction();
225  }
226  else {
227  DbStorage::truncateTable(tableName);
228  }
229 }
std::string _location
Database location URL.
Definition: DbTsvStorage.h:104
virtual void truncateTable(std::string const &tableName)
Definition: DbStorage.cc:128

Member Data Documentation

std::map<std::string, int> lsst::daf::persistence::DbTsvStorage::_colMap
private

Map from column names to positions.

Definition at line 106 of file DbTsvStorage.h.

std::ostringstream lsst::daf::persistence::DbTsvStorage::_convertStream
private

Stream to convert to text.

Definition at line 107 of file DbTsvStorage.h.

char* lsst::daf::persistence::DbTsvStorage::_fileName
private

Full pathname for temporary TSV file.

Definition at line 103 of file DbTsvStorage.h.

std::string lsst::daf::persistence::DbTsvStorage::_location
private

Database location URL.

Definition at line 104 of file DbTsvStorage.h.

boost::scoped_ptr<std::ofstream> lsst::daf::persistence::DbTsvStorage::_osp
private

Output TSV stream.

Definition at line 109 of file DbTsvStorage.h.

bool lsst::daf::persistence::DbTsvStorage::_persisting
private

Definition at line 100 of file DbTsvStorage.h.

std::vector<std::string> lsst::daf::persistence::DbTsvStorage::_rowBuffer
private

Definition at line 108 of file DbTsvStorage.h.

bool lsst::daf::persistence::DbTsvStorage::_saveTemp
private

Do not delete temporary TSV file if true.

Definition at line 101 of file DbTsvStorage.h.

std::string lsst::daf::persistence::DbTsvStorage::_tableName
private

Definition at line 105 of file DbTsvStorage.h.

std::string lsst::daf::persistence::DbTsvStorage::_tempPath
private

Directory pathname for temporary TSV file.

Definition at line 102 of file DbTsvStorage.h.


The documentation for this class was generated from the following files: