Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
06af0367
Commit
06af0367
authored
Oct 24, 2020
by
Oleksandr Byelkin
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'connect/10.1' into 10.1
parents
94b49357
671d9b6c
Changes
17
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
511 additions
and
108 deletions
+511
-108
storage/connect/connect.cc
storage/connect/connect.cc
+0
-1
storage/connect/filamdbf.cpp
storage/connect/filamdbf.cpp
+147
-52
storage/connect/filamdbf.h
storage/connect/filamdbf.h
+1
-1
storage/connect/filamzip.cpp
storage/connect/filamzip.cpp
+271
-11
storage/connect/filamzip.h
storage/connect/filamzip.h
+35
-3
storage/connect/ha_connect.cc
storage/connect/ha_connect.cc
+7
-12
storage/connect/mongo.cpp
storage/connect/mongo.cpp
+0
-1
storage/connect/mongo.h
storage/connect/mongo.h
+0
-1
storage/connect/plgxml.cpp
storage/connect/plgxml.cpp
+1
-1
storage/connect/tabcmg.cpp
storage/connect/tabcmg.cpp
+2
-0
storage/connect/tabdos.cpp
storage/connect/tabdos.cpp
+22
-14
storage/connect/tabdos.h
storage/connect/tabdos.h
+1
-0
storage/connect/tabfix.h
storage/connect/tabfix.h
+10
-8
storage/connect/tabjson.cpp
storage/connect/tabjson.cpp
+1
-0
storage/connect/tabjson.h
storage/connect/tabjson.h
+0
-1
storage/connect/tabzip.cpp
storage/connect/tabzip.cpp
+11
-2
storage/connect/tabzip.h
storage/connect/tabzip.h
+2
-0
No files found.
storage/connect/connect.cc
View file @
06af0367
...
...
@@ -355,7 +355,6 @@ bool CntOpenTable(PGLOBAL g, PTDB tdbp, MODE mode, char *c1, char *c2,
}
// endif mode
rcop
=
false
;
}
catch
(
int
n
)
{
if
(
trace
(
1
))
htrc
(
"Exception %d: %s
\n
"
,
n
,
g
->
Message
);
...
...
storage/connect/filamdbf.cpp
View file @
06af0367
This diff is collapsed.
Click to expand it.
storage/connect/filamdbf.h
View file @
06af0367
...
...
@@ -19,7 +19,7 @@ typedef class DBMFAM *PDBMFAM;
/****************************************************************************/
/* Functions used externally. */
/****************************************************************************/
PQRYRES
DBFColumns
(
PGLOBAL
g
,
PCSZ
dp
,
PCSZ
fn
,
bool
info
);
PQRYRES
DBFColumns
(
PGLOBAL
g
,
PCSZ
dp
,
PCSZ
fn
,
PTOS
tiop
,
bool
info
);
/****************************************************************************/
/* This is the base class for dBASE file access methods. */
...
...
storage/connect/filamzip.cpp
View file @
06af0367
This diff is collapsed.
Click to expand it.
storage/connect/filamzip.h
View file @
06af0367
/************** filamzip H Declares Source Code File (.H) **************/
/* Name: filamzip.h Version 1.
2
*/
/* Name: filamzip.h Version 1.
3
*/
/* */
/* (C) Copyright to the author Olivier BERTRAND 2016-20
17
*/
/* (C) Copyright to the author Olivier BERTRAND 2016-20
20
*/
/* */
/* This file contains the ZIP file access method classes declares. */
/***********************************************************************/
...
...
@@ -11,6 +11,7 @@
#include "block.h"
#include "filamap.h"
#include "filamfix.h"
#include "filamdbf.h"
#include "zip.h"
#include "unzip.h"
...
...
@@ -18,6 +19,7 @@
typedef
class
UNZFAM
*
PUNZFAM
;
typedef
class
UZXFAM
*
PUZXFAM
;
typedef
class
UZDFAM
*
PUZDFAM
;
typedef
class
ZIPFAM
*
PZIPFAM
;
typedef
class
ZPXFAM
*
PZPXFAM
;
...
...
@@ -53,7 +55,7 @@ class DllExport ZIPUTIL : public BLOCK {
class
DllExport
UNZIPUTL
:
public
BLOCK
{
public:
// Constructor
UNZIPUTL
(
PCSZ
tgt
,
bool
mul
);
UNZIPUTL
(
PCSZ
tgt
,
PCSZ
pw
,
bool
mul
);
UNZIPUTL
(
PDOSDEF
tdp
);
// Implementation
...
...
@@ -143,6 +145,36 @@ class DllExport UZXFAM : public MPXFAM {
PDOSDEF
tdfp
;
};
// end of UZXFAM
/***********************************************************************/
/* This is the fixed unzip file access method. */
/***********************************************************************/
class
DllExport
UZDFAM
:
public
DBMFAM
{
//friend class UNZFAM;
public:
// Constructors
UZDFAM
(
PDOSDEF
tdp
);
UZDFAM
(
PUZDFAM
txfp
);
// Implementation
virtual
AMT
GetAmType
(
void
)
{
return
TYPE_AM_ZIP
;
}
virtual
PTXF
Duplicate
(
PGLOBAL
g
)
{
return
(
PTXF
)
new
(
g
)
UZDFAM
(
this
);
}
// Methods
virtual
int
GetFileLength
(
PGLOBAL
g
);
virtual
int
Cardinality
(
PGLOBAL
g
);
virtual
bool
OpenTableFile
(
PGLOBAL
g
);
virtual
int
GetNext
(
PGLOBAL
g
);
//virtual int ReadBuffer(PGLOBAL g);
protected:
int
dbfhead
(
PGLOBAL
g
,
void
*
buf
);
int
ScanHeader
(
PGLOBAL
g
,
int
*
rln
);
// Members
UNZIPUTL
*
zutp
;
PDOSDEF
tdfp
;
};
// end of UZDFAM
/***********************************************************************/
/* This is the zip file access method. */
/***********************************************************************/
...
...
storage/connect/ha_connect.cc
View file @
06af0367
...
...
@@ -4507,12 +4507,12 @@ bool ha_connect::check_privileges(THD *thd, PTOS options, char *dbn, bool quick)
case
TAB_DIR
:
case
TAB_ZIP
:
case
TAB_OEM
:
if
(
table
&&
table
->
pos_in_table_list
)
// if SELECT
{
//Switch_to_definer_security_ctx backup_ctx(thd, table->pos_in_table_list);
if
(
table
&&
table
->
pos_in_table_list
)
{
// if SELECT
#if MYSQL_VERSION_ID > 100200
Switch_to_definer_security_ctx
backup_ctx
(
thd
,
table
->
pos_in_table_list
);
#endif // VERSION_ID > 100200
return
check_global_access
(
thd
,
FILE_ACL
);
}
else
}
else
return
check_global_access
(
thd
,
FILE_ACL
);
case
TAB_ODBC
:
case
TAB_JDBC
:
...
...
@@ -4528,7 +4528,7 @@ bool ha_connect::check_privileges(THD *thd, PTOS options, char *dbn, bool quick)
case
TAB_VIR
:
// This is temporary until a solution is found
return
false
;
}
// endswitch type
}
// endswitch type
my_printf_error
(
ER_UNKNOWN_ERROR
,
"check_privileges failed"
,
MYF
(
0
));
return
true
;
...
...
@@ -5882,7 +5882,7 @@ static int connect_assisted_discovery(handlerton *, THD* thd,
}
else
switch
(
ttp
)
{
case
TAB_DBF
:
qrp
=
DBFColumns
(
g
,
dpath
,
fn
,
fnc
==
FNC_COL
);
qrp
=
DBFColumns
(
g
,
dpath
,
fn
,
topt
,
fnc
==
FNC_COL
);
break
;
#if defined(ODBC_SUPPORT)
case
TAB_ODBC
:
...
...
@@ -6733,11 +6733,6 @@ int ha_connect::create(const char *name, TABLE *table_arg,
PCSZ
m
=
GetListOption
(
g
,
"Mulentries"
,
options
->
oplist
,
"NO"
);
bool
mul
=
*
m
==
'1'
||
*
m
==
'Y'
||
*
m
==
'y'
||
!
stricmp
(
m
,
"ON"
);
if
(
!
entry
&&
!
mul
)
{
my_message
(
ER_UNKNOWN_ERROR
,
"Missing entry name"
,
MYF
(
0
));
DBUG_RETURN
(
HA_ERR_INTERNAL_ERROR
);
}
// endif entry
strcat
(
strcat
(
strcpy
(
dbpath
,
"./"
),
table
->
s
->
db
.
str
),
"/"
);
PlugSetPath
(
zbuf
,
options
->
filename
,
dbpath
);
PlugSetPath
(
buf
,
fn
,
dbpath
);
...
...
storage/connect/mongo.cpp
View file @
06af0367
...
...
@@ -380,7 +380,6 @@ MGODEF::MGODEF(void)
Uri
=
NULL
;
Colist
=
NULL
;
Filter
=
NULL
;
Level
=
0
;
Base
=
0
;
Version
=
0
;
Pipe
=
false
;
...
...
storage/connect/mongo.h
View file @
06af0367
...
...
@@ -82,7 +82,6 @@ class DllExport MGODEF : public EXTDEF { /* Table description */
PSZ
Wrapname
;
/* Java wrapper name */
PCSZ
Colist
;
/* Options list */
PCSZ
Filter
;
/* Filtering query */
int
Level
;
/* Used for catalog table */
int
Base
;
/* The array index base */
int
Version
;
/* The Java driver version */
bool
Pipe
;
/* True is Colist is a pipeline */
...
...
storage/connect/plgxml.cpp
View file @
06af0367
...
...
@@ -49,7 +49,7 @@ bool XMLDOCUMENT::InitZip(PGLOBAL g, PCSZ entry)
{
#if defined(ZIP_SUPPORT)
bool
mul
=
(
entry
)
?
strchr
(
entry
,
'*'
)
||
strchr
(
entry
,
'?'
)
:
false
;
zip
=
new
(
g
)
UNZIPUTL
(
entry
,
mul
);
zip
=
new
(
g
)
UNZIPUTL
(
entry
,
NULL
,
mul
);
return
zip
==
NULL
;
#else // !ZIP_SUPPORT
sprintf
(
g
->
Message
,
MSG
(
NO_FEAT_SUPPORT
),
"ZIP"
);
...
...
storage/connect/tabcmg.cpp
View file @
06af0367
...
...
@@ -26,6 +26,8 @@
#include "tabmul.h"
#include "filter.h"
PQRYRES
MGOColumns
(
PGLOBAL
g
,
PCSZ
db
,
PCSZ
uri
,
PTOS
topt
,
bool
info
);
/* -------------------------- Class CMGDISC -------------------------- */
/***********************************************************************/
...
...
storage/connect/tabdos.cpp
View file @
06af0367
/************* TabDos C++ Program Source Code File (.CPP) **************/
/* PROGRAM NAME: TABDOS */
/* ------------- */
/* Version 4.9.
4
*/
/* Version 4.9.
5
*/
/* */
/* COPYRIGHT: */
/* ---------- */
/* (C) Copyright to the author Olivier BERTRAND 1998-20
19
*/
/* (C) Copyright to the author Olivier BERTRAND 1998-20
20
*/
/* */
/* WHAT THIS PROGRAM DOES: */
/* ----------------------- */
...
...
@@ -359,7 +359,26 @@ PTDB DOSDEF::GetTable(PGLOBAL g, MODE mode)
/* Allocate table and file processing class of the proper type. */
/* Column blocks will be allocated only when needed. */
/*********************************************************************/
if
(
Zipped
)
{
if
(
Recfm
==
RECFM_DBF
)
{
if
(
Catfunc
==
FNC_NO
)
{
if
(
Zipped
)
{
if
(
mode
==
MODE_READ
||
mode
==
MODE_ANY
||
mode
==
MODE_ALTER
)
{
txfp
=
new
(
g
)
UZDFAM
(
this
);
}
else
{
strcpy
(
g
->
Message
,
"Zipped DBF tables are read only"
);
return
NULL
;
}
// endif's mode
}
else
if
(
map
)
txfp
=
new
(
g
)
DBMFAM
(
this
);
else
txfp
=
new
(
g
)
DBFFAM
(
this
);
tdbp
=
new
(
g
)
TDBFIX
(
this
,
txfp
);
}
else
tdbp
=
new
(
g
)
TDBDCL
(
this
);
// Catfunc should be 'C'
}
else
if
(
Zipped
)
{
#if defined(ZIP_SUPPORT)
if
(
Recfm
==
RECFM_VAR
)
{
if
(
mode
==
MODE_READ
||
mode
==
MODE_ANY
||
mode
==
MODE_ALTER
)
{
...
...
@@ -389,17 +408,6 @@ PTDB DOSDEF::GetTable(PGLOBAL g, MODE mode)
sprintf
(
g
->
Message
,
MSG
(
NO_FEAT_SUPPORT
),
"ZIP"
);
return
NULL
;
#endif // !ZIP_SUPPORT
}
else
if
(
Recfm
==
RECFM_DBF
)
{
if
(
Catfunc
==
FNC_NO
)
{
if
(
map
)
txfp
=
new
(
g
)
DBMFAM
(
this
);
else
txfp
=
new
(
g
)
DBFFAM
(
this
);
tdbp
=
new
(
g
)
TDBFIX
(
this
,
txfp
);
}
else
// Catfunc should be 'C'
tdbp
=
new
(
g
)
TDBDCL
(
this
);
}
else
if
(
Recfm
!=
RECFM_VAR
&&
Compressed
<
2
)
{
if
(
Huge
)
txfp
=
new
(
g
)
BGXFAM
(
this
);
...
...
storage/connect/tabdos.h
View file @
06af0367
...
...
@@ -30,6 +30,7 @@ class DllExport DOSDEF : public TABDEF { /* Logical table description */
friend
class
DBFBASE
;
friend
class
UNZIPUTL
;
friend
class
JSONCOL
;
friend
class
TDBDCL
;
public:
// Constructor
DOSDEF
(
void
);
...
...
storage/connect/tabfix.h
View file @
06af0367
...
...
@@ -98,18 +98,20 @@ class DllExport BINCOL : public DOSCOL {
/* This is the class declaration for the DBF columns catalog table. */
/***********************************************************************/
class
TDBDCL
:
public
TDBCAT
{
public:
// Constructor
TDBDCL
(
PDOSDEF
tdp
)
:
TDBCAT
(
tdp
)
{
Fn
=
tdp
->
GetFn
();}
public:
// Constructor
TDBDCL
(
PDOSDEF
tdp
)
:
TDBCAT
(
tdp
)
{
Fn
=
tdp
->
GetFn
();
Topt
=
tdp
->
GetTopt
();}
protected:
protected:
// Specific routines
virtual
PQRYRES
GetResult
(
PGLOBAL
g
)
{
return
DBFColumns
(
g
,
((
PTABDEF
)
To_Def
)
->
GetPath
(),
Fn
,
false
);}
virtual
PQRYRES
GetResult
(
PGLOBAL
g
)
{
return
DBFColumns
(
g
,
((
PTABDEF
)
To_Def
)
->
GetPath
(),
Fn
,
Topt
,
false
);}
// Members
// Members
PCSZ
Fn
;
// The DBF file (path) name
};
// end of class TDBOCL
PTOS
Topt
;
};
// end of class TDBOCL
#endif // __TABFIX__
storage/connect/tabjson.cpp
View file @
06af0367
...
...
@@ -739,6 +739,7 @@ PTDB JSONDEF::GetTable(PGLOBAL g, MODE m)
/***********************************************************************/
TDBJSN
::
TDBJSN
(
PJDEF
tdp
,
PTXF
txfp
)
:
TDBDOS
(
tdp
,
txfp
)
{
G
=
NULL
;
Top
=
NULL
;
Row
=
NULL
;
Val
=
NULL
;
...
...
storage/connect/tabjson.h
View file @
06af0367
...
...
@@ -104,7 +104,6 @@ class DllExport JSONDEF : public DOSDEF { /* Table description */
PCSZ
Xcol
;
/* Name of expandable column */
int
Limit
;
/* Limit of multiple values */
int
Pretty
;
/* Depends on file structure */
int
Level
;
/* Used for catalog table */
int
Base
;
/* The array index base */
bool
Strict
;
/* Strict syntax checking */
char
Sep
;
/* The Jpath separator */
...
...
storage/connect/tabzip.cpp
View file @
06af0367
...
...
@@ -23,6 +23,7 @@
#include "filamzip.h"
#include "resource.h" // for IDS_COLUMNS
#include "tabdos.h"
#include "tabmul.h"
#include "tabzip.h"
/* -------------------------- Class ZIPDEF --------------------------- */
...
...
@@ -41,7 +42,14 @@ bool ZIPDEF::DefineAM(PGLOBAL g, LPCSTR am, int poff)
/***********************************************************************/
PTDB
ZIPDEF
::
GetTable
(
PGLOBAL
g
,
MODE
m
)
{
return
new
(
g
)
TDBZIP
(
this
);
PTDB
tdbp
=
NULL
;
tdbp
=
new
(
g
)
TDBZIP
(
this
);
if
(
Multiple
)
tdbp
=
new
(
g
)
TDBMUL
(
tdbp
);
return
tdbp
;
}
// end of GetTable
/* ------------------------------------------------------------------- */
...
...
@@ -108,7 +116,7 @@ int TDBZIP::Cardinality(PGLOBAL g)
Cardinal
=
(
err
==
UNZ_OK
)
?
(
int
)
ginfo
.
number_entry
:
0
;
}
else
Cardinal
=
0
;
Cardinal
=
10
;
// Dummy for multiple tables
}
// endif Cardinal
...
...
@@ -187,6 +195,7 @@ int TDBZIP::DeleteDB(PGLOBAL g, int irc)
void
TDBZIP
::
CloseDB
(
PGLOBAL
g
)
{
close
();
nexterr
=
UNZ_OK
;
// For multiple tables
Use
=
USE_READY
;
// Just to be clean
}
// end of CloseDB
...
...
storage/connect/tabzip.h
View file @
06af0367
...
...
@@ -48,6 +48,8 @@ class DllExport TDBZIP : public TDBASE {
// Implementation
virtual
AMT
GetAmType
(
void
)
{
return
TYPE_AM_ZIP
;}
virtual
PCSZ
GetFile
(
PGLOBAL
)
{
return
zfn
;}
virtual
void
SetFile
(
PGLOBAL
,
PCSZ
fn
)
{
zfn
=
fn
;}
// Methods
virtual
PCOL
MakeCol
(
PGLOBAL
g
,
PCOLDEF
cdp
,
PCOL
cprec
,
int
n
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment