~maria-captains/maria/10.0

« back to all changes in this revision

Viewing changes to storage/connect/ha_connect.h

  • Committer: Olivier Bertrand
  • Date: 2014-02-03 15:14:13 UTC
  • mto: This revision was merged to the branch mainline in revision 3984.
  • Revision ID: bertrandop@gmail.com-20140203151413-ps3oglvhb4lksxxy
This is a major update of CONNECT that goes from version 1.1 to 1.2
===================================================================
- Implement a first support of the ALTER TABLE command. This fixes MDEV-5440
  but does much more than only that. See the details of how ALTER is supported
  in the new documentation and also in MDEV-5440 comment.
  This is done principally by implementing for CONNECT the virtual function
  check_if_supported_inplace_alter.
modified:
  storage/connect/connect.cc
  storage/connect/global.h
  storage/connect/ha_connect.cc
  storage/connect/ha_connect.h
  storage/connect/mysql-test/connect/r/bin.result
  storage/connect/mysql-test/connect/r/csv.result
  storage/connect/mysql-test/connect/r/dbf.result
  storage/connect/mysql-test/connect/r/dir.result
  storage/connect/mysql-test/connect/r/fix.result
  storage/connect/mysql-test/connect/r/index.result
  storage/connect/mysql-test/connect/r/ini.result
  storage/connect/mysql-test/connect/r/occur.result
  storage/connect/mysql-test/connect/r/pivot.result
  storage/connect/mysql-test/connect/r/vec.result
  storage/connect/mysql-test/connect/t/dbf.test
  storage/connect/plugutil.c
  storage/connect/user_connect.cc

- Fixes the tabname/table_name issue for XML tables. Implement
  multiple files XML tables.
modified:
  storage/connect/tabxml.cpp
  storage/connect/tabxml.h

- Set to varchar(256) the fields of catalog tables stored
  as STRBLK's (had length 0 --> CHAR(1))
  Add the GetCharString function to the VALBLK class
modified:
  storage/connect/ha_connect.cc
  storage/connect/valblk.cpp
  storage/connect/valblk.h
  storage/connect/value.cpp

- Translate CONNECT error messages to system_charset
  to avoid truncation on not ASCII characters.
modified:
  storage/connect/ha_connect.cc

- Update version number
modified:
  storage/connect/ha_connect.cc
  storage/connect/mysql-test/connect/r/xml.result

- Move the TDBASE::data_charset body from xtable.h to table.cpp.
  (dont' remember why)
modified:
  storage/connect/table.cpp
  storage/connect/xtable.h

- Other modifications are to enhance the support of OEM tables.
  In particular, they can now provide column definition in dicovery.
modified:
  storage/connect/colblk.h
  storage/connect/global.h
  storage/connect/ha_connect.cc
  storage/connect/mycat.cc
  storage/connect/plgcnx.h
  storage/connect/plgdbsem.h
  storage/connect/xtable.h

- Or to add or modify tracing.
modified:
  storage/connect/filamtxt.cpp
  storage/connect/ha_connect.cc
  storage/connect/plgdbutl.cpp
  storage/connect/tabfix.cpp
  storage/connect/tabmysql.cpp

Show diffs side-by-side

added added

removed removed

Lines of Context:
50
50
 
51
51
class XCHK : public BLOCK {
52
52
public:
53
 
  XCHK(void) {oldsep= newsep= false; oldpix= newpix= NULL;}
 
53
  XCHK(void) {oldsep= newsep= false; 
 
54
              oldopn= newopn= NULL;
 
55
              oldpix= newpix= NULL;}
 
56
 
 
57
  inline char *SetName(PGLOBAL g, char *name) {
 
58
    char *nm= NULL;
 
59
    if (name) {nm= (char*)PlugSubAlloc(g, NULL, strlen(name) + 1);
 
60
               strcpy(nm, name);}
 
61
    return nm;}
 
62
 
54
63
  bool         oldsep;              // Sepindex before create/alter
55
64
  bool         newsep;              // Sepindex after create/alter
 
65
  char        *oldopn;              // Optname before create/alter
 
66
  char        *newopn;              // Optname after create/alter
56
67
  PIXDEF       oldpix;              // The indexes before create/alter
57
68
  PIXDEF       newpix;              // The indexes after create/alter
58
69
}; // end of class XCHK
156
167
  // CONNECT Implementation
157
168
  static   bool connect_init(void);
158
169
  static   bool connect_end(void);
 
170
  TABTYPE  GetRealType(PTOS pos);
159
171
  char    *GetStringOption(char *opname, char *sdef= NULL);
160
172
  PTOS     GetTableOptionStruct(TABLE *table_arg);
161
173
  bool     GetBooleanOption(char *opname, bool bdef);
162
174
  bool     SetBooleanOption(char *opname, bool b);
163
175
  int      GetIntegerOption(char *opname);
164
176
  bool     SetIntegerOption(char *opname, int n);
 
177
  bool     SameChar(TABLE *tab, char *opn);
 
178
  bool     SameInt(TABLE *tab, char *opn);
 
179
  bool     SameBool(TABLE *tab, char *opn);
 
180
  bool     FileExists(const char *fn);
165
181
  PFOS     GetFieldOptionStruct(Field *fp);
166
182
  void    *GetColumnOption(PGLOBAL g, void *field, PCOLINFO pcf);
167
 
  PIXDEF   GetIndexInfo(void);
 
183
  PIXDEF   GetIndexInfo(TABLE_SHARE *s= NULL);
168
184
  const char *GetDBName(const char *name);
169
185
  const char *GetTableName(void);
170
186
//int      GetColNameLen(Field *fp);
199
215
   */
200
216
  const char **bas_ext() const;
201
217
 
 
218
 /**
 
219
    Check if a storage engine supports a particular alter table in-place
 
220
    @note Called without holding thr_lock.c lock.
 
221
 */
 
222
 virtual enum_alter_inplace_result
 
223
 check_if_supported_inplace_alter(TABLE *altered_table,
 
224
                                  Alter_inplace_info *ha_alter_info);
 
225
 
202
226
  /** @brief
203
227
    This is a list of flags that indicate what functionality the storage engine
204
228
    implements. The current table flags are documented in handler.h
205
229
  */
206
 
  ulonglong table_flags() const
207
 
  {
208
 
    return (HA_NO_TRANSACTIONS | HA_REC_NOT_IN_SEQ | HA_HAS_RECORDS |
209
 
            HA_NO_AUTO_INCREMENT | HA_NO_PREFIX_CHAR_KEYS |
210
 
            HA_NO_COPY_ON_ALTER | HA_CAN_VIRTUAL_COLUMNS |
211
 
            HA_BINLOG_ROW_CAPABLE | HA_BINLOG_STMT_CAPABLE |
212
 
            /*HA_NULL_IN_KEY |*/ HA_MUST_USE_TABLE_CONDITION_PUSHDOWN);
213
 
  }
 
230
  ulonglong table_flags() const;
214
231
 
215
232
  /** @brief
216
233
    This is a bitmap of flags that indicates how the storage engine
464
481
  XINFO         xinfo;                // The table info structure
465
482
  bool          valid_info;           // True if xinfo is valid
466
483
  bool          stop;                 // Used when creating index
 
484
  bool          alter;                // True when converting to other engine
467
485
  int           indexing;             // Type of indexing for CONNECT
468
486
  int           locked;               // Table lock
469
487
  THR_LOCK_DATA lock_data;