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
9ffaf185
Commit
9ffaf185
authored
Jan 04, 2007
by
baker@bk-internal.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge bk-internal.mysql.com:/data0/bk/mysql-5.1
into bk-internal.mysql.com:/data0/bk/mysql-5.1-arch
parents
60a3f102
6ff70926
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
150 additions
and
95 deletions
+150
-95
storage/csv/CMakeLists.txt
storage/csv/CMakeLists.txt
+1
-1
storage/csv/Makefile.am
storage/csv/Makefile.am
+3
-3
storage/csv/ha_tina.cc
storage/csv/ha_tina.cc
+0
-48
storage/csv/ha_tina.h
storage/csv/ha_tina.h
+1
-43
storage/csv/transparent_file.cc
storage/csv/transparent_file.cc
+104
-0
storage/csv/transparent_file.h
storage/csv/transparent_file.h
+41
-0
No files found.
storage/csv/CMakeLists.txt
View file @
9ffaf185
...
...
@@ -19,4 +19,4 @@ SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
INCLUDE_DIRECTORIES
(
${
CMAKE_SOURCE_DIR
}
/include
${
CMAKE_SOURCE_DIR
}
/sql
${
CMAKE_SOURCE_DIR
}
/regex
${
CMAKE_SOURCE_DIR
}
/extra/yassl/include
)
ADD_LIBRARY
(
csv ha_tina.cc ha_tina.h
)
ADD_LIBRARY
(
csv ha_tina.cc ha_tina.h
transparent_file.cc transparent_file.h
)
storage/csv/Makefile.am
View file @
9ffaf185
...
...
@@ -27,18 +27,18 @@ INCLUDES = -I$(top_builddir)/include \
LDADD
=
DEFS
=
@DEFS@
noinst_HEADERS
=
ha_tina.h
noinst_HEADERS
=
ha_tina.h
transparent_file.h
EXTRA_LTLIBRARIES
=
ha_csv.la
pkglib_LTLIBRARIES
=
@plugin_csv_shared_target@
ha_csv_la_LDFLAGS
=
-module
-rpath
$(MYSQLLIBdir)
ha_csv_la_CXXFLAGS
=
$(AM_CFLAGS)
-DMYSQL_PLUGIN
ha_csv_la_SOURCES
=
ha_tina.cc
ha_csv_la_SOURCES
=
transparent_file.cc ha_tina.cc
EXTRA_LIBRARIES
=
libcsv.a
noinst_LIBRARIES
=
@plugin_csv_static_target@
libcsv_a_CXXFLAGS
=
$(AM_CFLAGS)
libcsv_a_SOURCES
=
ha_tina.cc
libcsv_a_SOURCES
=
transparent_file.cc
ha_tina.cc
EXTRA_DIST
=
CMakeLists.txt plug.in
# Don't update the files from bitkeeper
...
...
storage/csv/ha_tina.cc
View file @
9ffaf185
...
...
@@ -77,54 +77,6 @@ static handler *tina_create_handler(handlerton *hton,
MEM_ROOT
*
mem_root
);
off_t
Transparent_file
::
read_next
()
{
off_t
bytes_read
;
/*
No need to seek here, as the file managed by Transparent_file class
always points to upper_bound byte
*/
if
((
bytes_read
=
my_read
(
filedes
,
buff
,
buff_size
,
MYF
(
0
)))
==
MY_FILE_ERROR
)
return
-
1
;
/* end of file */
if
(
!
bytes_read
)
return
-
1
;
lower_bound
=
upper_bound
;
upper_bound
+=
bytes_read
;
return
lower_bound
;
}
char
Transparent_file
::
get_value
(
off_t
offset
)
{
off_t
bytes_read
;
/* check boundaries */
if
((
lower_bound
<=
offset
)
&&
(
offset
<
upper_bound
))
return
buff
[
offset
-
lower_bound
];
else
{
VOID
(
my_seek
(
filedes
,
offset
,
MY_SEEK_SET
,
MYF
(
0
)));
/* read appropriate portion of the file */
if
((
bytes_read
=
my_read
(
filedes
,
buff
,
buff_size
,
MYF
(
0
)))
==
MY_FILE_ERROR
)
return
0
;
lower_bound
=
offset
;
upper_bound
=
lower_bound
+
bytes_read
;
/* end of file */
if
(
upper_bound
==
offset
)
return
0
;
return
buff
[
0
];
}
}
/*****************************************************************************
** TINA tables
*****************************************************************************/
...
...
storage/csv/ha_tina.h
View file @
9ffaf185
...
...
@@ -16,6 +16,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <my_dir.h>
#include "transparent_file.h"
#define DEFAULT_CHAIN_LENGTH 512
/*
...
...
@@ -55,49 +56,6 @@ struct tina_set {
off_t
end
;
};
class
Transparent_file
{
File
filedes
;
byte
*
buff
;
/* in-memory window to the file or mmaped area */
/* current window sizes */
off_t
lower_bound
;
off_t
upper_bound
;
uint
buff_size
;
public:
Transparent_file
()
:
lower_bound
(
0
),
buff_size
(
IO_SIZE
)
{
buff
=
(
byte
*
)
my_malloc
(
buff_size
*
sizeof
(
byte
),
MYF
(
MY_WME
));
}
~
Transparent_file
()
{
my_free
((
gptr
)
buff
,
MYF
(
MY_ALLOW_ZERO_PTR
));
}
void
init_buff
(
File
filedes_arg
)
{
filedes
=
filedes_arg
;
/* read the beginning of the file */
lower_bound
=
0
;
VOID
(
my_seek
(
filedes
,
0
,
MY_SEEK_SET
,
MYF
(
0
)));
if
(
filedes
&&
buff
)
upper_bound
=
my_read
(
filedes
,
buff
,
buff_size
,
MYF
(
0
));
}
byte
*
ptr
()
{
return
buff
;
}
off_t
start
()
{
return
lower_bound
;
}
off_t
end
()
{
return
upper_bound
;
}
/* get a char from the given position in the file */
char
get_value
(
off_t
offset
);
/* shift a buffer windows to see the next part of the file */
off_t
read_next
();
};
class
ha_tina
:
public
handler
{
THR_LOCK_DATA
lock
;
/* MySQL lock */
...
...
storage/csv/transparent_file.cc
0 → 100644
View file @
9ffaf185
/* Copyright (C) 2003 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#ifdef USE_PRAGMA_IMPLEMENTATION
#pragma implementation // gcc: Class implementation
#endif
#include "mysql_priv.h"
#include "transparent_file.h"
Transparent_file
::
Transparent_file
()
:
lower_bound
(
0
),
buff_size
(
IO_SIZE
)
{
buff
=
(
byte
*
)
my_malloc
(
buff_size
*
sizeof
(
byte
),
MYF
(
MY_WME
));
}
Transparent_file
::~
Transparent_file
()
{
my_free
((
gptr
)
buff
,
MYF
(
MY_ALLOW_ZERO_PTR
));
}
void
Transparent_file
::
init_buff
(
File
filedes_arg
)
{
filedes
=
filedes_arg
;
/* read the beginning of the file */
lower_bound
=
0
;
VOID
(
my_seek
(
filedes
,
0
,
MY_SEEK_SET
,
MYF
(
0
)));
if
(
filedes
&&
buff
)
upper_bound
=
my_read
(
filedes
,
buff
,
buff_size
,
MYF
(
0
));
}
byte
*
Transparent_file
::
ptr
()
{
return
buff
;
}
off_t
Transparent_file
::
start
()
{
return
lower_bound
;
}
off_t
Transparent_file
::
end
()
{
return
upper_bound
;
}
off_t
Transparent_file
::
read_next
()
{
off_t
bytes_read
;
/*
No need to seek here, as the file managed by Transparent_file class
always points to upper_bound byte
*/
if
((
bytes_read
=
my_read
(
filedes
,
buff
,
buff_size
,
MYF
(
0
)))
==
MY_FILE_ERROR
)
return
-
1
;
/* end of file */
if
(
!
bytes_read
)
return
-
1
;
lower_bound
=
upper_bound
;
upper_bound
+=
bytes_read
;
return
lower_bound
;
}
char
Transparent_file
::
get_value
(
off_t
offset
)
{
off_t
bytes_read
;
/* check boundaries */
if
((
lower_bound
<=
offset
)
&&
(
offset
<
upper_bound
))
return
buff
[
offset
-
lower_bound
];
else
{
VOID
(
my_seek
(
filedes
,
offset
,
MY_SEEK_SET
,
MYF
(
0
)));
/* read appropriate portion of the file */
if
((
bytes_read
=
my_read
(
filedes
,
buff
,
buff_size
,
MYF
(
0
)))
==
MY_FILE_ERROR
)
return
0
;
lower_bound
=
offset
;
upper_bound
=
lower_bound
+
bytes_read
;
/* end of file */
if
(
upper_bound
==
offset
)
return
0
;
return
buff
[
0
];
}
}
storage/csv/transparent_file.h
0 → 100644
View file @
9ffaf185
/* Copyright (C) 2003 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#include <sys/types.h>
#include <sys/stat.h>
#include <my_dir.h>
class
Transparent_file
{
File
filedes
;
byte
*
buff
;
/* in-memory window to the file or mmaped area */
/* current window sizes */
off_t
lower_bound
;
off_t
upper_bound
;
uint
buff_size
;
public:
Transparent_file
();
~
Transparent_file
();
void
init_buff
(
File
filedes_arg
);
byte
*
ptr
();
off_t
start
();
off_t
end
();
char
get_value
(
off_t
offset
);
off_t
read_next
();
};
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