30 #ifndef vtkSQLDatabaseSchema_h
31 #define vtkSQLDatabaseSchema_h
33 #include "vtkIOSQLModule.h"
41 #define VTK_SQL_ALLBACKENDS "*" // works for all backends
42 #define VTK_SQL_MYSQL "vtkMySQLDatabase"
43 #define VTK_SQL_POSTGRESQL "vtkPostgreSQLDatabase"
44 #define VTK_SQL_SQLITE "vtkSQLiteDatabase"
46 VTK_ABI_NAMESPACE_BEGIN
47 class vtkSQLDatabaseSchemaInternals;
113 virtual int AddPreamble(
119 virtual int AddTable(
const char* tblName);
127 virtual int AddColumnToTable(
128 int tblHandle,
int colType,
const char* colName,
int colSize,
const char* colOpts);
130 const char* tblName,
int colType,
const char* colName,
int colSize,
const char* colAttribs)
132 return this->AddColumnToTable(
133 this->GetTableHandleFromName(tblName), colType, colName, colSize, colAttribs);
143 virtual int AddIndexToTable(
int tblHandle,
int idxType,
const char* idxName);
146 return this->AddIndexToTable(this->GetTableHandleFromName(tblName), idxType, idxName);
156 virtual int AddColumnToIndex(
int tblHandle,
int idxHandle,
int colHandle);
157 virtual int AddColumnToIndex(
const char* tblName,
const char* idxName,
const char* colName)
159 int tblHandle = this->GetTableHandleFromName(tblName);
160 return this->AddColumnToIndex(tblHandle, this->GetIndexHandleFromName(tblName, idxName),
161 this->GetColumnHandleFromName(tblName, colName));
172 virtual int AddTriggerToTable(
int tblHandle,
int trgType,
const char* trgName,
177 return this->AddTriggerToTable(
178 this->GetTableHandleFromName(tblName), trgType, trgName, trgAction, trgBackend);
194 virtual int AddOptionToTable(
199 return this->AddOptionToTable(this->GetTableHandleFromName(tblName), optStr, optBackend);
206 int GetPreambleHandleFromName(
const char* preName);
211 const char* GetPreambleNameFromHandle(
int preHandle);
216 const char* GetPreambleActionFromHandle(
int preHandle);
221 const char* GetPreambleBackendFromHandle(
int preHandle);
226 int GetTableHandleFromName(
const char* tblName);
231 const char* GetTableNameFromHandle(
int tblHandle);
236 int GetIndexHandleFromName(
const char* tblName,
const char* idxName);
241 const char* GetIndexNameFromHandle(
int tblHandle,
int idxHandle);
246 int GetIndexTypeFromHandle(
int tblHandle,
int idxHandle);
251 const char* GetIndexColumnNameFromHandle(
int tblHandle,
int idxHandle,
int cnmHandle);
256 int GetColumnHandleFromName(
const char* tblName,
const char* colName);
261 const char* GetColumnNameFromHandle(
int tblHandle,
int colHandle);
266 int GetColumnTypeFromHandle(
int tblHandle,
int colHandle);
271 int GetColumnSizeFromHandle(
int tblHandle,
int colHandle);
276 const char* GetColumnAttributesFromHandle(
int tblHandle,
int colHandle);
281 int GetTriggerHandleFromName(
const char* tblName,
const char* trgName);
286 const char* GetTriggerNameFromHandle(
int tblHandle,
int trgHandle);
291 int GetTriggerTypeFromHandle(
int tblHandle,
int trgHandle);
296 const char* GetTriggerActionFromHandle(
int tblHandle,
int trgHandle);
301 const char* GetTriggerBackendFromHandle(
int tblHandle,
int trgHandle);
306 const char* GetOptionTextFromHandle(
int tblHandle,
int optHandle);
311 const char* GetOptionBackendFromHandle(
int tblHandle,
int optHandle);
321 int GetNumberOfPreambles();
326 int GetNumberOfTables();
331 int GetNumberOfColumnsInTable(
int tblHandle);
336 int GetNumberOfIndicesInTable(
int tblHandle);
341 int GetNumberOfColumnNamesInIndex(
int tblHandle,
int idxHandle);
346 int GetNumberOfTriggersInTable(
int tblHandle);
351 int GetNumberOfOptionsInTable(
int tblHandle);
357 vtkSetStringMacro(Name);
358 vtkGetStringMacro(Name);
367 INDEX_COLUMN_TOKEN = 65,
368 END_INDEX_TOKEN = 75,
403 int AddTableMultipleArguments(
const char* tblName, ...);
418 VTK_ABI_NAMESPACE_END
419 #endif // vtkSQLDatabaseSchema_h
abstract base class for most VTK objects
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual int AddTriggerToTable(const char *tblName, int trgType, const char *trgName, const char *trgAction, const char *trgBackend=VTK_SQL_ALLBACKENDS)
Add a (possibly backend-specific) trigger action to a table.
virtual int AddColumnToTable(const char *tblName, int colType, const char *colName, int colSize, const char *colAttribs)
Add a column to table.
represent an SQL database schema
DatabaseColumnType
Basic data types for database columns.
a simple class to control print indentation
DatabaseTriggerType
Events where database triggers can be registered.
#define VTK_SQL_ALLBACKENDS
DatabaseIndexType
Types of indices that can be generated for database tables.
virtual int AddColumnToIndex(const char *tblName, const char *idxName, const char *colName)
Add a column to a table index.
virtual int AddOptionToTable(const char *tblName, const char *optStr, const char *optBackend=VTK_SQL_ALLBACKENDS)
Add (possibly backend-specific) text to the end of a CREATE TABLE (...) statement.
virtual int AddIndexToTable(const char *tblName, int idxType, const char *idxName)
Add an index to table.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
class vtkSQLDatabaseSchemaInternals * Internals