43#ifndef vtkSQLDatabaseSchema_h
44#define vtkSQLDatabaseSchema_h
46#include "vtkIOSQLModule.h"
54#define VTK_SQL_ALLBACKENDS "*"
55#define VTK_SQL_MYSQL "vtkMySQLDatabase"
56#define VTK_SQL_POSTGRESQL "vtkPostgreSQLDatabase"
57#define VTK_SQL_SQLITE "vtkSQLiteDatabase"
59class vtkSQLDatabaseSchemaInternals;
140 int tblHandle,
int colType,
const char* colName,
int colSize,
const char* colOpts);
142 const char* tblName,
int colType,
const char* colName,
int colSize,
const char* colAttribs)
144 return this->AddColumnToTable(
145 this->GetTableHandleFromName(tblName), colType, colName, colSize, colAttribs);
158 return this->AddIndexToTable(this->GetTableHandleFromName(tblName), idxType, idxName);
169 virtual int AddColumnToIndex(
const char* tblName,
const char* idxName,
const char* colName)
171 int tblHandle = this->GetTableHandleFromName(tblName);
172 return this->AddColumnToIndex(tblHandle, this->GetIndexHandleFromName(tblName, idxName),
173 this->GetColumnHandleFromName(tblName, colName));
189 return this->AddTriggerToTable(
190 this->GetTableHandleFromName(tblName), trgType, trgName, trgAction, trgBackend);
211 return this->AddOptionToTable(this->GetTableHandleFromName(tblName), optStr, optBackend);
369 vtkSetStringMacro(Name);
370 vtkGetStringMacro(Name);
379 INDEX_COLUMN_TOKEN = 65,
380 END_INDEX_TOKEN = 75,
a simple class to control print indentation
abstract base class for most VTK objects
represent an SQL database schema
virtual int AddColumnToTable(int tblHandle, int colType, const char *colName, int colSize, const char *colOpts)
Add a column to table.
const char * GetPreambleBackendFromHandle(int preHandle)
Given a preamble handle, get its backend.
const char * GetTriggerNameFromHandle(int tblHandle, int trgHandle)
Given the handles of a table and a trigger, get the name of the trigger.
virtual int AddColumnToTable(const char *tblName, int colType, const char *colName, int colSize, const char *colAttribs)
Add a column to table.
int AddTableMultipleArguments(const char *tblName,...)
An unwrappable but useful routine to construct built-in schema.
static vtkSQLDatabaseSchema * New()
int GetNumberOfColumnNamesInIndex(int tblHandle, int idxHandle)
Get the number of column names associated to a particular index in a particular table .
class vtkSQLDatabaseSchemaInternals * Internals
int GetNumberOfTables()
Get the number of tables.
virtual int AddColumnToIndex(const char *tblName, const char *idxName, const char *colName)
Add a column to a table index.
virtual int AddIndexToTable(const char *tblName, int idxType, const char *idxName)
Add an index to table.
virtual int AddTable(const char *tblName)
Add a table to the schema.
int GetNumberOfOptionsInTable(int tblHandle)
Get the number of options associated with a particular table.
const char * GetColumnNameFromHandle(int tblHandle, int colHandle)
Given the handles of a table and a column, get the name of the column.
virtual int AddTriggerToTable(int tblHandle, int trgType, const char *trgName, const char *trgAction, const char *trgBackend=VTK_SQL_ALLBACKENDS)
Add a (possibly backend-specific) trigger action to a table.
int GetTableHandleFromName(const char *tblName)
Given a table name, get its handle.
int GetNumberOfIndicesInTable(int tblHandle)
Get the number of indices in a particular table .
DatabaseColumnType
Basic data types for database columns.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int GetIndexTypeFromHandle(int tblHandle, int idxHandle)
Given the handles of a table and an index, get the type of the index.
virtual int AddIndexToTable(int tblHandle, int idxType, const char *idxName)
Add an index to table.
int GetColumnHandleFromName(const char *tblName, const char *colName)
Given the names of a table and a column, get the handle of the column in this table.
const char * GetTriggerActionFromHandle(int tblHandle, int trgHandle)
Given the handles of a table and a trigger, get the action of the trigger.
const char * GetIndexColumnNameFromHandle(int tblHandle, int idxHandle, int cnmHandle)
Given the handles of a table, an index, and a column name, get the column name.
const char * GetOptionTextFromHandle(int tblHandle, int optHandle)
Given the handles of a table and one of its options, return the text of the option.
int GetTriggerTypeFromHandle(int tblHandle, int trgHandle)
Given the handles of a table and a trigger, get the type of the trigger.
const char * GetColumnAttributesFromHandle(int tblHandle, int colHandle)
Given the handles of a table and a column, get the attributes of the column.
int GetTriggerHandleFromName(const char *tblName, const char *trgName)
Given the names of a trigger and a table, get the handle of the trigger in this table.
const char * GetIndexNameFromHandle(int tblHandle, int idxHandle)
Given the handles of a table and an index, get the name of the index.
const char * GetTableNameFromHandle(int tblHandle)
Given a table handle, get its name.
void Reset()
Reset the schema to its initial, empty state.
virtual int AddPreamble(const char *preName, const char *preAction, const char *preBackend=VTK_SQL_ALLBACKENDS)
Add a preamble to the schema This can be used, in particular, to create functions and/or load languag...
const char * GetPreambleNameFromHandle(int preHandle)
Given a preamble handle, get its name.
int GetNumberOfColumnsInTable(int tblHandle)
Get the number of columns in a particular table .
const char * GetTriggerBackendFromHandle(int tblHandle, int trgHandle)
Given the handles of a table and a trigger, get the backend of the trigger.
const char * GetOptionBackendFromHandle(int tblHandle, int optHandle)
Given the handles of a table and one of its options, get the backend of the option.
int GetNumberOfTriggersInTable(int tblHandle)
Get the number of triggers defined for a particular table.
virtual int AddColumnToIndex(int tblHandle, int idxHandle, int colHandle)
Add a column to a table index.
~vtkSQLDatabaseSchema() override
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.
int GetColumnTypeFromHandle(int tblHandle, int colHandle)
Given the handles of a table and a column, get the type of the column.
const char * GetPreambleActionFromHandle(int preHandle)
Given a preamble handle, get its action.
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.
DatabaseIndexType
Types of indices that can be generated for database tables.
int GetPreambleHandleFromName(const char *preName)
Given a preamble name, get its handle.
int GetIndexHandleFromName(const char *tblName, const char *idxName)
Given the names of a table and an index, get the handle of the index in this table.
int GetColumnSizeFromHandle(int tblHandle, int colHandle)
Given the handles of a table and a column, get the size of the column.
int GetNumberOfPreambles()
Get the number of preambles.
virtual int AddOptionToTable(int tblHandle, const char *optText, const char *optBackend=VTK_SQL_ALLBACKENDS)
Add (possibly backend-specific) text to the end of a CREATE TABLE (...) statement.
DatabaseTriggerType
Events where database triggers can be registered.
#define VTK_SQL_ALLBACKENDS