mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
- Allowing views and queries as parameters for PROXY base tables
NOTE: Checking for looping references cannot be done when using views as parameters. This should not be allowed on production servers and should be dependant on a system variable and/or on speciel grant. modified: storage/connect/CMakeLists.txt storage/connect/connect.cc storage/connect/ha_connect.cc storage/connect/myconn.cpp storage/connect/myconn.h storage/connect/mysql-test/connect/r/fmt.result storage/connect/mysql-test/connect/r/pivot.result storage/connect/mysql-test/connect/t/fmt.test storage/connect/mysql-test/connect/t/pivot.test storage/connect/plgdbsem.h storage/connect/plugutil.c storage/connect/tabcol.cpp storage/connect/tabcol.h storage/connect/tabfmt.cpp storage/connect/tabmysql.cpp storage/connect/tabmysql.h storage/connect/taboccur.cpp storage/connect/taboccur.h storage/connect/tabpivot.cpp storage/connect/tabpivot.h storage/connect/tabtbl.cpp storage/connect/tabutil.cpp storage/connect/tabutil.h storage/connect/xtable.h
This commit is contained in:
@@ -30,6 +30,7 @@ class MYSQLDEF : public TABDEF {/* Logical table description */
|
||||
inline PSZ GetHostname(void) {return Hostname;};
|
||||
inline PSZ GetDatabase(void) {return Database;};
|
||||
inline PSZ GetTabname(void) {return Tabname;}
|
||||
inline PSZ GetSrcdef(void) {return Srcdef;}
|
||||
inline PSZ GetUsername(void) {return Username;};
|
||||
inline PSZ GetPassword(void) {return Password;};
|
||||
inline int GetPortnumber(void) {return Portnumber;}
|
||||
@@ -44,9 +45,11 @@ class MYSQLDEF : public TABDEF {/* Logical table description */
|
||||
PSZ Hostname; /* Host machine to use */
|
||||
PSZ Database; /* Database to be used by server */
|
||||
PSZ Tabname; /* External table name */
|
||||
PSZ Srcdef; /* The source table SQL definition */
|
||||
PSZ Username; /* User logon name */
|
||||
PSZ Password; /* Password logon info */
|
||||
int Portnumber; /* MySQL port number (0 = default) */
|
||||
bool Isview; /* TRUE if this table is a MySQL view */
|
||||
bool Bind; /* Use prepared statement on insert */
|
||||
bool Delayed; /* Delayed insert */
|
||||
}; // end of MYSQLDEF
|
||||
@@ -72,6 +75,7 @@ class TDBMYSQL : public TDBASE {
|
||||
virtual int GetProgMax(PGLOBAL g);
|
||||
virtual void ResetDB(void) {N = 0;}
|
||||
virtual int RowNumber(PGLOBAL g, bool b = FALSE);
|
||||
virtual bool IsView(void) {return Isview;}
|
||||
void SetDatabase(LPCSTR db) {Database = (char*)db;}
|
||||
|
||||
// Database routines
|
||||
@@ -83,6 +87,10 @@ class TDBMYSQL : public TDBASE {
|
||||
virtual int DeleteDB(PGLOBAL g, int irc);
|
||||
virtual void CloseDB(PGLOBAL g);
|
||||
|
||||
// Specific routines
|
||||
bool SetColumnRanks(PGLOBAL g);
|
||||
PCOL MakeFieldColumn(PGLOBAL g, char *name);
|
||||
|
||||
protected:
|
||||
// Internal functions
|
||||
bool MakeSelect(PGLOBAL g);
|
||||
@@ -99,9 +107,11 @@ class TDBMYSQL : public TDBASE {
|
||||
char *Pwd; // Password logon info
|
||||
char *Database; // Database to be used by server
|
||||
char *Tabname; // External table name
|
||||
char *Srcdef; // The source table SQL definition
|
||||
char *Query; // Points to SQL query
|
||||
char *Qbuf; // Used for not prepared insert
|
||||
char *Qbuf; // Used for not prepared insert
|
||||
bool Fetched; // True when fetch was done
|
||||
bool Isview; // True if this table is a MySQL view
|
||||
bool Prep; // Use prepared statement on insert
|
||||
bool Delayed; // Use delayed insert
|
||||
int m_Rc; // Return code from command
|
||||
@@ -119,6 +129,7 @@ class MYSQLCOL : public COLBLK {
|
||||
public:
|
||||
// Constructors
|
||||
MYSQLCOL(PCOLDEF cdp, PTDB tdbp, PCOL cprec, int i, PSZ am = "MYSQL");
|
||||
MYSQLCOL(MYSQL_FIELD *fld, PTDB tdbp, int i, PSZ am = "MYSQL");
|
||||
MYSQLCOL(MYSQLCOL *colp, PTDB tdbp); // Constructor used in copy process
|
||||
|
||||
// Implementation
|
||||
@@ -129,6 +140,7 @@ class MYSQLCOL : public COLBLK {
|
||||
virtual bool SetBuffer(PGLOBAL g, PVAL value, bool ok, bool check);
|
||||
virtual void ReadColumn(PGLOBAL g);
|
||||
virtual void WriteColumn(PGLOBAL g);
|
||||
bool FindRank(PGLOBAL g);
|
||||
|
||||
protected:
|
||||
// Default constructor not to be used
|
||||
|
Reference in New Issue
Block a user