49 #ifndef vtkPostgreSQLDatabase_h
50 #define vtkPostgreSQLDatabase_h
52 #include "vtkIOPostgreSQLModule.h"
64 friend class vtkPostgreSQLQueryPrivate;
76 bool Open(
const char* password =
nullptr)
override;
81 void Close()
override;
114 virtual void SetHostName(
const char*);
115 vtkGetStringMacro(HostName);
122 virtual void SetUser(
const char*);
123 vtkGetStringMacro(User);
129 virtual void SetPassword(
const char*);
135 virtual void SetDatabaseName(
const char*);
136 vtkGetStringMacro(DatabaseName);
143 virtual void SetConnectOptions(
const char*);
144 vtkGetStringMacro(ConnectOptions);
151 virtual void SetServerPort(
int);
154 vtkGetMacro(ServerPort,
int);
189 bool CreateDatabase(
const char* dbName,
bool dropExisting =
false);
195 bool DropDatabase(
const char* dbName);
233 void UpdateDataTypeMap();
235 vtkSetStringMacro(DatabaseType);
236 vtkSetStringMacro(LastErrorText);
237 void NullTrailingWhitespace(
char* msg);
238 bool OpenInternal(
const char* connectionOptions);
261 #define vtkSetStringPlusMTimeMacro(className, name, timeStamp) \
262 inline void className::Set##name(const char* _arg) \
264 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting " << #name " to " \
265 << (_arg ? _arg : "(null)")); \
266 if (this->name == nullptr && _arg == nullptr) \
270 if (this->name && _arg && (!strcmp(this->name, _arg))) \
274 delete[] this->name; \
277 size_t n = strlen(_arg) + 1; \
278 char* cp1 = new char[n]; \
279 const char* cp2 = (_arg); \
288 this->name = nullptr; \
291 this->timeStamp.Modified(); \
303 vtkDebugMacro(<< this->
GetClassName() <<
" (" <<
this <<
"): setting ServerPort to " << _arg);
313 #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.