32 #ifndef vtkPostgreSQLDatabase_h
33 #define vtkPostgreSQLDatabase_h
35 #include "vtkIOPostgreSQLModule.h"
38 VTK_ABI_NAMESPACE_BEGIN
48 friend class vtkPostgreSQLQueryPrivate;
60 bool Open(
const char* password =
nullptr)
override;
65 void Close()
override;
98 virtual void SetHostName(
const char*);
99 vtkGetStringMacro(HostName);
106 virtual void SetUser(
const char*);
107 vtkGetStringMacro(User);
113 virtual void SetPassword(
const char*);
119 virtual void SetDatabaseName(
const char*);
120 vtkGetStringMacro(DatabaseName);
127 virtual void SetConnectOptions(
const char*);
128 vtkGetStringMacro(ConnectOptions);
135 virtual void SetServerPort(
int);
138 vtkGetMacro(ServerPort,
int);
173 bool CreateDatabase(
const char* dbName,
bool dropExisting =
false);
179 bool DropDatabase(
const char* dbName);
217 void UpdateDataTypeMap();
219 vtkSetStringMacro(DatabaseType);
220 vtkSetStringMacro(LastErrorText);
221 void NullTrailingWhitespace(
char* msg);
222 bool OpenInternal(
const char* connectionOptions);
245 #define vtkSetStringPlusMTimeMacro(className, name, timeStamp) \
246 inline void className::Set##name(const char* _arg) \
248 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting " << #name " to " \
249 << (_arg ? _arg : "(null)")); \
250 if (this->name == nullptr && _arg == nullptr) \
254 if (this->name && _arg && (!strcmp(this->name, _arg))) \
258 delete[] this->name; \
261 size_t n = strlen(_arg) + 1; \
262 char* cp1 = new char[n]; \
263 const char* cp2 = (_arg); \
272 this->name = nullptr; \
275 this->timeStamp.Modified(); \
287 vtkDebugMacro(<< this->
GetClassName() <<
" (" <<
this <<
"): setting ServerPort to " << _arg);
297 VTK_ABI_NAMESPACE_END
298 #endif // vtkPostgreSQLDatabase_h
Wrapper around std::string to keep symbols short.
virtual vtkStdString GetColumnSpecification(vtkSQLDatabaseSchema *schema, int tblHandle, int colHandle)
Return the SQL string with the syntax to create a column inside a "CREATE TABLE" SQL statement...
const char * GetDatabaseType() override
String representing database type (e.g.
vtkTimeStamp ConnectionMTime
maintain a connection to a PostgreSQL database
virtual bool IsSupported(int vtkNotUsed(feature))
Return whether a feature is supported by the database.
record modification and/or execution time
virtual bool Open(const char *password)=0
Open a new connection to the database.
virtual bool ParseURL(const char *url)=0
Subclasses should override this method to determine connection parameters given the URL...
internal details of a connection to a PostgreSQL database
void Modified()
Set this objects time to the current time.
virtual bool HasError()=0
Did the last operation generate an error.
a vtkAbstractArray subclass for strings
virtual vtkStdString GetURL()=0
Get the URL of the database.
represent an SQL database schema
virtual vtkStringArray * GetRecord(const char *table)=0
Get the list of fields for a particular table.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual int GetServerPortMaxValue()
The port used for connecting to the database.
virtual int GetServerPortMinValue()
The port used for connecting to the database.
maintain a connection to an sql database
virtual void Close()=0
Close the connection to the database.
vtkPostgreSQLDatabasePrivate * Connection
a simple class to control print indentation
const char * GetClassName() const
Return the class name as a string.
vtkSQLQuery implementation for PostgreSQL databases
void Close() override
Close the connection to the database.
virtual vtkSQLQuery * GetQueryInstance()=0
Return an empty query on this database.
virtual bool IsOpen()=0
Return whether the database has an open connection.
virtual void Modified()
Update the modification time for this object.
#define vtkSetStringPlusMTimeMacro(className, name, timeStamp)
virtual const char * GetLastErrorText()=0
Get the last error text from the database I'm using const so that people do NOT use the standard vtkG...
executes an sql query and retrieves results
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
virtual vtkStringArray * GetTables()=0
Get the list of tables from the database.
virtual void SetServerPort(int)
The port used for connecting to the database.