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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
3c5733cd
Commit
3c5733cd
authored
Oct 27, 2015
by
Sergei Golubchik
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'connect/10.0' into 10.0
parents
6a28882b
41a3c58e
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
66 additions
and
29 deletions
+66
-29
storage/connect/ha_connect.cc
storage/connect/ha_connect.cc
+22
-10
storage/connect/odbconn.cpp
storage/connect/odbconn.cpp
+4
-2
storage/connect/reldef.h
storage/connect/reldef.h
+2
-1
storage/connect/tabdos.cpp
storage/connect/tabdos.cpp
+2
-1
storage/connect/tabjson.cpp
storage/connect/tabjson.cpp
+9
-3
storage/connect/tabodbc.cpp
storage/connect/tabodbc.cpp
+14
-3
storage/connect/value.cpp
storage/connect/value.cpp
+13
-9
No files found.
storage/connect/ha_connect.cc
View file @
3c5733cd
...
...
@@ -169,7 +169,7 @@
#define JSONMAX 10 // JSON Default max grp size
extern
"C"
{
char
version
[]
=
"Version 1.03.0007
July 05
, 2015"
;
char
version
[]
=
"Version 1.03.0007
October 20
, 2015"
;
#if defined(__WIN__)
char
compver
[]
=
"Version 1.03.0007 "
__DATE__
" "
__TIME__
;
char
slash
=
'\\'
;
...
...
@@ -1134,7 +1134,10 @@ PTOS ha_connect::GetTableOptionStruct(TABLE_SHARE *s)
{
TABLE_SHARE
*
tsp
=
(
tshp
)
?
tshp
:
(
s
)
?
s
:
table_share
;
return
(
tsp
)
?
tsp
->
option_struct
:
NULL
;
return
(
tsp
&&
(
!
tsp
->
db_plugin
||
!
stricmp
(
plugin_name
(
tsp
->
db_plugin
)
->
str
,
"connect"
)
||
!
stricmp
(
plugin_name
(
tsp
->
db_plugin
)
->
str
,
"partition"
)))
?
tsp
->
option_struct
:
NULL
;
}
// end of GetTableOptionStruct
/****************************************************************************/
...
...
@@ -2471,7 +2474,18 @@ PFIL ha_connect::CondFilter(PGLOBAL g, Item *cond)
!
(
colp
[
i
]
=
tdbp
->
ColDB
(
g
,
(
PSZ
)
pField
->
field
->
field_name
,
0
)))
return
NULL
;
// Column does not belong to this table
if
(
trace
)
{
// These types are not yet implemented (buggy)
switch
(
pField
->
field
->
type
())
{
case
MYSQL_TYPE_TIMESTAMP
:
case
MYSQL_TYPE_DATE
:
case
MYSQL_TYPE_TIME
:
case
MYSQL_TYPE_DATETIME
:
case
MYSQL_TYPE_YEAR
:
case
MYSQL_TYPE_NEWDATE
:
return
NULL
;
}
// endswitch type
if
(
trace
)
{
htrc
(
"Field index=%d
\n
"
,
pField
->
field
->
field_index
);
htrc
(
"Field name=%s
\n
"
,
pField
->
field
->
field_name
);
}
// endif trace
...
...
@@ -2486,12 +2500,10 @@ PFIL ha_connect::CondFilter(PGLOBAL g, Item *cond)
if
(
!
i
&&
(
ismul
))
return
NULL
;
if
((
res
=
pval
->
val_str
(
&
tmp
))
==
NULL
)
return
NULL
;
// To be clarified
switch
(
args
[
i
]
->
real_type
())
{
switch
(
args
[
i
]
->
real_type
())
{
case
COND
:
:
STRING_ITEM
:
pp
->
Value
=
PlugSubAllocStr
(
g
,
NULL
,
res
->
ptr
(),
res
->
length
());
res
=
pval
->
val_str
(
&
tmp
);
pp
->
Value
=
PlugSubAllocStr
(
g
,
NULL
,
res
->
ptr
(),
res
->
length
());
pp
->
Type
=
(
pp
->
Value
)
?
TYPE_STRING
:
TYPE_ERROR
;
break
;
case
COND
:
:
INT_ITEM
:
...
...
@@ -2520,8 +2532,8 @@ PFIL ha_connect::CondFilter(PGLOBAL g, Item *cond)
return
NULL
;
}
// endswitch type
if
(
trace
)
htrc
(
"Value
=%.*s
\n
"
,
res
->
length
(),
res
->
ptr
()
);
if
(
trace
)
htrc
(
"Value
type=%hd
\n
"
,
pp
->
Type
);
// Append the value to the argument list
if
(
pprec
)
...
...
storage/connect/odbconn.cpp
View file @
3c5733cd
...
...
@@ -2360,9 +2360,11 @@ int ODBConn::GetCatInfo(CATPARM *cap)
}
// endif rc
for
(
n
=
0
,
crp
=
qrp
->
Colresp
;
crp
;
n
++
,
crp
=
crp
->
Next
)
{
if
(
vlen
[
n
]
==
SQL_NULL_DATA
)
if
(
vlen
[
n
]
==
SQL_NO_TOTAL
)
ThrowDBX
(
"Unexpected SQL_NO_TOTAL returned from SQLFetch"
);
else
if
(
vlen
[
n
]
==
SQL_NULL_DATA
)
pval
[
n
]
->
SetNull
(
true
);
else
if
(
crp
->
Type
==
TYPE_STRING
&&
vlen
[
n
]
!=
SQL_NULL_DATA
)
else
if
(
crp
->
Type
==
TYPE_STRING
/* && vlen[n] != SQL_NULL_DATA*/
)
pval
[
n
]
->
SetValue_char
(
pbuf
[
n
],
vlen
[
n
]);
else
pval
[
n
]
->
SetNull
(
false
);
...
...
storage/connect/reldef.h
View file @
3c5733cd
...
...
@@ -193,7 +193,8 @@ class DllExport COLDEF : public COLCRT { /* Column description block
friend
class
COLBLK
;
friend
class
DBFFAM
;
friend
class
TDBASE
;
public:
friend
class
TDBDOS
;
public:
COLDEF
(
void
);
// Constructor
// Implementation
...
...
storage/connect/tabdos.cpp
View file @
3c5733cd
...
...
@@ -2018,7 +2018,8 @@ int TDBDOS::EstimatedLength(void)
// result if we set dep to 1
dep
=
1
+
cdp
->
GetLong
()
/
20
;
// Why 20 ?????
}
else
for
(;
cdp
;
cdp
=
cdp
->
GetNext
())
dep
=
MY_MAX
(
dep
,
cdp
->
GetOffset
());
if
(
!
(
cdp
->
Flags
&
(
U_VIRTUAL
|
U_SPECIAL
)))
dep
=
MY_MAX
(
dep
,
cdp
->
GetOffset
());
return
(
int
)
dep
;
}
// end of Estimated Length
...
...
storage/connect/tabjson.cpp
View file @
3c5733cd
...
...
@@ -755,7 +755,7 @@ int TDBJSN::MakeTopTree(PGLOBAL g, PJSON jsp)
}
else
strcpy
(
To_Line
,
s
);
Row
->
Clear
();
//
Row->Clear();
return
false
;
}
else
return
true
;
...
...
@@ -979,7 +979,8 @@ bool JSONCOL::ParseJpath(PGLOBAL g)
if
(
!
stricmp
(
Name
,
colp
->
GetName
()))
{
Nod
=
colp
->
Nod
;
Nodes
=
colp
->
Nodes
;
goto
fin
;
Xpd
=
colp
->
Xpd
;
goto
fin
;
}
// endif Name
sprintf
(
g
->
Message
,
"Cannot parse updated column %s"
,
Name
);
...
...
@@ -1347,7 +1348,12 @@ PJSON JSONCOL::GetRow(PGLOBAL g)
/***********************************************************************/
void
JSONCOL
::
WriteColumn
(
PGLOBAL
g
)
{
/*********************************************************************/
if
(
Xpd
&&
Tjp
->
Pretty
<
2
)
{
strcpy
(
g
->
Message
,
"Cannot write expanded column when Pretty is not 2"
);
longjmp
(
g
->
jumper
[
g
->
jump_level
],
666
);
}
// endif Xpd
/*********************************************************************/
/* Check whether this node must be written. */
/*********************************************************************/
if
(
Value
!=
To_Val
)
...
...
storage/connect/tabodbc.cpp
View file @
3c5733cd
...
...
@@ -321,10 +321,21 @@ PSZ TDBODBC::GetFile(PGLOBAL g)
{
if
(
Connect
)
{
char
*
p1
,
*
p2
;
size_t
n
;
int
i
;
size_t
n
;
if
((
p1
=
strstr
(
Connect
,
"DBQ="
)))
{
p1
+=
4
;
// Beginning of file name
if
(
!
(
p1
=
strstr
(
Connect
,
"DBQ="
)))
{
char
*
p
,
*
lc
=
strlwr
(
PlugDup
(
g
,
Connect
));
if
((
p
=
strstr
(
lc
,
"database="
)))
p1
=
Connect
+
(
p
-
lc
);
i
=
9
;
}
else
i
=
4
;
if
(
p1
)
{
p1
+=
i
;
// Beginning of file name
p2
=
strchr
(
p1
,
';'
);
// End of file path/name
// Make the File path/name from the connect string
...
...
storage/connect/value.cpp
View file @
3c5733cd
...
...
@@ -103,6 +103,7 @@ ulonglong CharToNumber(char *p, int n, ulonglong maxval,
if
(
minus
)
*
minus
=
false
;
if
(
rc
)
*
rc
=
false
;
if
(
n
<=
0
)
return
0LL
;
// Eliminate leading blanks or 0
for
(
p2
=
p
+
n
;
p
<
p2
&&
(
*
p
==
' '
||
*
p
==
'0'
);
p
++
)
;
...
...
@@ -705,7 +706,7 @@ bool TYPVAL<TYPE>::SetValue_char(char *p, int n)
template
<
>
bool
TYPVAL
<
double
>::
SetValue_char
(
char
*
p
,
int
n
)
{
if
(
p
)
{
if
(
p
&&
n
>
0
)
{
char
buf
[
64
];
for
(;
n
>
0
&&
*
p
==
' '
;
p
++
)
...
...
@@ -1345,7 +1346,7 @@ bool TYPVAL<PSZ>::SetValue_char(char *p, int n)
{
bool
rc
;
if
(
p
)
{
if
(
p
&&
n
>
0
)
{
rc
=
n
>
Len
;
if
((
n
=
MY_MIN
(
n
,
Len
)))
{
...
...
@@ -1804,7 +1805,7 @@ bool DECVAL::SetValue_char(char *p, int n)
{
bool rc;
if (p) {
if (p
&& n > 0
) {
rc = n > Len;
if ((n = MY_MIN(n, Len))) {
...
...
@@ -2095,7 +2096,7 @@ bool BINVAL::SetValue_char(char *p, int n)
{
bool
rc
;
if
(
p
)
{
if
(
p
&&
n
>
0
)
{
rc
=
n
>
Clen
;
Len
=
MY_MIN
(
n
,
Clen
);
memcpy
(
Binp
,
p
,
Len
);
...
...
@@ -2672,13 +2673,16 @@ bool DTVAL::SetValue_char(char *p, int n)
int
ndv
;
int
dval
[
6
];
// Trim trailing blanks
for
(
p2
=
p
+
n
-
1
;
p
<
p2
&&
*
p2
==
' '
;
p2
--
)
;
if
(
n
>
0
)
{
// Trim trailing blanks
for
(
p2
=
p
+
n
-
1
;
p
<
p2
&&
*
p2
==
' '
;
p2
--
);
if
((
rc
=
(
n
=
p2
-
p
+
1
)
>
Len
))
n
=
Len
;
if
((
rc
=
(
n
=
p2
-
p
+
1
)
>
Len
))
n
=
Len
;
memcpy
(
Sdate
,
p
,
n
);
}
// endif n
memcpy
(
Sdate
,
p
,
n
);
Sdate
[
n
]
=
'\0'
;
ndv
=
ExtractDate
(
Sdate
,
Pdtp
,
DefYear
,
dval
);
...
...
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