Merge lp:~ziminq/drizzle/filesystem-storage-engine into lp:~drizzle-trunk/drizzle/development
- filesystem-storage-engine
- Merge into development
Status: | Merged |
---|---|
Approved by: | Monty Taylor |
Approved revision: | 1670 |
Merged at revision: | 1677 |
Proposed branch: | lp:~ziminq/drizzle/filesystem-storage-engine |
Merge into: | lp:~drizzle-trunk/drizzle/development |
Diff against target: |
5554 lines (+5143/-0) 79 files modified
plugin/filesystem_engine/README (+14/-0) plugin/filesystem_engine/demo.txt (+1/-0) plugin/filesystem_engine/filesystem_engine.cc (+962/-0) plugin/filesystem_engine/filesystem_engine.h (+116/-0) plugin/filesystem_engine/filesystemlock.cc (+89/-0) plugin/filesystem_engine/filesystemlock.h (+60/-0) plugin/filesystem_engine/formatinfo.cc (+187/-0) plugin/filesystem_engine/formatinfo.h (+51/-0) plugin/filesystem_engine/plugin.ini (+5/-0) plugin/filesystem_engine/tests/r/basic_create_table.result (+16/-0) plugin/filesystem_engine/tests/r/basic_delete.result (+22/-0) plugin/filesystem_engine/tests/r/basic_insert.result (+21/-0) plugin/filesystem_engine/tests/r/basic_select.result (+14/-0) plugin/filesystem_engine/tests/r/basic_update.result (+15/-0) plugin/filesystem_engine/tests/r/multiple_update.result (+403/-0) plugin/filesystem_engine/tests/r/rnd_pos.result (+19/-0) plugin/filesystem_engine/tests/r/select_big_file.result (+1005/-0) plugin/filesystem_engine/tests/r/select_chop_line.result (+9/-0) plugin/filesystem_engine/tests/r/select_cpuinfo.result (+35/-0) plugin/filesystem_engine/tests/r/select_meminfo.result (+42/-0) plugin/filesystem_engine/tests/r/select_separator_mode_weak.result (+9/-0) plugin/filesystem_engine/tests/r/select_short_line.result (+9/-0) plugin/filesystem_engine/tests/r/select_skip_blank_line.result (+11/-0) plugin/filesystem_engine/tests/r/select_with_escaped_character.result (+8/-0) plugin/filesystem_engine/tests/r/select_with_omit_field.result (+13/-0) plugin/filesystem_engine/tests/r/select_with_separators.result (+13/-0) plugin/filesystem_engine/tests/t/basic_create_table-master.opt (+1/-0) plugin/filesystem_engine/tests/t/basic_create_table.test (+25/-0) plugin/filesystem_engine/tests/t/basic_delete-master.opt (+1/-0) plugin/filesystem_engine/tests/t/basic_delete.data (+1/-0) plugin/filesystem_engine/tests/t/basic_delete.test (+21/-0) plugin/filesystem_engine/tests/t/basic_insert-master.opt (+1/-0) plugin/filesystem_engine/tests/t/basic_insert.data (+1/-0) plugin/filesystem_engine/tests/t/basic_insert.test (+21/-0) plugin/filesystem_engine/tests/t/basic_select-master.opt (+1/-0) plugin/filesystem_engine/tests/t/basic_select.data (+9/-0) plugin/filesystem_engine/tests/t/basic_select.test (+9/-0) plugin/filesystem_engine/tests/t/basic_update-master.opt (+1/-0) plugin/filesystem_engine/tests/t/basic_update.data (+1/-0) plugin/filesystem_engine/tests/t/basic_update.test (+18/-0) plugin/filesystem_engine/tests/t/multiple_update-master.opt (+1/-0) plugin/filesystem_engine/tests/t/multiple_update.data (+4/-0) plugin/filesystem_engine/tests/t/multiple_update.test (+422/-0) plugin/filesystem_engine/tests/t/rnd_pos-master.opt (+1/-0) plugin/filesystem_engine/tests/t/rnd_pos.test (+28/-0) plugin/filesystem_engine/tests/t/select_big_file-master.opt (+1/-0) plugin/filesystem_engine/tests/t/select_big_file.data (+1000/-0) plugin/filesystem_engine/tests/t/select_big_file.test (+9/-0) plugin/filesystem_engine/tests/t/select_chop_line-master.opt (+1/-0) plugin/filesystem_engine/tests/t/select_chop_line.data (+4/-0) plugin/filesystem_engine/tests/t/select_chop_line.test (+9/-0) plugin/filesystem_engine/tests/t/select_cpuinfo-master.opt (+1/-0) plugin/filesystem_engine/tests/t/select_cpuinfo.data (+50/-0) plugin/filesystem_engine/tests/t/select_cpuinfo.test (+11/-0) plugin/filesystem_engine/tests/t/select_meminfo-master.opt (+1/-0) plugin/filesystem_engine/tests/t/select_meminfo.data (+32/-0) plugin/filesystem_engine/tests/t/select_meminfo.test (+11/-0) plugin/filesystem_engine/tests/t/select_separator_mode_weak-master.opt (+1/-0) plugin/filesystem_engine/tests/t/select_separator_mode_weak.data (+4/-0) plugin/filesystem_engine/tests/t/select_separator_mode_weak.test (+9/-0) plugin/filesystem_engine/tests/t/select_short_line-master.opt (+1/-0) plugin/filesystem_engine/tests/t/select_short_line.data (+4/-0) plugin/filesystem_engine/tests/t/select_short_line.test (+9/-0) plugin/filesystem_engine/tests/t/select_skip_blank_line-master.opt (+1/-0) plugin/filesystem_engine/tests/t/select_skip_blank_line.data (+14/-0) plugin/filesystem_engine/tests/t/select_skip_blank_line.test (+9/-0) plugin/filesystem_engine/tests/t/select_with_escaped_character-master.opt (+1/-0) plugin/filesystem_engine/tests/t/select_with_escaped_character.data (+2/-0) plugin/filesystem_engine/tests/t/select_with_escaped_character.test (+10/-0) plugin/filesystem_engine/tests/t/select_with_omit_field-master.opt (+1/-0) plugin/filesystem_engine/tests/t/select_with_omit_field.data (+3/-0) plugin/filesystem_engine/tests/t/select_with_omit_field.test (+14/-0) plugin/filesystem_engine/tests/t/select_with_separators-master.opt (+1/-0) plugin/filesystem_engine/tests/t/select_with_separators.data (+3/-0) plugin/filesystem_engine/tests/t/select_with_separators.test (+12/-0) plugin/filesystem_engine/transparent_file.cc (+103/-0) plugin/filesystem_engine/transparent_file.h (+44/-0) plugin/filesystem_engine/utility.h (+46/-0) tests/test-run.pl (+5/-0) |
To merge this branch: | bzr merge lp:~ziminq/drizzle/filesystem-storage-engine |
Related bugs: | |
Related blueprints: |
file system storage engine support
(Medium)
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Stewart Smith (community) | Approve | ||
Patrick Crews | would you mind reviewing the engine responses? thanks! | Pending | |
Brian Aker | Pending | ||
Review via email: mp+31215@code.launchpad.net |
This proposal supersedes a proposal from 2010-07-01.
Commit message
Description of the change
This is the current development of my GSoC project.
It has been run with param-build.
Please review it.
Thanks.
Brian Aker (brianaker) wrote : Posted in a previous version of this proposal | # |
ziminq (ziminq) wrote : Posted in a previous version of this proposal | # |
Hi Brian,
Thanks for reviewing.
Replies inlined.
> Hi!
>
> A few things:
>
> 1) "i" is difficult for us with older eyes to distinguish (please use x, or
> something with more characters).
The variable "i" is used only in two places (both in for loop). I thought it would be ok.
Will fix it, change to "x".
>
> 2) Your style is off in a couple of places ( for (size_t x= 0 ; ....).
Thanks for pointing out.
>
> 3) Why don't you declare no need for store_lock()?
This is a bug when I use HTON_SKIP_
I'm not sure what's the policy on using the table lock. Should the storage engine writer
write his own locking method?
>
> 4) It would be nice to see a test showing what happens if you get a file that
> parses incorrectly.
OK. Will add later.
>
> 5) Why xread()?
Stewart said it would be better not to use the functions in internal namespace,
so I changed the internal::my_read to the hand-made xread.
Should I go back to my_read? I'm kind of vague in this area as which is the right function to call.
>
> 6) Your copyright is off in a few places (I believe).
I copied the copyright info from CSV or archive plugin. hmm. let me double check this.
>
>
> Cheers,
> -Brian
ziminq (ziminq) wrote : Posted in a previous version of this proposal | # |
Please review:
2 points regarding the previous review:
1. store_lock is still used, as this storage engine is not critical about update/insert performance, and using table lock is easier to implement.
2. 'xread' vs 'internal:
--Zimin
Brian Aker (brianaker) wrote : Posted in a previous version of this proposal | # |
Hi!
On Jul 14, 2010, at 7:12 AM, ziminq wrote:
> 1. store_lock is still used, as this storage engine is not critical about update/insert performance, and using table lock is easier to implement.
It is going away, and if we take an engine that uses it, it just forces us to rewrite that engine ourselves when it is fully gone.
> 2. 'xread' vs 'internal:
Use posix based IO.
Cheers,
-brian
Monty Taylor (mordred) wrote : Posted in a previous version of this proposal | # |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 07/14/2010 03:31 PM, Brian Aker wrote:
>> 2. 'xread' vs 'internal:
>
> Use posix based IO.
Yes. This is what I was going to say. We don't want to use my_read
because we don't want special random wrappers around posix in our code
that people can't read.
Just use read() directly.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://
iEYEARECAAYFAkw
KUUAn2FtBO1JJEM
=/JGZ
-----END PGP SIGNATURE-----
ziminq (ziminq) wrote : Posted in a previous version of this proposal | # |
Thanks Brian and Monty, I'll change the code.
ziminq (ziminq) wrote : Posted in a previous version of this proposal | # |
Please review:
The above two points are fixed, now the file system storage engine uses FilesystemLock. No table lock is used any more.
--Zimin
Stewart Smith (stewart) wrote : | # |
The only thing I'd suggest is renaming "filesystem" to "filesystem_engine" (both directory and plugin name). Just to make it a little less confusing to people.
- 1665. By ziminq
-
add pthread_
mutex_destroy to share->mutex - 1666. By ziminq
-
wrap transparentfile in scoped_ptr
- 1667. By ziminq
-
rename filesystem to filesystem_engine to make it less confusing to users per Stewart's review.
- 1668. By ziminq
-
modify macros to be in line with the change of the filesystem directory name
ziminq (ziminq) wrote : | # |
renamed.
directory now is pluign/
and the files are plugin/
the plugin name is called FilesystemEngine.
however, the name specified at CREATE TABLE is still 'ENGINE=
Stewart Smith (stewart) wrote : | # |
On Fri, 30 Jul 2010 13:08:47 -0000, ziminq <email address hidden> wrote:
> renamed.
>
> directory now is pluign/
> and the files are plugin/
>
> the plugin name is called FilesystemEngine.
>
> however, the name specified at CREATE TABLE is still 'ENGINE=
Excellent!
--
Stewart Smith
Preview Diff
1 | === added directory 'plugin/filesystem_engine' |
2 | === added file 'plugin/filesystem_engine/README' |
3 | --- plugin/filesystem_engine/README 1970-01-01 00:00:00 +0000 |
4 | +++ plugin/filesystem_engine/README 2010-07-30 13:27:46 +0000 |
5 | @@ -0,0 +1,14 @@ |
6 | +Here's the corresponding example used in mysql-filesystem-engine. |
7 | +drizzle> CREATE TABLE LoadAverage ( |
8 | + load1 DECIMAL(3, 2), |
9 | + load5 DECIMAL(3, 2), |
10 | + load15 DECIMAL(3, 2), |
11 | + active_processes VARCHAR(12), |
12 | + lastpid INTEGER) ENGINE=FILESYSTEM, FILE="/proc/loadavg"; |
13 | + |
14 | +drizzle> select * from LoadAverage; |
15 | ++-------+-------+--------+------------------+---------+ |
16 | +| load1 | load5 | load15 | active_processes | lastpid | |
17 | ++-------+-------+--------+------------------+---------+ |
18 | +| 0.00 | 0.00 | 0.00 | 1/97 | 6061 | |
19 | ++-------+-------+--------+------------------+---------+ |
20 | |
21 | === added file 'plugin/filesystem_engine/demo.txt' |
22 | --- plugin/filesystem_engine/demo.txt 1970-01-01 00:00:00 +0000 |
23 | +++ plugin/filesystem_engine/demo.txt 2010-07-30 13:27:46 +0000 |
24 | @@ -0,0 +1,1 @@ |
25 | +0.00 0.00 0.00 1/97 6061 |
26 | |
27 | === added file 'plugin/filesystem_engine/filesystem_engine.cc' |
28 | --- plugin/filesystem_engine/filesystem_engine.cc 1970-01-01 00:00:00 +0000 |
29 | +++ plugin/filesystem_engine/filesystem_engine.cc 2010-07-30 13:27:46 +0000 |
30 | @@ -0,0 +1,962 @@ |
31 | +/* |
32 | + Copyright (C) 2010 Zimin |
33 | + |
34 | + This program is free software; you can redistribute it and/or |
35 | + modify it under the terms of the GNU General Public License |
36 | + as published by the Free Software Foundation; either version 2 |
37 | + of the License, or (at your option) any later version. |
38 | + |
39 | + This program is distributed in the hope that it will be useful, |
40 | + but WITHOUT ANY WARRANTY; without even the implied warranty of |
41 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
42 | + GNU General Public License for more details. |
43 | + |
44 | + You should have received a copy of the GNU General Public License |
45 | + along with this program; if not, write to the Free Software |
46 | + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
47 | +*/ |
48 | + |
49 | +#include "config.h" |
50 | +#include <drizzled/field.h> |
51 | +#include <drizzled/field/blob.h> |
52 | +#include <drizzled/field/timestamp.h> |
53 | +#include <drizzled/error.h> |
54 | +#include <drizzled/table.h> |
55 | +#include <drizzled/session.h> |
56 | +#include "drizzled/internal/my_sys.h" |
57 | +#include <google/protobuf/io/zero_copy_stream.h> |
58 | +#include <google/protobuf/io/zero_copy_stream_impl.h> |
59 | + |
60 | +#include "filesystem_engine.h" |
61 | +#include "utility.h" |
62 | + |
63 | +#include <fcntl.h> |
64 | + |
65 | +#include <string> |
66 | +#include <map> |
67 | +#include <fstream> |
68 | +#include <sstream> |
69 | +#include <iostream> |
70 | +#include <boost/algorithm/string.hpp> |
71 | + |
72 | +using namespace std; |
73 | +using namespace drizzled; |
74 | + |
75 | +#define FILESYSTEM_EXT ".FST" |
76 | + |
77 | +/* Stuff for shares */ |
78 | +pthread_mutex_t filesystem_mutex; |
79 | + |
80 | +static const char *ha_filesystem_exts[] = { |
81 | + FILESYSTEM_EXT, |
82 | + NULL |
83 | +}; |
84 | + |
85 | +class FilesystemEngine : public drizzled::plugin::StorageEngine |
86 | +{ |
87 | +private: |
88 | + typedef std::map<string, FilesystemTableShare*> FilesystemMap; |
89 | + FilesystemMap fs_open_tables; |
90 | +public: |
91 | + FilesystemEngine(const string& name_arg) |
92 | + : drizzled::plugin::StorageEngine(name_arg, |
93 | + HTON_NULL_IN_KEY | |
94 | + HTON_SKIP_STORE_LOCK | |
95 | + HTON_CAN_INDEX_BLOBS | |
96 | + HTON_AUTO_PART_KEY), |
97 | + fs_open_tables() |
98 | + { |
99 | + table_definition_ext= FILESYSTEM_EXT; |
100 | + pthread_mutex_init(&filesystem_mutex, MY_MUTEX_INIT_FAST); |
101 | + } |
102 | + virtual ~FilesystemEngine() |
103 | + { |
104 | + pthread_mutex_destroy(&filesystem_mutex); |
105 | + } |
106 | + |
107 | + virtual Cursor *create(TableShare &table, |
108 | + drizzled::memory::Root *mem_root) |
109 | + { |
110 | + return new (mem_root) FilesystemCursor(*this, table); |
111 | + } |
112 | + |
113 | + const char **bas_ext() const { |
114 | + return ha_filesystem_exts; |
115 | + } |
116 | + |
117 | + bool validateCreateTableOption(const std::string &key, const std::string &state); |
118 | + |
119 | + int doCreateTable(Session &, |
120 | + Table &table_arg, |
121 | + const drizzled::TableIdentifier &identifier, |
122 | + drizzled::message::Table&); |
123 | + |
124 | + int doGetTableDefinition(Session& , |
125 | + const drizzled::TableIdentifier &, |
126 | + drizzled::message::Table &); |
127 | + |
128 | + /* Temp only engine, so do not return values. */ |
129 | + void doGetTableNames(drizzled::CachedDirectory &, const drizzled::SchemaIdentifier &, drizzled::plugin::TableNameList &); |
130 | + |
131 | + int doDropTable(Session&, const TableIdentifier &); |
132 | + |
133 | + /* operations on FilesystemTableShare */ |
134 | + FilesystemTableShare *findOpenTable(const string table_name); |
135 | + void addOpenTable(const string &table_name, FilesystemTableShare *); |
136 | + void deleteOpenTable(const string &table_name); |
137 | + |
138 | + uint32_t max_keys() const { return 0; } |
139 | + uint32_t max_key_parts() const { return 0; } |
140 | + uint32_t max_key_length() const { return 0; } |
141 | + bool doDoesTableExist(Session& , const TableIdentifier &); |
142 | + int doRenameTable(Session&, const TableIdentifier &, const TableIdentifier &); |
143 | + void doGetTableIdentifiers(drizzled::CachedDirectory &directory, |
144 | + const drizzled::SchemaIdentifier &schema_identifier, |
145 | + drizzled::TableIdentifiers &set_of_identifiers); |
146 | +private: |
147 | + void getTableNamesFromFilesystem(drizzled::CachedDirectory &directory, |
148 | + const drizzled::SchemaIdentifier &schema_identifier, |
149 | + drizzled::plugin::TableNameList *set_of_names, |
150 | + drizzled::TableIdentifiers *set_of_identifiers); |
151 | +}; |
152 | + |
153 | +void FilesystemEngine::getTableNamesFromFilesystem(drizzled::CachedDirectory &directory, |
154 | + const drizzled::SchemaIdentifier &schema_identifier, |
155 | + drizzled::plugin::TableNameList *set_of_names, |
156 | + drizzled::TableIdentifiers *set_of_identifiers) |
157 | +{ |
158 | + drizzled::CachedDirectory::Entries entries= directory.getEntries(); |
159 | + |
160 | + for (drizzled::CachedDirectory::Entries::iterator entry_iter= entries.begin(); |
161 | + entry_iter != entries.end(); |
162 | + ++entry_iter) |
163 | + { |
164 | + drizzled::CachedDirectory::Entry *entry= *entry_iter; |
165 | + const string *filename= &entry->filename; |
166 | + |
167 | + assert(not filename->empty()); |
168 | + |
169 | + string::size_type suffix_pos= filename->rfind('.'); |
170 | + |
171 | + if (suffix_pos != string::npos && |
172 | + boost::iequals(filename->substr(suffix_pos), FILESYSTEM_EXT) && |
173 | + filename->compare(0, strlen(TMP_FILE_PREFIX), TMP_FILE_PREFIX)) |
174 | + { |
175 | + char uname[NAME_LEN + 1]; |
176 | + uint32_t file_name_len; |
177 | + |
178 | + file_name_len= TableIdentifier::filename_to_tablename(filename->c_str(), uname, sizeof(uname)); |
179 | + uname[file_name_len - sizeof(FILESYSTEM_EXT) + 1]= '\0'; |
180 | + if (set_of_names) |
181 | + set_of_names->insert(uname); |
182 | + if (set_of_identifiers) |
183 | + set_of_identifiers->push_back(TableIdentifier(schema_identifier, uname)); |
184 | + } |
185 | + } |
186 | +} |
187 | + |
188 | +void FilesystemEngine::doGetTableNames(drizzled::CachedDirectory &directory, |
189 | + const drizzled::SchemaIdentifier &schema_identifier, |
190 | + drizzled::plugin::TableNameList &set_of_names) |
191 | +{ |
192 | + getTableNamesFromFilesystem(directory, schema_identifier, &set_of_names, NULL); |
193 | +} |
194 | + |
195 | +void FilesystemEngine::doGetTableIdentifiers(drizzled::CachedDirectory &directory, |
196 | + const drizzled::SchemaIdentifier &schema_identifier, |
197 | + drizzled::TableIdentifiers &set_of_identifiers) |
198 | +{ |
199 | + getTableNamesFromFilesystem(directory, schema_identifier, NULL, &set_of_identifiers); |
200 | +} |
201 | + |
202 | +int FilesystemEngine::doDropTable(Session &, const TableIdentifier &identifier) |
203 | +{ |
204 | + string new_path(identifier.getPath()); |
205 | + new_path+= FILESYSTEM_EXT; |
206 | + int err= unlink(new_path.c_str()); |
207 | + if (err) |
208 | + { |
209 | + err= errno; |
210 | + } |
211 | + return err; |
212 | +} |
213 | + |
214 | +bool FilesystemEngine::doDoesTableExist(Session &, const TableIdentifier &identifier) |
215 | +{ |
216 | + string proto_path(identifier.getPath()); |
217 | + proto_path.append(FILESYSTEM_EXT); |
218 | + |
219 | + if (access(proto_path.c_str(), F_OK)) |
220 | + { |
221 | + return false; |
222 | + } |
223 | + |
224 | + return true; |
225 | +} |
226 | + |
227 | +FilesystemTableShare *FilesystemEngine::findOpenTable(const string table_name) |
228 | +{ |
229 | + FilesystemMap::iterator find_iter= |
230 | + fs_open_tables.find(table_name); |
231 | + |
232 | + if (find_iter != fs_open_tables.end()) |
233 | + return (*find_iter).second; |
234 | + else |
235 | + return NULL; |
236 | +} |
237 | + |
238 | +void FilesystemEngine::addOpenTable(const string &table_name, FilesystemTableShare *share) |
239 | +{ |
240 | + fs_open_tables[table_name]= share; |
241 | +} |
242 | + |
243 | +void FilesystemEngine::deleteOpenTable(const string &table_name) |
244 | +{ |
245 | + fs_open_tables.erase(table_name); |
246 | +} |
247 | + |
248 | +static int parseTaggedFile(const FormatInfo &fi, vector< map<string, string> > &v) |
249 | +{ |
250 | + int filedesc= ::open(fi.getFileName().c_str(), O_RDONLY); |
251 | + if (filedesc < 0) |
252 | + return errno; |
253 | + |
254 | + boost::scoped_ptr<TransparentFile> filebuffer(new TransparentFile); |
255 | + filebuffer->init_buff(filedesc); |
256 | + |
257 | + bool last_line_empty= false; |
258 | + map<string, string> kv; |
259 | + int pos= 0; |
260 | + string line; |
261 | + while (1) |
262 | + { |
263 | + char ch= filebuffer->get_value(pos); |
264 | + if (ch == '\0') |
265 | + { |
266 | + if (!last_line_empty) |
267 | + { |
268 | + v.push_back(kv); |
269 | + kv.clear(); |
270 | + } |
271 | + break; |
272 | + } |
273 | + ++pos; |
274 | + |
275 | + if (!fi.isRowSeparator(ch)) |
276 | + { |
277 | + line.push_back(ch); |
278 | + continue; |
279 | + } |
280 | + |
281 | + // if we have a new empty line, |
282 | + // it means we got the end of a section, push it to vector |
283 | + if (line.empty()) |
284 | + { |
285 | + if (!last_line_empty) |
286 | + { |
287 | + v.push_back(kv); |
288 | + kv.clear(); |
289 | + } |
290 | + last_line_empty= true; |
291 | + continue; |
292 | + } |
293 | + |
294 | + // parse the line |
295 | + vector<string> sv, svcopy; |
296 | + boost::split(sv, line, boost::is_any_of(fi.getColSeparator())); |
297 | + for (vector<string>::iterator iter= sv.begin(); |
298 | + iter != sv.end(); |
299 | + ++iter) |
300 | + { |
301 | + if (!iter->empty()) |
302 | + svcopy.push_back(*iter); |
303 | + } |
304 | + |
305 | + // the first splitted string as key, |
306 | + // and the second splitted string as value. |
307 | + string key(svcopy[0]); |
308 | + boost::trim(key); |
309 | + if (svcopy.size() >= 2) |
310 | + { |
311 | + string value(svcopy[1]); |
312 | + boost::trim(value); |
313 | + kv[key]= value; |
314 | + } |
315 | + else if (svcopy.size() >= 1) |
316 | + kv[key]= ""; |
317 | + |
318 | + last_line_empty= false; |
319 | + line.clear(); |
320 | + } |
321 | + close(filedesc); |
322 | + return 0; |
323 | +} |
324 | + |
325 | +int FilesystemEngine::doGetTableDefinition(Session &, |
326 | + const drizzled::TableIdentifier &identifier, |
327 | + drizzled::message::Table &table_proto) |
328 | +{ |
329 | + string new_path(identifier.getPath()); |
330 | + new_path.append(FILESYSTEM_EXT); |
331 | + |
332 | + int fd= ::open(new_path.c_str(), O_RDONLY); |
333 | + if (fd < 0) |
334 | + return ENOENT; |
335 | + |
336 | + google::protobuf::io::ZeroCopyInputStream* input= |
337 | + new google::protobuf::io::FileInputStream(fd); |
338 | + |
339 | + if (not input) |
340 | + return HA_ERR_CRASHED_ON_USAGE; |
341 | + |
342 | + if (not table_proto.ParseFromZeroCopyStream(input)) |
343 | + { |
344 | + close(fd); |
345 | + delete input; |
346 | + if (not table_proto.IsInitialized()) |
347 | + { |
348 | + my_error(ER_CORRUPT_TABLE_DEFINITION, MYF(0), |
349 | + table_proto.InitializationErrorString().c_str()); |
350 | + return ER_CORRUPT_TABLE_DEFINITION; |
351 | + } |
352 | + |
353 | + return HA_ERR_CRASHED_ON_USAGE; |
354 | + } |
355 | + delete input; |
356 | + |
357 | + // if the file is a tagged file such as /proc/meminfo |
358 | + // then columns of this table are added dynamically here. |
359 | + FormatInfo format; |
360 | + format.parseFromTable(&table_proto); |
361 | + if (!format.isTagFormat() || !format.isFileGiven()) |
362 | + return EEXIST; |
363 | + |
364 | + vector< map<string, string> > vm; |
365 | + if (parseTaggedFile(format, vm) != 0) |
366 | + return EEXIST; |
367 | + if (vm.size() == 0) |
368 | + return EEXIST; |
369 | + |
370 | + // we don't care what user provides, just clear them all |
371 | + table_proto.clear_field(); |
372 | + // we take the first section as sample |
373 | + map<string, string> kv= vm[0]; |
374 | + for (map<string, string>::iterator iter= kv.begin(); |
375 | + iter != kv.end(); |
376 | + ++iter) |
377 | + { |
378 | + // add columns to table proto |
379 | + message::Table::Field *field= table_proto.add_field(); |
380 | + field->set_name(iter->first); |
381 | + field->set_type(drizzled::message::Table::Field::VARCHAR); |
382 | + message::Table::Field::StringFieldOptions *stringoption= field->mutable_string_options(); |
383 | + stringoption->set_length(iter->second.length() + 1); |
384 | + } |
385 | + return EEXIST; |
386 | +} |
387 | + |
388 | +FilesystemTableShare::FilesystemTableShare(const string table_name_arg) |
389 | + : use_count(0), table_name(table_name_arg), |
390 | + update_file_opened(false), |
391 | + needs_reopen(false) |
392 | +{ |
393 | +} |
394 | + |
395 | +FilesystemTableShare::~FilesystemTableShare() |
396 | +{ |
397 | + pthread_mutex_destroy(&mutex); |
398 | +} |
399 | + |
400 | +FilesystemTableShare *FilesystemCursor::get_share(const char *table_name) |
401 | +{ |
402 | + Guard g(filesystem_mutex); |
403 | + |
404 | + FilesystemEngine *a_engine= static_cast<FilesystemEngine *>(engine); |
405 | + share= a_engine->findOpenTable(table_name); |
406 | + |
407 | + /* |
408 | + If share is not present in the hash, create a new share and |
409 | + initialize its members. |
410 | + */ |
411 | + if (share == NULL) |
412 | + { |
413 | + share= new (nothrow) FilesystemTableShare(table_name); |
414 | + if (share == NULL) |
415 | + { |
416 | + return NULL; |
417 | + } |
418 | + |
419 | + share->format.parseFromTable(table->getShare()->getTableProto()); |
420 | + if (!share->format.isFileGiven()) |
421 | + { |
422 | + return NULL; |
423 | + } |
424 | + /* |
425 | + * for taggered file such as /proc/meminfo, |
426 | + * we pre-process it first, and store the parsing result in a map. |
427 | + */ |
428 | + if (share->format.isTagFormat()) |
429 | + { |
430 | + if (parseTaggedFile(share->format, share->vm) != 0) |
431 | + { |
432 | + return NULL; |
433 | + } |
434 | + } |
435 | + a_engine->addOpenTable(share->table_name, share); |
436 | + |
437 | + pthread_mutex_init(&share->mutex, MY_MUTEX_INIT_FAST); |
438 | + } |
439 | + share->use_count++; |
440 | + |
441 | + return share; |
442 | +} |
443 | + |
444 | +void FilesystemCursor::free_share() |
445 | +{ |
446 | + Guard g(filesystem_mutex); |
447 | + |
448 | + if (!--share->use_count){ |
449 | + FilesystemEngine *a_engine= static_cast<FilesystemEngine *>(engine); |
450 | + a_engine->deleteOpenTable(share->table_name); |
451 | + pthread_mutex_destroy(&share->mutex); |
452 | + delete share; |
453 | + } |
454 | +} |
455 | + |
456 | +void FilesystemCursor::critical_section_enter() |
457 | +{ |
458 | + if (sql_command_type == SQLCOM_ALTER_TABLE || |
459 | + sql_command_type == SQLCOM_UPDATE || |
460 | + sql_command_type == SQLCOM_DELETE || |
461 | + sql_command_type == SQLCOM_INSERT || |
462 | + sql_command_type == SQLCOM_INSERT_SELECT || |
463 | + sql_command_type == SQLCOM_REPLACE || |
464 | + sql_command_type == SQLCOM_REPLACE_SELECT) |
465 | + share->filesystem_lock.scan_update_begin(); |
466 | + else |
467 | + share->filesystem_lock.scan_begin(); |
468 | + |
469 | + thread_locked = true; |
470 | +} |
471 | + |
472 | +void FilesystemCursor::critical_section_exit() |
473 | +{ |
474 | + if (sql_command_type == SQLCOM_ALTER_TABLE || |
475 | + sql_command_type == SQLCOM_UPDATE || |
476 | + sql_command_type == SQLCOM_DELETE || |
477 | + sql_command_type == SQLCOM_INSERT || |
478 | + sql_command_type == SQLCOM_INSERT_SELECT || |
479 | + sql_command_type == SQLCOM_REPLACE || |
480 | + sql_command_type == SQLCOM_REPLACE_SELECT) |
481 | + share->filesystem_lock.scan_update_end(); |
482 | + else |
483 | + share->filesystem_lock.scan_end(); |
484 | + |
485 | + thread_locked = false; |
486 | +} |
487 | + |
488 | +FilesystemCursor::FilesystemCursor(drizzled::plugin::StorageEngine &engine_arg, TableShare &table_arg) |
489 | + : Cursor(engine_arg, table_arg), |
490 | + file_buff(new TransparentFile), |
491 | + thread_locked(false) |
492 | +{ |
493 | +} |
494 | + |
495 | +int FilesystemCursor::doOpen(const drizzled::TableIdentifier &identifier, int, uint32_t) |
496 | +{ |
497 | + if (!(share= get_share(identifier.getPath().c_str()))) |
498 | + return ENOENT; |
499 | + |
500 | + file_desc= ::open(share->format.getFileName().c_str(), O_RDONLY); |
501 | + if (file_desc < 0) |
502 | + { |
503 | + free_share(); |
504 | + return ER_CANT_OPEN_FILE; |
505 | + } |
506 | + |
507 | + ref_length= sizeof(off_t); |
508 | + return 0; |
509 | +} |
510 | + |
511 | +int FilesystemCursor::close(void) |
512 | +{ |
513 | + int err= ::close(file_desc); |
514 | + if (err < 0) |
515 | + err= errno; |
516 | + free_share(); |
517 | + return err; |
518 | +} |
519 | + |
520 | +int FilesystemCursor::doStartTableScan(bool) |
521 | +{ |
522 | + sql_command_type = session_sql_command(table->getSession()); |
523 | + |
524 | + if (thread_locked) |
525 | + critical_section_exit(); |
526 | + critical_section_enter(); |
527 | + |
528 | + if (share->format.isTagFormat()) |
529 | + { |
530 | + tag_depth= 0; |
531 | + return 0; |
532 | + } |
533 | + |
534 | + current_position= 0; |
535 | + next_position= 0; |
536 | + slots.clear(); |
537 | + if (share->needs_reopen) |
538 | + { |
539 | + file_desc= ::open(share->format.getFileName().c_str(), O_RDONLY); |
540 | + if (file_desc < 0) |
541 | + return HA_ERR_CRASHED_ON_USAGE; |
542 | + share->needs_reopen= false; |
543 | + } |
544 | + file_buff->init_buff(file_desc); |
545 | + return 0; |
546 | +} |
547 | + |
548 | +int FilesystemCursor::find_current_row(unsigned char *buf) |
549 | +{ |
550 | + ptrdiff_t row_offset= buf - table->record[0]; |
551 | + |
552 | + next_position= current_position; |
553 | + |
554 | + string content; |
555 | + bool line_done= false; |
556 | + bool line_blank= true; |
557 | + Field **field= table->getFields(); |
558 | + for (; !line_done && *field; ++next_position) |
559 | + { |
560 | + char ch= file_buff->get_value(next_position); |
561 | + if (ch == '\0') |
562 | + return HA_ERR_END_OF_FILE; |
563 | + |
564 | + if (share->format.isEscapedChar(ch)) |
565 | + { |
566 | + // read next character |
567 | + ch= file_buff->get_value(++next_position); |
568 | + if (ch == '\0') |
569 | + return HA_ERR_END_OF_FILE; |
570 | + |
571 | + content.push_back(FormatInfo::getEscapedChar(ch)); |
572 | + |
573 | + continue; |
574 | + } |
575 | + |
576 | + // if we find separator |
577 | + bool is_row= share->format.isRowSeparator(ch); |
578 | + bool is_col= share->format.isColSeparator(ch); |
579 | + if (content.empty()) |
580 | + { |
581 | + if (share->format.isSeparatorModeGeneral() && is_row && line_blank) |
582 | + continue; |
583 | + if (share->format.isSeparatorModeWeak() && is_col) |
584 | + continue; |
585 | + } |
586 | + |
587 | + if (is_row || is_col) |
588 | + { |
589 | + (*field)->move_field_offset(row_offset); |
590 | + if (!content.empty()) |
591 | + { |
592 | + (*field)->set_notnull(); |
593 | + if ((*field)->isReadSet() || (*field)->isWriteSet()) |
594 | + { |
595 | + (*field)->setWriteSet(); |
596 | + (*field)->store(content.c_str(), |
597 | + (uint32_t)content.length(), |
598 | + &my_charset_bin, |
599 | + CHECK_FIELD_WARN); |
600 | + } |
601 | + else |
602 | + (*field)->set_default(); |
603 | + } |
604 | + else |
605 | + (*field)->set_null(); |
606 | + (*field)->move_field_offset(-row_offset); |
607 | + |
608 | + content.clear(); |
609 | + ++field; |
610 | + |
611 | + line_blank= false; |
612 | + if (is_row) |
613 | + line_done= true; |
614 | + |
615 | + continue; |
616 | + } |
617 | + content.push_back(ch); |
618 | + } |
619 | + if (line_done) |
620 | + { |
621 | + for (; *field; ++field) |
622 | + { |
623 | + (*field)->move_field_offset(row_offset); |
624 | + (*field)->set_notnull(); |
625 | + (*field)->set_default(); |
626 | + (*field)->move_field_offset(-row_offset); |
627 | + } |
628 | + } |
629 | + else |
630 | + { |
631 | + // eat up characters when line_done |
632 | + while (!line_done) |
633 | + { |
634 | + char ch= file_buff->get_value(next_position); |
635 | + if (share->format.isRowSeparator(ch)) |
636 | + line_done= true; |
637 | + ++next_position; |
638 | + } |
639 | + } |
640 | + return 0; |
641 | +} |
642 | + |
643 | +int FilesystemCursor::rnd_next(unsigned char *buf) |
644 | +{ |
645 | + ha_statistic_increment(&system_status_var::ha_read_rnd_next_count); |
646 | + if (share->format.isTagFormat()) |
647 | + { |
648 | + if (tag_depth >= share->vm.size()) |
649 | + return HA_ERR_END_OF_FILE; |
650 | + |
651 | + ptrdiff_t row_offset= buf - table->record[0]; |
652 | + for (Field **field= table->getFields(); *field; field++) |
653 | + { |
654 | + string key((*field)->field_name); |
655 | + string content= share->vm[tag_depth][key]; |
656 | + |
657 | + (*field)->move_field_offset(row_offset); |
658 | + if (!content.empty()) |
659 | + { |
660 | + (*field)->set_notnull(); |
661 | + if ((*field)->isReadSet() || (*field)->isWriteSet()) |
662 | + { |
663 | + (*field)->setWriteSet(); |
664 | + (*field)->store(content.c_str(), |
665 | + (uint32_t)content.length(), |
666 | + &my_charset_bin, |
667 | + CHECK_FIELD_WARN); |
668 | + } |
669 | + else |
670 | + { |
671 | + (*field)->set_default(); |
672 | + } |
673 | + } |
674 | + else |
675 | + { |
676 | + (*field)->set_null(); |
677 | + } |
678 | + (*field)->move_field_offset(-row_offset); |
679 | + } |
680 | + ++tag_depth; |
681 | + return 0; |
682 | + } |
683 | + // normal file |
684 | + current_position= next_position; |
685 | + return find_current_row(buf); |
686 | +} |
687 | + |
688 | +void FilesystemCursor::position(const unsigned char *) |
689 | +{ |
690 | + *reinterpret_cast<off_t *>(ref)= current_position; |
691 | +} |
692 | + |
693 | +int FilesystemCursor::rnd_pos(unsigned char * buf, unsigned char *pos) |
694 | +{ |
695 | + ha_statistic_increment(&system_status_var::ha_read_rnd_count); |
696 | + current_position= *reinterpret_cast<off_t *>(pos); |
697 | + return find_current_row(buf); |
698 | +} |
699 | + |
700 | +int FilesystemCursor::info(uint32_t) |
701 | +{ |
702 | + if (stats.records < 2) |
703 | + stats.records= 2; |
704 | + return 0; |
705 | +} |
706 | + |
707 | +int FilesystemCursor::openUpdateFile() |
708 | +{ |
709 | + if (!share->update_file_opened) |
710 | + { |
711 | + struct stat st; |
712 | + if (stat(share->format.getFileName().c_str(), &st) < 0) |
713 | + return -1; |
714 | + update_file_name= share->format.getFileName(); |
715 | + update_file_name.append(".UPDATE"); |
716 | + unlink(update_file_name.c_str()); |
717 | + update_file_desc= ::open(update_file_name.c_str(), |
718 | + O_RDWR | O_CREAT | O_TRUNC, |
719 | + st.st_mode); |
720 | + if (update_file_desc < 0) |
721 | + { |
722 | + return -1; |
723 | + } |
724 | + share->update_file_opened= true; |
725 | + } |
726 | + return 0; |
727 | +} |
728 | + |
729 | +int FilesystemCursor::doEndTableScan() |
730 | +{ |
731 | + sql_command_type = session_sql_command(table->getSession()); |
732 | + |
733 | + if (share->format.isTagFormat()) |
734 | + { |
735 | + if (thread_locked) |
736 | + critical_section_exit(); |
737 | + return 0; |
738 | + } |
739 | + |
740 | + if (slots.size() == 0) |
741 | + { |
742 | + if (thread_locked) |
743 | + critical_section_exit(); |
744 | + return 0; |
745 | + } |
746 | + |
747 | + int err= -1; |
748 | + sort(slots.begin(), slots.end()); |
749 | + vector< pair<off_t, off_t> >::iterator slot_iter= slots.begin(); |
750 | + off_t write_start= 0; |
751 | + off_t write_end= 0; |
752 | + off_t file_buffer_start= 0; |
753 | + |
754 | + pthread_mutex_lock(&share->mutex); |
755 | + |
756 | + file_buff->init_buff(file_desc); |
757 | + if (openUpdateFile() < 0) |
758 | + goto error; |
759 | + |
760 | + while (file_buffer_start != -1) |
761 | + { |
762 | + bool in_hole= false; |
763 | + |
764 | + write_end= file_buff->end(); |
765 | + if (slot_iter != slots.end() && |
766 | + write_end >= slot_iter->first) |
767 | + { |
768 | + write_end= slot_iter->first; |
769 | + in_hole= true; |
770 | + } |
771 | + |
772 | + off_t write_length= write_end - write_start; |
773 | + if (write_in_all(update_file_desc, |
774 | + file_buff->ptr() + (write_start - file_buff->start()), |
775 | + write_length) != write_length) |
776 | + goto error; |
777 | + |
778 | + if (in_hole) |
779 | + { |
780 | + while (file_buff->end() <= slot_iter->second && file_buffer_start != -1) |
781 | + file_buffer_start= file_buff->read_next(); |
782 | + write_start= slot_iter->second; |
783 | + ++slot_iter; |
784 | + } |
785 | + else |
786 | + write_start= write_end; |
787 | + |
788 | + if (write_end == file_buff->end()) |
789 | + file_buffer_start= file_buff->read_next(); |
790 | + } |
791 | + // close update file |
792 | + if (::fsync(update_file_desc) || |
793 | + ::close(update_file_desc)) |
794 | + goto error; |
795 | + share->update_file_opened= false; |
796 | + |
797 | + // close current file |
798 | + if (::close(file_desc)) |
799 | + goto error; |
800 | + if (::rename(update_file_name.c_str(), share->format.getFileName().c_str())) |
801 | + goto error; |
802 | + |
803 | + // reopen the data file |
804 | + file_desc= ::open(share->format.getFileName().c_str(), O_RDONLY); |
805 | + share->needs_reopen= true; |
806 | + if (file_desc < 0) |
807 | + goto error; |
808 | + err= 0; |
809 | +error: |
810 | + err= errno; |
811 | + pthread_mutex_unlock(&share->mutex); |
812 | + |
813 | + if (thread_locked) |
814 | + critical_section_exit(); |
815 | + return err; |
816 | +} |
817 | + |
818 | +void FilesystemCursor::recordToString(string& output) |
819 | +{ |
820 | + bool first= true; |
821 | + drizzled::String attribute; |
822 | + for (Field **field= table->getFields(); *field; ++field) |
823 | + { |
824 | + if (first == true) |
825 | + { |
826 | + first= false; |
827 | + } |
828 | + else |
829 | + { |
830 | + output.append(share->format.getColSeparatorHead()); |
831 | + } |
832 | + |
833 | + if (not (*field)->is_null()) |
834 | + { |
835 | + (*field)->setReadSet(); |
836 | + (*field)->val_str(&attribute, &attribute); |
837 | + |
838 | + output.append(attribute.ptr(), attribute.length()); |
839 | + } |
840 | + else |
841 | + { |
842 | + output.append("0"); |
843 | + } |
844 | + } |
845 | + output.append(share->format.getRowSeparatorHead()); |
846 | +} |
847 | + |
848 | +int FilesystemCursor::doInsertRecord(unsigned char * buf) |
849 | +{ |
850 | + (void)buf; |
851 | + |
852 | + if (share->format.isTagFormat()) |
853 | + return 0; |
854 | + |
855 | + sql_command_type = session_sql_command(table->getSession()); |
856 | + |
857 | + critical_section_enter(); |
858 | + |
859 | + int err_write= 0; |
860 | + int err_close= 0; |
861 | + |
862 | + string output_line; |
863 | + recordToString(output_line); |
864 | + |
865 | + int fd= ::open(share->format.getFileName().c_str(), O_WRONLY | O_APPEND); |
866 | + if (fd < 0) |
867 | + { |
868 | + critical_section_exit(); |
869 | + return ENOENT; |
870 | + } |
871 | + |
872 | + err_write= write_in_all(fd, output_line.c_str(), output_line.length()); |
873 | + if (err_write < 0) |
874 | + err_write= errno; |
875 | + else |
876 | + err_write= 0; |
877 | + |
878 | + err_close= ::close(fd); |
879 | + if (err_close < 0) |
880 | + err_close= errno; |
881 | + |
882 | + critical_section_exit(); |
883 | + |
884 | + if (err_write) |
885 | + return err_write; |
886 | + if (err_close) |
887 | + return err_close; |
888 | + return 0; |
889 | +} |
890 | + |
891 | +int FilesystemCursor::doUpdateRecord(const unsigned char *, unsigned char *) |
892 | +{ |
893 | + if (share->format.isTagFormat()) |
894 | + return 0; |
895 | + if (openUpdateFile()) |
896 | + return errno; |
897 | + |
898 | + // get the update information |
899 | + string str; |
900 | + recordToString(str); |
901 | + |
902 | + if (write_in_all(update_file_desc, str.c_str(), str.length()) < 0) |
903 | + return errno; |
904 | + |
905 | + addSlot(); |
906 | + |
907 | + return 0; |
908 | +} |
909 | + |
910 | +void FilesystemCursor::addSlot() |
911 | +{ |
912 | + if (slots.size() > 0 && slots.back().second == current_position) |
913 | + slots.back().second= next_position; |
914 | + else |
915 | + slots.push_back(make_pair(current_position, next_position)); |
916 | +} |
917 | + |
918 | +int FilesystemCursor::doDeleteRecord(const unsigned char *) |
919 | +{ |
920 | + if (share->format.isTagFormat()) |
921 | + return 0; |
922 | + addSlot(); |
923 | + return 0; |
924 | +} |
925 | + |
926 | +int FilesystemEngine::doRenameTable(Session&, const TableIdentifier &from, const TableIdentifier &to) |
927 | +{ |
928 | + if (rename_file_ext(from.getPath().c_str(), to.getPath().c_str(), FILESYSTEM_EXT)) |
929 | + return errno; |
930 | + return 0; |
931 | +} |
932 | + |
933 | +bool FilesystemEngine::validateCreateTableOption(const std::string &key, |
934 | + const std::string &state) |
935 | +{ |
936 | + return FormatInfo::validateOption(key, state); |
937 | +} |
938 | + |
939 | +int FilesystemEngine::doCreateTable(Session &, |
940 | + Table&, |
941 | + const drizzled::TableIdentifier &identifier, |
942 | + drizzled::message::Table &proto) |
943 | +{ |
944 | + FormatInfo format; |
945 | + format.parseFromTable(&proto); |
946 | + if (format.isFileGiven()) |
947 | + { |
948 | + int err= ::open(format.getFileName().c_str(), O_RDONLY); |
949 | + if (err < 0) |
950 | + return errno; |
951 | + } |
952 | + |
953 | + string new_path(identifier.getPath()); |
954 | + new_path+= FILESYSTEM_EXT; |
955 | + fstream output(new_path.c_str(), ios::out | ios::binary); |
956 | + |
957 | + if (! output) |
958 | + return 1; |
959 | + |
960 | + if (! proto.SerializeToOstream(&output)) |
961 | + { |
962 | + output.close(); |
963 | + unlink(new_path.c_str()); |
964 | + return 1; |
965 | + } |
966 | + |
967 | + return 0; |
968 | +} |
969 | + |
970 | +static FilesystemEngine *filesystem_engine= NULL; |
971 | + |
972 | +static int filesystem_init_func(drizzled::module::Context &context) |
973 | +{ |
974 | + filesystem_engine= new FilesystemEngine("FILESYSTEM"); |
975 | + context.add(filesystem_engine); |
976 | + |
977 | + return 0; |
978 | +} |
979 | + |
980 | +DRIZZLE_DECLARE_PLUGIN |
981 | +{ |
982 | + DRIZZLE_VERSION_ID, |
983 | + "FILESYSTEM", |
984 | + "1.0", |
985 | + "Zimin", |
986 | + "Filesystem Engine", |
987 | + PLUGIN_LICENSE_GPL, |
988 | + filesystem_init_func, /* Plugin Init */ |
989 | + NULL, /* system variables */ |
990 | + NULL /* config options */ |
991 | +} |
992 | +DRIZZLE_DECLARE_PLUGIN_END; |
993 | |
994 | === added file 'plugin/filesystem_engine/filesystem_engine.h' |
995 | --- plugin/filesystem_engine/filesystem_engine.h 1970-01-01 00:00:00 +0000 |
996 | +++ plugin/filesystem_engine/filesystem_engine.h 2010-07-30 13:27:46 +0000 |
997 | @@ -0,0 +1,116 @@ |
998 | +/* |
999 | + Copyright (C) 2010 Zimin |
1000 | + |
1001 | + This program is free software; you can redistribute it and/or |
1002 | + modify it under the terms of the GNU General Public License |
1003 | + as published by the Free Software Foundation; either version 2 |
1004 | + of the License, or (at your option) any later version. |
1005 | + |
1006 | + This program is distributed in the hope that it will be useful, |
1007 | + but WITHOUT ANY WARRANTY; without even the implied warranty of |
1008 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1009 | + GNU General Public License for more details. |
1010 | + |
1011 | + You should have received a copy of the GNU General Public License |
1012 | + along with this program; if not, write to the Free Software |
1013 | + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
1014 | +*/ |
1015 | + |
1016 | +#ifndef PLUGIN_FILESYSTEM_ENGINE_FILESYSTEM_ENGINE_H |
1017 | +#define PLUGIN_FILESYSTEM_ENGINE_FILESYSTEM_ENGINE_H |
1018 | + |
1019 | +#include <drizzled/cursor.h> |
1020 | +#include <drizzled/thr_lock.h> |
1021 | + |
1022 | +#include <boost/scoped_ptr.hpp> |
1023 | + |
1024 | +#include <sys/types.h> |
1025 | +#include <sys/stat.h> |
1026 | +#include <fstream> |
1027 | + |
1028 | +#include "transparent_file.h" |
1029 | +#include "formatinfo.h" |
1030 | +#include "filesystemlock.h" |
1031 | + |
1032 | +class FilesystemTableShare |
1033 | +{ |
1034 | + FilesystemTableShare(); |
1035 | + FilesystemTableShare(const FilesystemTableShare &); |
1036 | + FilesystemTableShare& operator=(const FilesystemTableShare &); |
1037 | +public: |
1038 | + explicit FilesystemTableShare(const std::string name); |
1039 | + ~FilesystemTableShare(); |
1040 | + |
1041 | + uint32_t use_count; |
1042 | + const std::string table_name; |
1043 | + bool update_file_opened; |
1044 | + bool needs_reopen; |
1045 | + pthread_mutex_t mutex; |
1046 | + FormatInfo format; |
1047 | + std::vector< std::map<std::string, std::string> > vm; |
1048 | + FilesystemLock filesystem_lock; |
1049 | +}; |
1050 | + |
1051 | +class FilesystemCursor : public drizzled::Cursor |
1052 | +{ |
1053 | + FilesystemTableShare *share; /* Shared lock info */ |
1054 | + boost::scoped_ptr<TransparentFile> file_buff; |
1055 | + int file_desc; |
1056 | + std::string update_file_name; |
1057 | + int update_file_desc; |
1058 | + size_t tag_depth; |
1059 | + off_t current_position; |
1060 | + off_t next_position; |
1061 | + bool thread_locked; |
1062 | + uint32_t sql_command_type; /* Type of SQL command to process */ |
1063 | + /* each slot means an interval in a file which will be deleted later */ |
1064 | + std::vector< std::pair<off_t, off_t> > slots; |
1065 | + |
1066 | +public: |
1067 | + FilesystemCursor(drizzled::plugin::StorageEngine &engine, drizzled::TableShare &table_arg); |
1068 | + ~FilesystemCursor() |
1069 | + { |
1070 | + } |
1071 | + |
1072 | + /** @brief |
1073 | + The name that will be used for display purposes. |
1074 | + */ |
1075 | + const char *table_type(void) const { return "FILESYSTEM"; } |
1076 | + |
1077 | + /* |
1078 | + Called in test_quick_select to determine if indexes should be used. |
1079 | + */ |
1080 | + virtual double scan_time() { return (double) (stats.records+stats.deleted) / 20.0+10; } |
1081 | + |
1082 | + /* The next method will never be called */ |
1083 | + virtual bool fast_key_read() { return 1;} |
1084 | + drizzled::ha_rows estimate_rows_upper_bound() { return HA_POS_ERROR; } |
1085 | + |
1086 | + int doOpen(const drizzled::TableIdentifier &, int, uint32_t); |
1087 | + int close(void); |
1088 | + int doStartTableScan(bool scan=1); |
1089 | + int rnd_next(unsigned char *); |
1090 | + int rnd_pos(unsigned char * , unsigned char *); |
1091 | + void position(const unsigned char *); |
1092 | + int info(uint); |
1093 | + int doEndTableScan(); |
1094 | + int doInsertRecord(unsigned char * buf); |
1095 | + int doUpdateRecord(const unsigned char *, unsigned char *); |
1096 | + int doDeleteRecord(const unsigned char *); |
1097 | + |
1098 | + virtual void get_auto_increment(uint64_t offset, uint64_t increment, |
1099 | + uint64_t nb_desired_values, |
1100 | + uint64_t *first_value, |
1101 | + uint64_t *nb_reserved_values) { (void)offset; (void)increment; (void)nb_desired_values; (void)first_value; (void)nb_reserved_values; }; |
1102 | + FilesystemTableShare *get_share(const char *table_name); |
1103 | + void free_share(); |
1104 | + void critical_section_enter(); |
1105 | + void critical_section_exit(); |
1106 | +private: |
1107 | + void recordToString(std::string& output); |
1108 | + void addSlot(); |
1109 | + int openUpdateFile(); |
1110 | + int find_current_row(unsigned char *buf); |
1111 | +}; |
1112 | + |
1113 | +#endif /* PLUGIN_FILESYSTEM_ENGINE_FILESYSTEM_ENGINE_H */ |
1114 | |
1115 | === added file 'plugin/filesystem_engine/filesystemlock.cc' |
1116 | --- plugin/filesystem_engine/filesystemlock.cc 1970-01-01 00:00:00 +0000 |
1117 | +++ plugin/filesystem_engine/filesystemlock.cc 2010-07-30 13:27:46 +0000 |
1118 | @@ -0,0 +1,89 @@ |
1119 | +/* |
1120 | + Copyright (C) 2010 Zimin |
1121 | + |
1122 | + This program is free software; you can redistribute it and/or |
1123 | + modify it under the terms of the GNU General Public License |
1124 | + as published by the Free Software Foundation; either version 2 |
1125 | + of the License, or (at your option) any later version. |
1126 | + |
1127 | + This program is distributed in the hope that it will be useful, |
1128 | + but WITHOUT ANY WARRANTY; without even the implied warranty of |
1129 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1130 | + GNU General Public License for more details. |
1131 | + |
1132 | + You should have received a copy of the GNU General Public License |
1133 | + along with this program; if not, write to the Free Software |
1134 | + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
1135 | +*/ |
1136 | + |
1137 | +#include <config.h> |
1138 | +#include <pthread.h> |
1139 | +#include <assert.h> |
1140 | +#include "filesystemlock.h" |
1141 | + |
1142 | +FilesystemLock::FilesystemLock() |
1143 | + : scanner_count(0), |
1144 | + updater_count(0) |
1145 | +{ |
1146 | + pthread_cond_init(&condition, NULL); |
1147 | + pthread_mutex_init(&mutex, NULL); |
1148 | +} |
1149 | + |
1150 | +FilesystemLock::~FilesystemLock() |
1151 | +{ |
1152 | + pthread_cond_destroy(&condition); |
1153 | + pthread_mutex_destroy(&mutex); |
1154 | +} |
1155 | + |
1156 | +void FilesystemLock::scan_begin() |
1157 | +{ |
1158 | + pthread_mutex_lock(&mutex); |
1159 | + while (true) |
1160 | + { |
1161 | + if (updater_count == 0) |
1162 | + { |
1163 | + scanner_count++; |
1164 | + pthread_mutex_unlock(&mutex); |
1165 | + return; |
1166 | + } |
1167 | + pthread_cond_wait(&condition, &mutex); |
1168 | + } |
1169 | + pthread_mutex_unlock(&mutex); |
1170 | +} |
1171 | + |
1172 | +void FilesystemLock::scan_end() { |
1173 | + pthread_mutex_lock(&mutex); |
1174 | + scanner_count--; |
1175 | + assert(scanner_count >= 0); |
1176 | + if (scanner_count == 0) |
1177 | + pthread_cond_broadcast(&condition); |
1178 | + pthread_mutex_unlock(&mutex); |
1179 | +} |
1180 | + |
1181 | +void FilesystemLock::scan_update_begin() |
1182 | +{ |
1183 | + pthread_mutex_lock(&mutex); |
1184 | + while (true) |
1185 | + { |
1186 | + if (scanner_count == 0 && updater_count == 0) |
1187 | + { |
1188 | + scanner_count++; |
1189 | + updater_count++; |
1190 | + pthread_mutex_unlock(&mutex); |
1191 | + return; |
1192 | + } |
1193 | + pthread_cond_wait(&condition, &mutex); |
1194 | + } |
1195 | + pthread_mutex_unlock(&mutex); |
1196 | +} |
1197 | + |
1198 | +void FilesystemLock::scan_update_end() |
1199 | +{ |
1200 | + pthread_mutex_lock(&mutex); |
1201 | + scanner_count--; |
1202 | + updater_count--; |
1203 | + assert(scanner_count >= 0 && updater_count >= 0); |
1204 | + |
1205 | + pthread_cond_broadcast(&condition); |
1206 | + pthread_mutex_unlock(&mutex); |
1207 | +} |
1208 | |
1209 | === added file 'plugin/filesystem_engine/filesystemlock.h' |
1210 | --- plugin/filesystem_engine/filesystemlock.h 1970-01-01 00:00:00 +0000 |
1211 | +++ plugin/filesystem_engine/filesystemlock.h 2010-07-30 13:27:46 +0000 |
1212 | @@ -0,0 +1,60 @@ |
1213 | +/* |
1214 | + Copyright (C) 2010 Zimin |
1215 | + |
1216 | + This program is free software; you can redistribute it and/or |
1217 | + modify it under the terms of the GNU General Public License |
1218 | + as published by the Free Software Foundation; either version 2 |
1219 | + of the License, or (at your option) any later version. |
1220 | + |
1221 | + This program is distributed in the hope that it will be useful, |
1222 | + but WITHOUT ANY WARRANTY; without even the implied warranty of |
1223 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1224 | + GNU General Public License for more details. |
1225 | + |
1226 | + You should have received a copy of the GNU General Public License |
1227 | + along with this program; if not, write to the Free Software |
1228 | + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
1229 | +*/ |
1230 | + |
1231 | +#ifndef PLUGIN_FILESYSTEM_ENGINE_FILESYSTEMLOCK_H |
1232 | +#define PLUGIN_FILESYSTEM_ENGINE_FILESYSTEMLOCK_H |
1233 | + |
1234 | +#include <pthread.h> |
1235 | + |
1236 | +class FilesystemLock |
1237 | +{ |
1238 | +public: |
1239 | + FilesystemLock(); |
1240 | + ~FilesystemLock(); |
1241 | + |
1242 | + void scan_begin(); |
1243 | + void scan_end(); |
1244 | + void scan_update_begin(); |
1245 | + void scan_update_end(); |
1246 | +private: |
1247 | + pthread_cond_t condition; |
1248 | + pthread_mutex_t mutex; |
1249 | + int scanner_count; |
1250 | + int updater_count; |
1251 | +}; |
1252 | + |
1253 | +class Guard |
1254 | +{ |
1255 | +public: |
1256 | + Guard(pthread_mutex_t& mutex) : mutex_(&mutex) |
1257 | + { |
1258 | + pthread_mutex_lock(mutex_); |
1259 | + } |
1260 | + |
1261 | + ~Guard() |
1262 | + { |
1263 | + if (mutex_) |
1264 | + { |
1265 | + pthread_mutex_unlock(mutex_); |
1266 | + } |
1267 | + } |
1268 | +private: |
1269 | + pthread_mutex_t *mutex_; |
1270 | +}; |
1271 | + |
1272 | +#endif /* PLUGIN_FILESYSTEM_ENGINE_FILESYSTEMLOCK_H */ |
1273 | |
1274 | === added file 'plugin/filesystem_engine/formatinfo.cc' |
1275 | --- plugin/filesystem_engine/formatinfo.cc 1970-01-01 00:00:00 +0000 |
1276 | +++ plugin/filesystem_engine/formatinfo.cc 2010-07-30 13:27:46 +0000 |
1277 | @@ -0,0 +1,187 @@ |
1278 | +/* |
1279 | + Copyright (C) 2010 Zimin |
1280 | + |
1281 | + This program is free software; you can redistribute it and/or |
1282 | + modify it under the terms of the GNU General Public License |
1283 | + as published by the Free Software Foundation; either version 2 |
1284 | + of the License, or (at your option) any later version. |
1285 | + |
1286 | + This program is distributed in the hope that it will be useful, |
1287 | + but WITHOUT ANY WARRANTY; without even the implied warranty of |
1288 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1289 | + GNU General Public License for more details. |
1290 | + |
1291 | + You should have received a copy of the GNU General Public License |
1292 | + along with this program; if not, write to the Free Software |
1293 | + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
1294 | +*/ |
1295 | + |
1296 | +#include "config.h" |
1297 | +#include <drizzled/field.h> |
1298 | +#include <string> |
1299 | +#include <boost/algorithm/string.hpp> |
1300 | + |
1301 | +#include "formatinfo.h" |
1302 | + |
1303 | +#include <iostream> |
1304 | +using namespace std; |
1305 | + |
1306 | +static const char* FORMAT_INFO_FILE_PATH= "FILE"; |
1307 | +static const char* FORMAT_INFO_ROW_SEPARATOR= "ROW_SEPARATOR"; |
1308 | +static const char* FORMAT_INFO_COL_SEPARATOR= "COL_SEPARATOR"; |
1309 | +static const char* FORMAT_INFO_FORMAT= "FORMAT"; |
1310 | +static const char* FORMAT_INFO_SEPARATOR_MODE= "SEPARATOR_MODE"; |
1311 | +static const char* FORMAT_INFO_SEPARATOR_MODE_STRICT= "STRICT"; |
1312 | +static const char* FORMAT_INFO_SEPARATOR_MODE_GENERAL= "GENERAL"; |
1313 | +static const char* FORMAT_INFO_SEPARATOR_MODE_WEAK= "WEAK"; |
1314 | +static const char* FORMAT_INFO_FORMAT_TAG= "KEY_VALUE"; |
1315 | +static const char* FORMAT_INFO_FORMAT_NORMAL= "NORMAL"; |
1316 | +static const char* FORMAT_INFO_ESCAPE= "ESCAPED_BY"; |
1317 | +enum filesystem_option_separator_mode_type |
1318 | +{ |
1319 | + FORMAT_INFO_SEPARATOR_MODE_STRICT_ENUM= 1, |
1320 | + FORMAT_INFO_SEPARATOR_MODE_GENERAL_ENUM, |
1321 | + FORMAT_INFO_SEPARATOR_MODE_WEAK_ENUM |
1322 | +}; |
1323 | + |
1324 | +static const char* DEFAULT_ROW_SEPARATOR= "\n"; |
1325 | +static const char* DEFAULT_COL_SEPARATOR= " \t"; |
1326 | + |
1327 | +FormatInfo::FormatInfo() |
1328 | + : row_separator(DEFAULT_ROW_SEPARATOR), |
1329 | + col_separator(DEFAULT_COL_SEPARATOR), |
1330 | + file_format(FORMAT_INFO_FORMAT_NORMAL), |
1331 | + separator_mode(FORMAT_INFO_SEPARATOR_MODE_GENERAL_ENUM) |
1332 | +{ |
1333 | +} |
1334 | + |
1335 | +void FormatInfo::parseFromTable(drizzled::message::Table *proto) |
1336 | +{ |
1337 | + if (!proto) |
1338 | + return; |
1339 | + |
1340 | + for (int x= 0; x < proto->engine().options_size(); x++) |
1341 | + { |
1342 | + const drizzled::message::Engine::Option& option= proto->engine().options(x); |
1343 | + |
1344 | + if (boost::iequals(option.name(), FORMAT_INFO_FILE_PATH)) |
1345 | + real_file_name= option.state(); |
1346 | + else if (boost::iequals(option.name(), FORMAT_INFO_ROW_SEPARATOR)) |
1347 | + row_separator= option.state(); |
1348 | + else if (boost::iequals(option.name(), FORMAT_INFO_COL_SEPARATOR)) |
1349 | + col_separator= option.state(); |
1350 | + else if (boost::iequals(option.name(), FORMAT_INFO_FORMAT)) |
1351 | + file_format= option.state(); |
1352 | + else if (boost::iequals(option.name(), FORMAT_INFO_ESCAPE)) |
1353 | + escape= option.state(); |
1354 | + else if (boost::iequals(option.name(), FORMAT_INFO_SEPARATOR_MODE)) |
1355 | + { |
1356 | + if (boost::iequals(option.state(), FORMAT_INFO_SEPARATOR_MODE_STRICT)) |
1357 | + separator_mode= FORMAT_INFO_SEPARATOR_MODE_STRICT_ENUM; |
1358 | + else if (boost::iequals(option.state(), FORMAT_INFO_SEPARATOR_MODE_GENERAL)) |
1359 | + separator_mode= FORMAT_INFO_SEPARATOR_MODE_GENERAL_ENUM; |
1360 | + else if (boost::iequals(option.state(), FORMAT_INFO_SEPARATOR_MODE_WEAK)) |
1361 | + separator_mode= FORMAT_INFO_SEPARATOR_MODE_WEAK_ENUM; |
1362 | + } |
1363 | + } |
1364 | +} |
1365 | + |
1366 | +bool FormatInfo::isFileGiven() const |
1367 | +{ |
1368 | + return !real_file_name.empty(); |
1369 | +} |
1370 | + |
1371 | +string FormatInfo::getFileName() const |
1372 | +{ |
1373 | + return real_file_name; |
1374 | +} |
1375 | + |
1376 | +bool FormatInfo::isRowSeparator(char ch) const |
1377 | +{ |
1378 | + return (row_separator.find(ch) != string::npos); |
1379 | +} |
1380 | + |
1381 | +bool FormatInfo::isColSeparator(char ch) const |
1382 | +{ |
1383 | + return (col_separator.find(ch) != string::npos); |
1384 | +} |
1385 | + |
1386 | +string FormatInfo::getRowSeparatorHead() const |
1387 | +{ |
1388 | + return row_separator.substr(0, 1); |
1389 | +} |
1390 | + |
1391 | +string FormatInfo::getColSeparatorHead() const |
1392 | +{ |
1393 | + return col_separator.substr(0, 1); |
1394 | +} |
1395 | + |
1396 | +string FormatInfo::getColSeparator() const |
1397 | +{ |
1398 | + return col_separator; |
1399 | +} |
1400 | + |
1401 | +bool FormatInfo::validateOption(const std::string &key, const std::string &state) |
1402 | +{ |
1403 | + cerr << "validateOption: " << key << " , " << state << endl; |
1404 | + if (boost::iequals(key, FORMAT_INFO_FILE_PATH) && |
1405 | + ! state.empty()) |
1406 | + return true; |
1407 | + if (boost::iequals(key, FORMAT_INFO_FORMAT) && |
1408 | + ! state.empty()) |
1409 | + return true; |
1410 | + if (boost::iequals(key, FORMAT_INFO_ESCAPE) && |
1411 | + ! state.empty()) |
1412 | + return true; |
1413 | + if ((boost::iequals(key, FORMAT_INFO_ROW_SEPARATOR) || |
1414 | + boost::iequals(key, FORMAT_INFO_COL_SEPARATOR)) && |
1415 | + ! state.empty()) |
1416 | + return true; |
1417 | + if (boost::iequals(key, FORMAT_INFO_SEPARATOR_MODE) && |
1418 | + (boost::iequals(state, FORMAT_INFO_SEPARATOR_MODE_STRICT) || |
1419 | + boost::iequals(state, FORMAT_INFO_SEPARATOR_MODE_GENERAL) || |
1420 | + boost::iequals(state, FORMAT_INFO_SEPARATOR_MODE_WEAK))) |
1421 | + return true; |
1422 | + return false; |
1423 | +} |
1424 | + |
1425 | +bool FormatInfo::isSeparatorModeGeneral() const |
1426 | +{ |
1427 | + return (separator_mode >= FORMAT_INFO_SEPARATOR_MODE_GENERAL_ENUM); |
1428 | +} |
1429 | + |
1430 | +bool FormatInfo::isSeparatorModeWeak() const |
1431 | +{ |
1432 | + return (separator_mode >= FORMAT_INFO_SEPARATOR_MODE_WEAK_ENUM); |
1433 | +} |
1434 | + |
1435 | +bool FormatInfo::isTagFormat() const |
1436 | +{ |
1437 | + return boost::iequals(file_format, FORMAT_INFO_FORMAT_TAG); |
1438 | +} |
1439 | + |
1440 | +bool FormatInfo::isEscapedChar(char ch) const |
1441 | +{ |
1442 | + return (!escape.empty() && escape.find(ch) != string::npos); |
1443 | +} |
1444 | + |
1445 | +char FormatInfo::getEscapedChar(const char ch) |
1446 | +{ |
1447 | + char escaped= ch; |
1448 | + switch (ch) |
1449 | + { |
1450 | + case 't': |
1451 | + escaped= '\t'; |
1452 | + break; |
1453 | + case 'b': |
1454 | + escaped= '\b'; |
1455 | + break; |
1456 | + case 'r': |
1457 | + escaped= '\r'; |
1458 | + break; |
1459 | + case 'n': |
1460 | + escaped= '\n'; |
1461 | + break; |
1462 | + } |
1463 | + return escaped; |
1464 | +} |
1465 | |
1466 | === added file 'plugin/filesystem_engine/formatinfo.h' |
1467 | --- plugin/filesystem_engine/formatinfo.h 1970-01-01 00:00:00 +0000 |
1468 | +++ plugin/filesystem_engine/formatinfo.h 2010-07-30 13:27:46 +0000 |
1469 | @@ -0,0 +1,51 @@ |
1470 | +/* |
1471 | + Copyright (C) 2010 Zimin |
1472 | + |
1473 | + This program is free software; you can redistribute it and/or |
1474 | + modify it under the terms of the GNU General Public License |
1475 | + as published by the Free Software Foundation; either version 2 |
1476 | + of the License, or (at your option) any later version. |
1477 | + |
1478 | + This program is distributed in the hope that it will be useful, |
1479 | + but WITHOUT ANY WARRANTY; without even the implied warranty of |
1480 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1481 | + GNU General Public License for more details. |
1482 | + |
1483 | + You should have received a copy of the GNU General Public License |
1484 | + along with this program; if not, write to the Free Software |
1485 | + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
1486 | +*/ |
1487 | + |
1488 | +#ifndef PLUGIN_FILESYSTEM_ENGINE_FORMATINFO_H |
1489 | +#define PLUGIN_FILESYSTEM_ENGINE_FORMATINFO_H |
1490 | + |
1491 | +#include <drizzled/message/table.pb.h> |
1492 | + |
1493 | +class FormatInfo |
1494 | +{ |
1495 | +public: |
1496 | + FormatInfo(); |
1497 | + void parseFromTable(drizzled::message::Table *proto); |
1498 | + bool isFileGiven() const; |
1499 | + bool isRowSeparator(char ch) const; |
1500 | + bool isColSeparator(char ch) const; |
1501 | + bool isEscapedChar(char ch) const; |
1502 | + std::string getRowSeparatorHead() const; |
1503 | + std::string getColSeparatorHead() const; |
1504 | + std::string getColSeparator() const; |
1505 | + std::string getFileName() const; |
1506 | + bool isSeparatorModeGeneral() const; |
1507 | + bool isSeparatorModeWeak() const; |
1508 | + bool isTagFormat() const; |
1509 | + static bool validateOption(const std::string &key, const std::string &state); |
1510 | + static char getEscapedChar(const char ch); |
1511 | +private: |
1512 | + std::string real_file_name; |
1513 | + std::string row_separator; |
1514 | + std::string col_separator; |
1515 | + std::string file_format; |
1516 | + std::string escape; |
1517 | + int separator_mode; |
1518 | +}; |
1519 | + |
1520 | +#endif /* PLUGIN_FILESYSTEM_ENGINE_FORMATINFO_H */ |
1521 | |
1522 | === added file 'plugin/filesystem_engine/plugin.ini' |
1523 | --- plugin/filesystem_engine/plugin.ini 1970-01-01 00:00:00 +0000 |
1524 | +++ plugin/filesystem_engine/plugin.ini 2010-07-30 13:27:46 +0000 |
1525 | @@ -0,0 +1,5 @@ |
1526 | +[plugin] |
1527 | +title=File System Storage Engine |
1528 | +description=This storage enigne enables you to access raw file in Drizzle. |
1529 | +headers=filesystem_engine.h transparent_file.h utility.h formatinfo.h filesystemlock.h |
1530 | +sources=filesystem_engine.cc transparent_file.cc formatinfo.cc filesystemlock.cc |
1531 | |
1532 | === added directory 'plugin/filesystem_engine/tests' |
1533 | === added directory 'plugin/filesystem_engine/tests/r' |
1534 | === added file 'plugin/filesystem_engine/tests/r/basic_create_table.result' |
1535 | --- plugin/filesystem_engine/tests/r/basic_create_table.result 1970-01-01 00:00:00 +0000 |
1536 | +++ plugin/filesystem_engine/tests/r/basic_create_table.result 2010-07-30 13:27:46 +0000 |
1537 | @@ -0,0 +1,16 @@ |
1538 | +DROP TABLE IF EXISTS t1; |
1539 | +CREATE TABLE t1 (a INT) ENGINE=FILESYSTEM,FILE="../filesystem_ln/_FILE_NOT_EXISTED_"; |
1540 | +ERROR HY000: Can't create table 'test.t1' (errno: 2) |
1541 | +CREATE TABLE t1 (a INT) ENGINE=FILESYSTEM,FILE="../filesystem_ln/basic_create_table.data",COL_SEPARATOR=""; |
1542 | +ERROR HY000: Unknown table engine option key/pair COL_SEPARATOR = . |
1543 | +CREATE TABLE t1 (a INT) ENGINE=FILESYSTEM,FILE="../filesystem_ln/basic_create_table.data",ROW_SEPARATOR=""; |
1544 | +ERROR HY000: Unknown table engine option key/pair ROW_SEPARATOR = . |
1545 | +CREATE TABLE t1 (a INT) ENGINE=FILESYSTEM,FILE="../filesystem_ln/basic_create_table.data"; |
1546 | +CREATE TABLE t1 (a INT) ENGINE=FILESYSTEM,FILE="../filesystem_ln/basic_create_table.data"; |
1547 | +ERROR 42S01: Table 'test.t1' already exists |
1548 | +SHOW CREATE TABLE t1; |
1549 | +Table Create Table |
1550 | +t1 CREATE TABLE `t1` ( |
1551 | + `a` int DEFAULT NULL |
1552 | +) ENGINE=FILESYSTEM FILE='../filesystem_ln/basic_create_table.data' |
1553 | +DROP TABLE t1; |
1554 | |
1555 | === added file 'plugin/filesystem_engine/tests/r/basic_delete.result' |
1556 | --- plugin/filesystem_engine/tests/r/basic_delete.result 1970-01-01 00:00:00 +0000 |
1557 | +++ plugin/filesystem_engine/tests/r/basic_delete.result 2010-07-30 13:27:46 +0000 |
1558 | @@ -0,0 +1,22 @@ |
1559 | +DROP TABLE IF EXISTS t1; |
1560 | +CREATE TABLE t1 (a INT, b VARCHAR(20)) ENGINE=FILESYSTEM,FILE="../filesystem_ln/basic_delete.data"; |
1561 | +INSERT INTO t1 VALUES (222, "bbb"); |
1562 | +INSERT INTO t1 VALUES (333, "ccc"); |
1563 | +INSERT INTO t1 VALUES (444, "ddd"); |
1564 | +INSERT INTO t1 VALUES (555, "eee"); |
1565 | +INSERT INTO t1 VALUES (666, "fff"); |
1566 | +SELECT * FROM t1; |
1567 | +a b |
1568 | +111 aaa |
1569 | +222 bbb |
1570 | +333 ccc |
1571 | +444 ddd |
1572 | +555 eee |
1573 | +666 fff |
1574 | +DELETE FROM t1 WHERE a>=444; |
1575 | +DELETE FROM t1 WHERE b="bbb"; |
1576 | +DELETE FROM t1 WHERE a!=111; |
1577 | +SELECT * FROM t1; |
1578 | +a b |
1579 | +111 aaa |
1580 | +DROP TABLE t1; |
1581 | |
1582 | === added file 'plugin/filesystem_engine/tests/r/basic_insert.result' |
1583 | --- plugin/filesystem_engine/tests/r/basic_insert.result 1970-01-01 00:00:00 +0000 |
1584 | +++ plugin/filesystem_engine/tests/r/basic_insert.result 2010-07-30 13:27:46 +0000 |
1585 | @@ -0,0 +1,21 @@ |
1586 | +DROP TABLE IF EXISTS t1; |
1587 | +CREATE TABLE t1 (a INT, b VARCHAR(20)) ENGINE=FILESYSTEM,FILE="../filesystem_ln/basic_insert.data"; |
1588 | +INSERT INTO t1 VALUES (222, "bbb"); |
1589 | +INSERT INTO t1 VALUES (333, "ccc"); |
1590 | +INSERT INTO t1 VALUES (444, "ddd"); |
1591 | +INSERT INTO t1 VALUES (555, "eee"); |
1592 | +INSERT INTO t1 VALUES (666, "fff"); |
1593 | +SELECT * FROM t1; |
1594 | +a b |
1595 | +111 aaa |
1596 | +222 bbb |
1597 | +333 ccc |
1598 | +444 ddd |
1599 | +555 eee |
1600 | +666 fff |
1601 | +DELETE FROM t1; |
1602 | +INSERT INTO t1 VALUES (111, "aaa"); |
1603 | +SELECT * FROM t1; |
1604 | +a b |
1605 | +111 aaa |
1606 | +DROP TABLE t1; |
1607 | |
1608 | === added file 'plugin/filesystem_engine/tests/r/basic_select.result' |
1609 | --- plugin/filesystem_engine/tests/r/basic_select.result 1970-01-01 00:00:00 +0000 |
1610 | +++ plugin/filesystem_engine/tests/r/basic_select.result 2010-07-30 13:27:46 +0000 |
1611 | @@ -0,0 +1,14 @@ |
1612 | +DROP TABLE IF EXISTS t1; |
1613 | +CREATE TABLE t1 (a INT) ENGINE=FILESYSTEM,FILE="../filesystem_ln/basic_select.data"; |
1614 | +SELECT * FROM t1; |
1615 | +a |
1616 | +999 |
1617 | +888 |
1618 | +777 |
1619 | +666 |
1620 | +555 |
1621 | +444 |
1622 | +333 |
1623 | +222 |
1624 | +111 |
1625 | +DROP TABLE t1; |
1626 | |
1627 | === added file 'plugin/filesystem_engine/tests/r/basic_update.result' |
1628 | --- plugin/filesystem_engine/tests/r/basic_update.result 1970-01-01 00:00:00 +0000 |
1629 | +++ plugin/filesystem_engine/tests/r/basic_update.result 2010-07-30 13:27:46 +0000 |
1630 | @@ -0,0 +1,15 @@ |
1631 | +DROP TABLE IF EXISTS t1; |
1632 | +CREATE TABLE t1 (a INT, b VARCHAR(20)) ENGINE=FILESYSTEM,FILE="../filesystem_ln/basic_update.data"; |
1633 | +INSERT INTO t1 VALUES (222, "bbb"); |
1634 | +INSERT INTO t1 VALUES (333, "ccc"); |
1635 | +INSERT INTO t1 VALUES (444, "ddd"); |
1636 | +UPDATE t1 SET a=999 WHERE a=444; |
1637 | +UPDATE t1 SET b="zzz" WHERE a=222; |
1638 | +SELECT * FROM t1; |
1639 | +a b |
1640 | +222 zzz |
1641 | +999 ddd |
1642 | +111 aaa |
1643 | +333 ccc |
1644 | +DELETE FROM t1 WHERE a!=111; |
1645 | +DROP TABLE t1; |
1646 | |
1647 | === added file 'plugin/filesystem_engine/tests/r/multiple_update.result' |
1648 | --- plugin/filesystem_engine/tests/r/multiple_update.result 1970-01-01 00:00:00 +0000 |
1649 | +++ plugin/filesystem_engine/tests/r/multiple_update.result 2010-07-30 13:27:46 +0000 |
1650 | @@ -0,0 +1,403 @@ |
1651 | +DROP TABLE IF EXISTS t1; |
1652 | +CREATE TABLE t1 (a INT) ENGINE=FILESYSTEM,FILE="../filesystem_ln/multiple_update.data"; |
1653 | +UPDATE t1 SET a=222 WHERE a=111; |
1654 | +UPDATE t1 SET a=111 WHERE a=222; |
1655 | +UPDATE t1 SET a=222 WHERE a=111; |
1656 | +UPDATE t1 SET a=111 WHERE a=222; |
1657 | +UPDATE t1 SET a=222 WHERE a=111; |
1658 | +UPDATE t1 SET a=111 WHERE a=222; |
1659 | +UPDATE t1 SET a=222 WHERE a=111; |
1660 | +UPDATE t1 SET a=111 WHERE a=222; |
1661 | +UPDATE t1 SET a=222 WHERE a=111; |
1662 | +UPDATE t1 SET a=111 WHERE a=222; |
1663 | +UPDATE t1 SET a=222 WHERE a=111; |
1664 | +UPDATE t1 SET a=111 WHERE a=222; |
1665 | +UPDATE t1 SET a=222 WHERE a=111; |
1666 | +UPDATE t1 SET a=111 WHERE a=222; |
1667 | +UPDATE t1 SET a=222 WHERE a=111; |
1668 | +UPDATE t1 SET a=111 WHERE a=222; |
1669 | +UPDATE t1 SET a=222 WHERE a=111; |
1670 | +UPDATE t1 SET a=111 WHERE a=222; |
1671 | +UPDATE t1 SET a=222 WHERE a=111; |
1672 | +UPDATE t1 SET a=111 WHERE a=222; |
1673 | +UPDATE t1 SET a=222 WHERE a=111; |
1674 | +UPDATE t1 SET a=111 WHERE a=222; |
1675 | +UPDATE t1 SET a=222 WHERE a=111; |
1676 | +UPDATE t1 SET a=111 WHERE a=222; |
1677 | +UPDATE t1 SET a=222 WHERE a=111; |
1678 | +UPDATE t1 SET a=111 WHERE a=222; |
1679 | +UPDATE t1 SET a=222 WHERE a=111; |
1680 | +UPDATE t1 SET a=111 WHERE a=222; |
1681 | +UPDATE t1 SET a=222 WHERE a=111; |
1682 | +UPDATE t1 SET a=111 WHERE a=222; |
1683 | +UPDATE t1 SET a=222 WHERE a=111; |
1684 | +UPDATE t1 SET a=111 WHERE a=222; |
1685 | +UPDATE t1 SET a=222 WHERE a=111; |
1686 | +UPDATE t1 SET a=111 WHERE a=222; |
1687 | +UPDATE t1 SET a=222 WHERE a=111; |
1688 | +UPDATE t1 SET a=111 WHERE a=222; |
1689 | +UPDATE t1 SET a=222 WHERE a=111; |
1690 | +UPDATE t1 SET a=111 WHERE a=222; |
1691 | +UPDATE t1 SET a=222 WHERE a=111; |
1692 | +UPDATE t1 SET a=111 WHERE a=222; |
1693 | +UPDATE t1 SET a=222 WHERE a=111; |
1694 | +UPDATE t1 SET a=111 WHERE a=222; |
1695 | +UPDATE t1 SET a=222 WHERE a=111; |
1696 | +UPDATE t1 SET a=111 WHERE a=222; |
1697 | +UPDATE t1 SET a=222 WHERE a=111; |
1698 | +UPDATE t1 SET a=111 WHERE a=222; |
1699 | +UPDATE t1 SET a=222 WHERE a=111; |
1700 | +UPDATE t1 SET a=111 WHERE a=222; |
1701 | +UPDATE t1 SET a=222 WHERE a=111; |
1702 | +UPDATE t1 SET a=111 WHERE a=222; |
1703 | +UPDATE t1 SET a=222 WHERE a=111; |
1704 | +UPDATE t1 SET a=111 WHERE a=222; |
1705 | +UPDATE t1 SET a=222 WHERE a=111; |
1706 | +UPDATE t1 SET a=111 WHERE a=222; |
1707 | +UPDATE t1 SET a=222 WHERE a=111; |
1708 | +UPDATE t1 SET a=111 WHERE a=222; |
1709 | +UPDATE t1 SET a=222 WHERE a=111; |
1710 | +UPDATE t1 SET a=111 WHERE a=222; |
1711 | +UPDATE t1 SET a=222 WHERE a=111; |
1712 | +UPDATE t1 SET a=111 WHERE a=222; |
1713 | +UPDATE t1 SET a=222 WHERE a=111; |
1714 | +UPDATE t1 SET a=111 WHERE a=222; |
1715 | +UPDATE t1 SET a=222 WHERE a=111; |
1716 | +UPDATE t1 SET a=111 WHERE a=222; |
1717 | +UPDATE t1 SET a=222 WHERE a=111; |
1718 | +UPDATE t1 SET a=111 WHERE a=222; |
1719 | +UPDATE t1 SET a=222 WHERE a=111; |
1720 | +UPDATE t1 SET a=111 WHERE a=222; |
1721 | +UPDATE t1 SET a=222 WHERE a=111; |
1722 | +UPDATE t1 SET a=111 WHERE a=222; |
1723 | +UPDATE t1 SET a=222 WHERE a=111; |
1724 | +UPDATE t1 SET a=111 WHERE a=222; |
1725 | +UPDATE t1 SET a=222 WHERE a=111; |
1726 | +UPDATE t1 SET a=111 WHERE a=222; |
1727 | +UPDATE t1 SET a=222 WHERE a=111; |
1728 | +UPDATE t1 SET a=111 WHERE a=222; |
1729 | +UPDATE t1 SET a=222 WHERE a=111; |
1730 | +UPDATE t1 SET a=111 WHERE a=222; |
1731 | +UPDATE t1 SET a=222 WHERE a=111; |
1732 | +UPDATE t1 SET a=111 WHERE a=222; |
1733 | +UPDATE t1 SET a=222 WHERE a=111; |
1734 | +UPDATE t1 SET a=111 WHERE a=222; |
1735 | +UPDATE t1 SET a=222 WHERE a=111; |
1736 | +UPDATE t1 SET a=111 WHERE a=222; |
1737 | +UPDATE t1 SET a=444 WHERE a=333; |
1738 | +UPDATE t1 SET a=333 WHERE a=444; |
1739 | +UPDATE t1 SET a=444 WHERE a=333; |
1740 | +UPDATE t1 SET a=333 WHERE a=444; |
1741 | +UPDATE t1 SET a=444 WHERE a=333; |
1742 | +UPDATE t1 SET a=333 WHERE a=444; |
1743 | +UPDATE t1 SET a=444 WHERE a=333; |
1744 | +UPDATE t1 SET a=333 WHERE a=444; |
1745 | +UPDATE t1 SET a=444 WHERE a=333; |
1746 | +UPDATE t1 SET a=333 WHERE a=444; |
1747 | +UPDATE t1 SET a=444 WHERE a=333; |
1748 | +UPDATE t1 SET a=333 WHERE a=444; |
1749 | +UPDATE t1 SET a=444 WHERE a=333; |
1750 | +UPDATE t1 SET a=333 WHERE a=444; |
1751 | +UPDATE t1 SET a=444 WHERE a=333; |
1752 | +UPDATE t1 SET a=333 WHERE a=444; |
1753 | +UPDATE t1 SET a=444 WHERE a=333; |
1754 | +UPDATE t1 SET a=333 WHERE a=444; |
1755 | +UPDATE t1 SET a=444 WHERE a=333; |
1756 | +UPDATE t1 SET a=333 WHERE a=444; |
1757 | +UPDATE t1 SET a=444 WHERE a=333; |
1758 | +UPDATE t1 SET a=333 WHERE a=444; |
1759 | +UPDATE t1 SET a=444 WHERE a=333; |
1760 | +UPDATE t1 SET a=333 WHERE a=444; |
1761 | +UPDATE t1 SET a=444 WHERE a=333; |
1762 | +UPDATE t1 SET a=333 WHERE a=444; |
1763 | +UPDATE t1 SET a=444 WHERE a=333; |
1764 | +UPDATE t1 SET a=333 WHERE a=444; |
1765 | +UPDATE t1 SET a=444 WHERE a=333; |
1766 | +UPDATE t1 SET a=333 WHERE a=444; |
1767 | +UPDATE t1 SET a=444 WHERE a=333; |
1768 | +UPDATE t1 SET a=333 WHERE a=444; |
1769 | +UPDATE t1 SET a=444 WHERE a=333; |
1770 | +UPDATE t1 SET a=333 WHERE a=444; |
1771 | +UPDATE t1 SET a=444 WHERE a=333; |
1772 | +UPDATE t1 SET a=333 WHERE a=444; |
1773 | +UPDATE t1 SET a=444 WHERE a=333; |
1774 | +UPDATE t1 SET a=333 WHERE a=444; |
1775 | +UPDATE t1 SET a=444 WHERE a=333; |
1776 | +UPDATE t1 SET a=333 WHERE a=444; |
1777 | +UPDATE t1 SET a=444 WHERE a=333; |
1778 | +UPDATE t1 SET a=333 WHERE a=444; |
1779 | +UPDATE t1 SET a=444 WHERE a=333; |
1780 | +UPDATE t1 SET a=333 WHERE a=444; |
1781 | +UPDATE t1 SET a=444 WHERE a=333; |
1782 | +UPDATE t1 SET a=333 WHERE a=444; |
1783 | +UPDATE t1 SET a=444 WHERE a=333; |
1784 | +UPDATE t1 SET a=333 WHERE a=444; |
1785 | +UPDATE t1 SET a=444 WHERE a=333; |
1786 | +UPDATE t1 SET a=333 WHERE a=444; |
1787 | +UPDATE t1 SET a=444 WHERE a=333; |
1788 | +UPDATE t1 SET a=333 WHERE a=444; |
1789 | +UPDATE t1 SET a=444 WHERE a=333; |
1790 | +UPDATE t1 SET a=333 WHERE a=444; |
1791 | +UPDATE t1 SET a=444 WHERE a=333; |
1792 | +UPDATE t1 SET a=333 WHERE a=444; |
1793 | +UPDATE t1 SET a=444 WHERE a=333; |
1794 | +UPDATE t1 SET a=333 WHERE a=444; |
1795 | +UPDATE t1 SET a=444 WHERE a=333; |
1796 | +UPDATE t1 SET a=333 WHERE a=444; |
1797 | +UPDATE t1 SET a=444 WHERE a=333; |
1798 | +UPDATE t1 SET a=333 WHERE a=444; |
1799 | +UPDATE t1 SET a=444 WHERE a=333; |
1800 | +UPDATE t1 SET a=333 WHERE a=444; |
1801 | +UPDATE t1 SET a=444 WHERE a=333; |
1802 | +UPDATE t1 SET a=333 WHERE a=444; |
1803 | +UPDATE t1 SET a=444 WHERE a=333; |
1804 | +UPDATE t1 SET a=333 WHERE a=444; |
1805 | +UPDATE t1 SET a=444 WHERE a=333; |
1806 | +UPDATE t1 SET a=333 WHERE a=444; |
1807 | +UPDATE t1 SET a=444 WHERE a=333; |
1808 | +UPDATE t1 SET a=333 WHERE a=444; |
1809 | +UPDATE t1 SET a=444 WHERE a=333; |
1810 | +UPDATE t1 SET a=333 WHERE a=444; |
1811 | +UPDATE t1 SET a=444 WHERE a=333; |
1812 | +UPDATE t1 SET a=333 WHERE a=444; |
1813 | +UPDATE t1 SET a=444 WHERE a=333; |
1814 | +UPDATE t1 SET a=333 WHERE a=444; |
1815 | +UPDATE t1 SET a=444 WHERE a=333; |
1816 | +UPDATE t1 SET a=333 WHERE a=444; |
1817 | +UPDATE t1 SET a=444 WHERE a=333; |
1818 | +UPDATE t1 SET a=333 WHERE a=444; |
1819 | +UPDATE t1 SET a=444 WHERE a=333; |
1820 | +UPDATE t1 SET a=333 WHERE a=444; |
1821 | +UPDATE t1 SET a=444 WHERE a=333; |
1822 | +UPDATE t1 SET a=333 WHERE a=444; |
1823 | +UPDATE t1 SET a=444 WHERE a=333; |
1824 | +UPDATE t1 SET a=333 WHERE a=444; |
1825 | +UPDATE t1 SET a=444 WHERE a=333; |
1826 | +UPDATE t1 SET a=333 WHERE a=444; |
1827 | +UPDATE t1 SET a=444 WHERE a=333; |
1828 | +UPDATE t1 SET a=333 WHERE a=444; |
1829 | +UPDATE t1 SET a=444 WHERE a=333; |
1830 | +UPDATE t1 SET a=333 WHERE a=444; |
1831 | +UPDATE t1 SET a=444 WHERE a=333; |
1832 | +UPDATE t1 SET a=333 WHERE a=444; |
1833 | +UPDATE t1 SET a=444 WHERE a=333; |
1834 | +UPDATE t1 SET a=333 WHERE a=444; |
1835 | +UPDATE t1 SET a=444 WHERE a=333; |
1836 | +UPDATE t1 SET a=333 WHERE a=444; |
1837 | +UPDATE t1 SET a=444 WHERE a=333; |
1838 | +UPDATE t1 SET a=333 WHERE a=444; |
1839 | +UPDATE t1 SET a=444 WHERE a=333; |
1840 | +UPDATE t1 SET a=333 WHERE a=444; |
1841 | +UPDATE t1 SET a=666 WHERE a=555; |
1842 | +UPDATE t1 SET a=555 WHERE a=666; |
1843 | +UPDATE t1 SET a=666 WHERE a=555; |
1844 | +UPDATE t1 SET a=555 WHERE a=666; |
1845 | +UPDATE t1 SET a=666 WHERE a=555; |
1846 | +UPDATE t1 SET a=555 WHERE a=666; |
1847 | +UPDATE t1 SET a=666 WHERE a=555; |
1848 | +UPDATE t1 SET a=555 WHERE a=666; |
1849 | +UPDATE t1 SET a=666 WHERE a=555; |
1850 | +UPDATE t1 SET a=555 WHERE a=666; |
1851 | +UPDATE t1 SET a=666 WHERE a=555; |
1852 | +UPDATE t1 SET a=555 WHERE a=666; |
1853 | +UPDATE t1 SET a=666 WHERE a=555; |
1854 | +UPDATE t1 SET a=555 WHERE a=666; |
1855 | +UPDATE t1 SET a=666 WHERE a=555; |
1856 | +UPDATE t1 SET a=555 WHERE a=666; |
1857 | +UPDATE t1 SET a=666 WHERE a=555; |
1858 | +UPDATE t1 SET a=555 WHERE a=666; |
1859 | +UPDATE t1 SET a=666 WHERE a=555; |
1860 | +UPDATE t1 SET a=555 WHERE a=666; |
1861 | +UPDATE t1 SET a=666 WHERE a=555; |
1862 | +UPDATE t1 SET a=555 WHERE a=666; |
1863 | +UPDATE t1 SET a=666 WHERE a=555; |
1864 | +UPDATE t1 SET a=555 WHERE a=666; |
1865 | +UPDATE t1 SET a=666 WHERE a=555; |
1866 | +UPDATE t1 SET a=555 WHERE a=666; |
1867 | +UPDATE t1 SET a=666 WHERE a=555; |
1868 | +UPDATE t1 SET a=555 WHERE a=666; |
1869 | +UPDATE t1 SET a=666 WHERE a=555; |
1870 | +UPDATE t1 SET a=555 WHERE a=666; |
1871 | +UPDATE t1 SET a=666 WHERE a=555; |
1872 | +UPDATE t1 SET a=555 WHERE a=666; |
1873 | +UPDATE t1 SET a=666 WHERE a=555; |
1874 | +UPDATE t1 SET a=555 WHERE a=666; |
1875 | +UPDATE t1 SET a=666 WHERE a=555; |
1876 | +UPDATE t1 SET a=555 WHERE a=666; |
1877 | +UPDATE t1 SET a=666 WHERE a=555; |
1878 | +UPDATE t1 SET a=555 WHERE a=666; |
1879 | +UPDATE t1 SET a=666 WHERE a=555; |
1880 | +UPDATE t1 SET a=555 WHERE a=666; |
1881 | +UPDATE t1 SET a=666 WHERE a=555; |
1882 | +UPDATE t1 SET a=555 WHERE a=666; |
1883 | +UPDATE t1 SET a=666 WHERE a=555; |
1884 | +UPDATE t1 SET a=555 WHERE a=666; |
1885 | +UPDATE t1 SET a=666 WHERE a=555; |
1886 | +UPDATE t1 SET a=555 WHERE a=666; |
1887 | +UPDATE t1 SET a=666 WHERE a=555; |
1888 | +UPDATE t1 SET a=555 WHERE a=666; |
1889 | +UPDATE t1 SET a=666 WHERE a=555; |
1890 | +UPDATE t1 SET a=555 WHERE a=666; |
1891 | +UPDATE t1 SET a=666 WHERE a=555; |
1892 | +UPDATE t1 SET a=555 WHERE a=666; |
1893 | +UPDATE t1 SET a=666 WHERE a=555; |
1894 | +UPDATE t1 SET a=555 WHERE a=666; |
1895 | +UPDATE t1 SET a=666 WHERE a=555; |
1896 | +UPDATE t1 SET a=555 WHERE a=666; |
1897 | +UPDATE t1 SET a=666 WHERE a=555; |
1898 | +UPDATE t1 SET a=555 WHERE a=666; |
1899 | +UPDATE t1 SET a=666 WHERE a=555; |
1900 | +UPDATE t1 SET a=555 WHERE a=666; |
1901 | +UPDATE t1 SET a=666 WHERE a=555; |
1902 | +UPDATE t1 SET a=555 WHERE a=666; |
1903 | +UPDATE t1 SET a=666 WHERE a=555; |
1904 | +UPDATE t1 SET a=555 WHERE a=666; |
1905 | +UPDATE t1 SET a=666 WHERE a=555; |
1906 | +UPDATE t1 SET a=555 WHERE a=666; |
1907 | +UPDATE t1 SET a=666 WHERE a=555; |
1908 | +UPDATE t1 SET a=555 WHERE a=666; |
1909 | +UPDATE t1 SET a=666 WHERE a=555; |
1910 | +UPDATE t1 SET a=555 WHERE a=666; |
1911 | +UPDATE t1 SET a=666 WHERE a=555; |
1912 | +UPDATE t1 SET a=555 WHERE a=666; |
1913 | +UPDATE t1 SET a=666 WHERE a=555; |
1914 | +UPDATE t1 SET a=555 WHERE a=666; |
1915 | +UPDATE t1 SET a=666 WHERE a=555; |
1916 | +UPDATE t1 SET a=555 WHERE a=666; |
1917 | +UPDATE t1 SET a=666 WHERE a=555; |
1918 | +UPDATE t1 SET a=555 WHERE a=666; |
1919 | +UPDATE t1 SET a=666 WHERE a=555; |
1920 | +UPDATE t1 SET a=555 WHERE a=666; |
1921 | +UPDATE t1 SET a=666 WHERE a=555; |
1922 | +UPDATE t1 SET a=555 WHERE a=666; |
1923 | +UPDATE t1 SET a=666 WHERE a=555; |
1924 | +UPDATE t1 SET a=555 WHERE a=666; |
1925 | +UPDATE t1 SET a=666 WHERE a=555; |
1926 | +UPDATE t1 SET a=555 WHERE a=666; |
1927 | +UPDATE t1 SET a=666 WHERE a=555; |
1928 | +UPDATE t1 SET a=555 WHERE a=666; |
1929 | +UPDATE t1 SET a=666 WHERE a=555; |
1930 | +UPDATE t1 SET a=555 WHERE a=666; |
1931 | +UPDATE t1 SET a=666 WHERE a=555; |
1932 | +UPDATE t1 SET a=555 WHERE a=666; |
1933 | +UPDATE t1 SET a=666 WHERE a=555; |
1934 | +UPDATE t1 SET a=555 WHERE a=666; |
1935 | +UPDATE t1 SET a=666 WHERE a=555; |
1936 | +UPDATE t1 SET a=555 WHERE a=666; |
1937 | +UPDATE t1 SET a=666 WHERE a=555; |
1938 | +UPDATE t1 SET a=555 WHERE a=666; |
1939 | +UPDATE t1 SET a=666 WHERE a=555; |
1940 | +UPDATE t1 SET a=555 WHERE a=666; |
1941 | +UPDATE t1 SET a=666 WHERE a=555; |
1942 | +UPDATE t1 SET a=555 WHERE a=666; |
1943 | +UPDATE t1 SET a=666 WHERE a=555; |
1944 | +UPDATE t1 SET a=555 WHERE a=666; |
1945 | +UPDATE t1 SET a=888 WHERE a=777; |
1946 | +UPDATE t1 SET a=777 WHERE a=888; |
1947 | +UPDATE t1 SET a=888 WHERE a=777; |
1948 | +UPDATE t1 SET a=777 WHERE a=888; |
1949 | +UPDATE t1 SET a=888 WHERE a=777; |
1950 | +UPDATE t1 SET a=777 WHERE a=888; |
1951 | +UPDATE t1 SET a=888 WHERE a=777; |
1952 | +UPDATE t1 SET a=777 WHERE a=888; |
1953 | +UPDATE t1 SET a=888 WHERE a=777; |
1954 | +UPDATE t1 SET a=777 WHERE a=888; |
1955 | +UPDATE t1 SET a=888 WHERE a=777; |
1956 | +UPDATE t1 SET a=777 WHERE a=888; |
1957 | +UPDATE t1 SET a=888 WHERE a=777; |
1958 | +UPDATE t1 SET a=777 WHERE a=888; |
1959 | +UPDATE t1 SET a=888 WHERE a=777; |
1960 | +UPDATE t1 SET a=777 WHERE a=888; |
1961 | +UPDATE t1 SET a=888 WHERE a=777; |
1962 | +UPDATE t1 SET a=777 WHERE a=888; |
1963 | +UPDATE t1 SET a=888 WHERE a=777; |
1964 | +UPDATE t1 SET a=777 WHERE a=888; |
1965 | +UPDATE t1 SET a=888 WHERE a=777; |
1966 | +UPDATE t1 SET a=777 WHERE a=888; |
1967 | +UPDATE t1 SET a=888 WHERE a=777; |
1968 | +UPDATE t1 SET a=777 WHERE a=888; |
1969 | +UPDATE t1 SET a=888 WHERE a=777; |
1970 | +UPDATE t1 SET a=777 WHERE a=888; |
1971 | +UPDATE t1 SET a=888 WHERE a=777; |
1972 | +UPDATE t1 SET a=777 WHERE a=888; |
1973 | +UPDATE t1 SET a=888 WHERE a=777; |
1974 | +UPDATE t1 SET a=777 WHERE a=888; |
1975 | +UPDATE t1 SET a=888 WHERE a=777; |
1976 | +UPDATE t1 SET a=777 WHERE a=888; |
1977 | +UPDATE t1 SET a=888 WHERE a=777; |
1978 | +UPDATE t1 SET a=777 WHERE a=888; |
1979 | +UPDATE t1 SET a=888 WHERE a=777; |
1980 | +UPDATE t1 SET a=777 WHERE a=888; |
1981 | +UPDATE t1 SET a=888 WHERE a=777; |
1982 | +UPDATE t1 SET a=777 WHERE a=888; |
1983 | +UPDATE t1 SET a=888 WHERE a=777; |
1984 | +UPDATE t1 SET a=777 WHERE a=888; |
1985 | +UPDATE t1 SET a=888 WHERE a=777; |
1986 | +UPDATE t1 SET a=777 WHERE a=888; |
1987 | +UPDATE t1 SET a=888 WHERE a=777; |
1988 | +UPDATE t1 SET a=777 WHERE a=888; |
1989 | +UPDATE t1 SET a=888 WHERE a=777; |
1990 | +UPDATE t1 SET a=777 WHERE a=888; |
1991 | +UPDATE t1 SET a=888 WHERE a=777; |
1992 | +UPDATE t1 SET a=777 WHERE a=888; |
1993 | +UPDATE t1 SET a=888 WHERE a=777; |
1994 | +UPDATE t1 SET a=777 WHERE a=888; |
1995 | +UPDATE t1 SET a=888 WHERE a=777; |
1996 | +UPDATE t1 SET a=777 WHERE a=888; |
1997 | +UPDATE t1 SET a=888 WHERE a=777; |
1998 | +UPDATE t1 SET a=777 WHERE a=888; |
1999 | +UPDATE t1 SET a=888 WHERE a=777; |
2000 | +UPDATE t1 SET a=777 WHERE a=888; |
2001 | +UPDATE t1 SET a=888 WHERE a=777; |
2002 | +UPDATE t1 SET a=777 WHERE a=888; |
2003 | +UPDATE t1 SET a=888 WHERE a=777; |
2004 | +UPDATE t1 SET a=777 WHERE a=888; |
2005 | +UPDATE t1 SET a=888 WHERE a=777; |
2006 | +UPDATE t1 SET a=777 WHERE a=888; |
2007 | +UPDATE t1 SET a=888 WHERE a=777; |
2008 | +UPDATE t1 SET a=777 WHERE a=888; |
2009 | +UPDATE t1 SET a=888 WHERE a=777; |
2010 | +UPDATE t1 SET a=777 WHERE a=888; |
2011 | +UPDATE t1 SET a=888 WHERE a=777; |
2012 | +UPDATE t1 SET a=777 WHERE a=888; |
2013 | +UPDATE t1 SET a=888 WHERE a=777; |
2014 | +UPDATE t1 SET a=777 WHERE a=888; |
2015 | +UPDATE t1 SET a=888 WHERE a=777; |
2016 | +UPDATE t1 SET a=777 WHERE a=888; |
2017 | +UPDATE t1 SET a=888 WHERE a=777; |
2018 | +UPDATE t1 SET a=777 WHERE a=888; |
2019 | +UPDATE t1 SET a=888 WHERE a=777; |
2020 | +UPDATE t1 SET a=777 WHERE a=888; |
2021 | +UPDATE t1 SET a=888 WHERE a=777; |
2022 | +UPDATE t1 SET a=777 WHERE a=888; |
2023 | +UPDATE t1 SET a=888 WHERE a=777; |
2024 | +UPDATE t1 SET a=777 WHERE a=888; |
2025 | +UPDATE t1 SET a=888 WHERE a=777; |
2026 | +UPDATE t1 SET a=777 WHERE a=888; |
2027 | +UPDATE t1 SET a=888 WHERE a=777; |
2028 | +UPDATE t1 SET a=777 WHERE a=888; |
2029 | +UPDATE t1 SET a=888 WHERE a=777; |
2030 | +UPDATE t1 SET a=777 WHERE a=888; |
2031 | +UPDATE t1 SET a=888 WHERE a=777; |
2032 | +UPDATE t1 SET a=777 WHERE a=888; |
2033 | +UPDATE t1 SET a=888 WHERE a=777; |
2034 | +UPDATE t1 SET a=777 WHERE a=888; |
2035 | +UPDATE t1 SET a=888 WHERE a=777; |
2036 | +UPDATE t1 SET a=777 WHERE a=888; |
2037 | +UPDATE t1 SET a=888 WHERE a=777; |
2038 | +UPDATE t1 SET a=777 WHERE a=888; |
2039 | +UPDATE t1 SET a=888 WHERE a=777; |
2040 | +UPDATE t1 SET a=777 WHERE a=888; |
2041 | +UPDATE t1 SET a=888 WHERE a=777; |
2042 | +UPDATE t1 SET a=777 WHERE a=888; |
2043 | +UPDATE t1 SET a=888 WHERE a=777; |
2044 | +UPDATE t1 SET a=777 WHERE a=888; |
2045 | +UPDATE t1 SET a=888 WHERE a=777; |
2046 | +UPDATE t1 SET a=777 WHERE a=888; |
2047 | +SELECT * FROM t1 ORDER BY a; |
2048 | +a |
2049 | +111 |
2050 | +333 |
2051 | +555 |
2052 | +777 |
2053 | +DROP TABLE t1; |
2054 | |
2055 | === added file 'plugin/filesystem_engine/tests/r/rnd_pos.result' |
2056 | --- plugin/filesystem_engine/tests/r/rnd_pos.result 1970-01-01 00:00:00 +0000 |
2057 | +++ plugin/filesystem_engine/tests/r/rnd_pos.result 2010-07-30 13:27:46 +0000 |
2058 | @@ -0,0 +1,19 @@ |
2059 | +DROP TABLE IF EXISTS t1; |
2060 | +CREATE TABLE t1 ( |
2061 | +aufnr VARCHAR(12) NOT NULL DEFAULT '', |
2062 | +plnfl VARCHAR(6) NOT NULL DEFAULT '', |
2063 | +vornr VARCHAR(4) NOT NULL DEFAULT '', |
2064 | +xstatus_vor INT NOT NULL DEFAULT '0' |
2065 | +) ENGINE=FILESYSTEM,FILE="../filesystem_ln/rnd_pos.data"; |
2066 | +DELETE FROM t1; |
2067 | +INSERT INTO t1 VALUES ('40004712','000001','0010',9); |
2068 | +INSERT INTO t1 VALUES ('40004712','000001','0020',0); |
2069 | +UPDATE t1 SET t1.xstatus_vor = Greatest(t1.xstatus_vor,1) WHERE t1.aufnr = |
2070 | +"40004712" AND t1.plnfl = "000001" AND t1.vornr > "0010" ORDER BY t1.vornr |
2071 | +ASC LIMIT 1; |
2072 | +SELECT * FROM t1; |
2073 | +aufnr plnfl vornr xstatus_vor |
2074 | +40004712 000001 0020 1 |
2075 | +40004712 000001 0010 9 |
2076 | +DELETE FROM t1; |
2077 | +DROP TABLE t1; |
2078 | |
2079 | === added file 'plugin/filesystem_engine/tests/r/select_big_file.result' |
2080 | --- plugin/filesystem_engine/tests/r/select_big_file.result 1970-01-01 00:00:00 +0000 |
2081 | +++ plugin/filesystem_engine/tests/r/select_big_file.result 2010-07-30 13:27:46 +0000 |
2082 | @@ -0,0 +1,1005 @@ |
2083 | +DROP TABLE IF EXISTS t1; |
2084 | +CREATE TABLE t1 (c1 INT, c2 DECIMAL(3, 2), c3 VARCHAR(20)) ENGINE=FILESYSTEM,FILE="../filesystem_ln/select_big_file.data"; |
2085 | +SELECT * FROM t1; |
2086 | +c1 c2 c3 |
2087 | +192 9.40 jpBjgUdnwLxojNxvoQFX |
2088 | +618 9.60 LSkNQAZjODwYvOYUeAVb |
2089 | +847 2.60 yphkuCaGsgbReRQTcUob |
2090 | +814 3.25 rJDEnFNRTVftDpWPLeRa |
2091 | +571 4.84 bjQkbVIPlNmlHpKvDBVv |
2092 | +292 5.60 ikfinRYRKPIjJsjNXtGe |
2093 | +736 6.34 NxSIHnLbJEndkqmwZFPF |
2094 | +776 2.97 YhdGuHgspSDfPZfeSHDs |
2095 | +693 2.51 IRVxHgPmpDZDzVWReFRK |
2096 | +27 3.27 gtAvpxIwXldqKYADhkna |
2097 | +592 5.54 CEuIPODTitAOYqEQusEv |
2098 | +59 4.34 PJSVLGMjcRyqRdffDeMk |
2099 | +108 4.60 HlopFPmGpvJjdmtSlcmJ |
2100 | +183 4.57 KqHsxxrIUHTkEVHUmJUa |
2101 | +799 0.88 iARALomncGlwqWlGDfvu |
2102 | +34 2.60 qKUfyEozvawQfNySJoqF |
2103 | +622 3.31 tfdGYDefcGYveIwEgIzU |
2104 | +35 8.99 oCnDHfJLNVTcysrBRXBY |
2105 | +765 9.17 aUQUhRRYTMbDqMpLndwe |
2106 | +77 7.30 emYjkJPwamuIrPPbrzQQ |
2107 | +608 1.30 GYracqTOoUAsKQyhyrTv |
2108 | +71 9.92 wgFQfoXxyonAlQJfruiZ |
2109 | +480 9.89 vzwhdoBgcjgADPxWfRmA |
2110 | +996 3.74 nQggLzdKdXkFCjWBCPbj |
2111 | +765 2.74 DPXTTBcNawKyiAgthVVh |
2112 | +252 7.47 kSeWSMDVpMiWJQRJPcdH |
2113 | +195 9.49 NgCBvAmiGRYvooUImjPq |
2114 | +749 1.66 mhChOLdNCIkWwdxkAwYo |
2115 | +925 5.90 BpfNtOtlZQzVTFCVXryN |
2116 | +898 8.92 SExwIoHiQyUJumKmnvKg |
2117 | +62 1.75 qhpdevbKjgqZMrgbKMEc |
2118 | +419 8.68 zlBKEOoGGNPAQHuRWuAh |
2119 | +538 1.50 ZgfSjbeWkAPWvQHYwteg |
2120 | +297 7.20 vTPAUlmqQBOnBkvSitAT |
2121 | +612 4.30 VzhSsYdmdsAmYmxaCANx |
2122 | +485 0.26 RQxqgQpyrlLmKtwIyvAC |
2123 | +984 8.81 RIYiiQQTMuxEPDFrTtwt |
2124 | +275 9.39 EjyENeSSzHpKzFuFUVwh |
2125 | +709 1.66 VHVcUOsrTBxBYwZylLSy |
2126 | +314 3.80 kTajmgdMehDoMHBUpiIo |
2127 | +261 3.58 HddjywgLGBnGzFSGNClc |
2128 | +576 8.11 RrqwMWPwzKEEneiaLMJs |
2129 | +339 3.32 hkzWfriTUKqcjHrgzgzE |
2130 | +204 8.75 EkKdLmvJaYhbuZSXcvdC |
2131 | +569 7.10 jOwhQZpHMCOqHxEmMdFM |
2132 | +563 2.96 aWOcwWfOXnabektPGgKM |
2133 | +221 6.32 EjczZetUKWHOPFKzedTk |
2134 | +64 4.40 oLEjGHTKkVHgAzuDZWTi |
2135 | +990 3.32 uIbcYwWgYrVFJOHcaJNl |
2136 | +706 9.72 hRFpTOsHmnTaPWWIyNpv |
2137 | +21 3.95 tseEKNEUwtplsFPxQABr |
2138 | +256 1.70 uaVrtCMWUGpyndDouJpc |
2139 | +193 3.70 wulxTHaLUJWHZncPfdyu |
2140 | +326 6.88 ATIxHVhtJxDzCxKCkJVO |
2141 | +532 0.88 jGxbPAFdGbIofquyrqEg |
2142 | +970 4.47 EJsLdVXEaVPSXHqjsfPz |
2143 | +642 3.96 nRHrrKhutsNspLrLlFPN |
2144 | +741 0.74 gmPcoeQZQLzvPiFEJQsm |
2145 | +548 7.10 jPUBesAPDCXOExMUDAsU |
2146 | +691 2.21 mWujjRogVFQJaClsMeHj |
2147 | +698 7.29 DypRHqMfdBYLWLPiyhyL |
2148 | +748 9.81 TabdxNOFnMZGsyxSLvmV |
2149 | +888 0.35 xWvAwZWBZnMQWUsySaHg |
2150 | +328 1.60 JxVdEHzpSVCEEyuDRmPf |
2151 | +781 8.15 zhdERXUSBYSqsSXiRjJs |
2152 | +418 4.33 ymBkxrlFulEGWsHCgfFz |
2153 | +605 7.64 uHgZctYWEUcwLmnKottg |
2154 | +568 1.97 mMNkVHoXdCxgRgNaLkTO |
2155 | +391 0.71 uclHEKTLUXLBLADIgSpy |
2156 | +322 7.40 ehHcEKwmkBzunaKHRlBK |
2157 | +735 2.72 vBQxKqICfEOcRBnOLPRr |
2158 | +977 5.85 vxWkZBLAIOMZFBQWBPRz |
2159 | +655 1.38 ixdZfjUlvvYrrPHmtcbb |
2160 | +793 1.55 DLcvRJKRjKaFMMCpbLVR |
2161 | +42 7.76 EdQOUwzQItBPmvvctVZx |
2162 | +403 5.63 aAEmSBQirVlkRZKGuPZo |
2163 | +694 6.25 dNNzAvBWUZubaMjhawVk |
2164 | +96 7.60 WvCodyAPgaureBHuNSOI |
2165 | +655 7.34 LIQWyyTFoKsgBVIlMOip |
2166 | +749 3.26 otEImKHWdviBWMHnKnAy |
2167 | +392 5.70 eKTgSPSaFHlBJWhUsYcQ |
2168 | +229 3.51 RSCUAZXTpnksXIIyMNqn |
2169 | +60 3.32 heoxppRRMqVjnwLTIkzM |
2170 | +59 4.66 shFimshNjoBhtiyXHkeu |
2171 | +685 4.61 WpjzucNyNnbsYMcOHjbl |
2172 | +906 1.61 AMMYTKlHMcxrxEWzcEgl |
2173 | +452 1.17 hvIYeVQxRVjLGcMIIPlq |
2174 | +776 5.96 kbrrFqzVHBhfCeGRAidR |
2175 | +171 5.30 XIwmcpjETarpXQfWeCsf |
2176 | +889 5.18 OARTITueckClWEhGnFfG |
2177 | +209 6.95 yuAVMcZLBZOZnuqDJXtq |
2178 | +228 1.15 wzkFOcmpmkGvKfrfrMqJ |
2179 | +348 1.58 CMkNbteFRyBnKcZElcZT |
2180 | +482 1.60 XBbtwyZJSINdDKJPFBLh |
2181 | +549 6.25 POTjzYGerRZoSBXawlMW |
2182 | +482 0.38 cEseEtPoLnbEGCvmLSKC |
2183 | +311 9.99 DXzdcEyOaoQdemrFiWkb |
2184 | +978 8.49 gZjBebGdmOjoeJsgQAYx |
2185 | +675 8.76 XRaCqXGtiKmmTccyHFpV |
2186 | +343 4.98 THxNBaZxylAvUxgUiVfb |
2187 | +595 8.46 ohLRcfIjnWVYOrgWProB |
2188 | +237 5.11 HTYrsiAjtvhWzIJdLMSs |
2189 | +197 0.66 zqTBbbgaOZcjpNRcNipQ |
2190 | +504 7.50 aWkDGoCMpwTMccGwiSia |
2191 | +540 7.30 jwouGMVrewbgUiQMCtKH |
2192 | +882 7.16 xxOjEZwHEUNmrrQpdwhl |
2193 | +853 3.92 QdOAVhabDkUuaQBLXDoE |
2194 | +433 7.72 dZtxCYRmZcGgdbKvagop |
2195 | +643 0.19 jIjfjbYdFXEWlXZlnlWs |
2196 | +757 2.30 IikDjuRNvdLPttddkKjO |
2197 | +800 9.95 HnzCoSOyDuEsvfyckmHS |
2198 | +428 9.78 kTTmhNmpFkjVluKWHvtx |
2199 | +189 7.70 DBeQVZMalbmhVEsgYsbq |
2200 | +30 1.22 aKCRJXmPebvzUaQHIBHP |
2201 | +776 7.43 SrwJlmQaJTnSyRbmAWHO |
2202 | +603 5.23 QDUPvENiqcHWRmTfxaDe |
2203 | +26 1.24 UolXjCmCIQiSllznooXy |
2204 | +221 2.66 GnFWlqKKyuCdWYXkbCqt |
2205 | +108 4.20 pAnYwmpkSwOZRgwiYVWL |
2206 | +175 6.51 opEldPFkpCDsVSKRcZaW |
2207 | +324 2.71 stiTcwAYdZxbxZILylHo |
2208 | +280 5.37 ZYtykbYUBCLALVJFkirF |
2209 | +798 2.47 xYgSFtzerVqucvqIvEGr |
2210 | +897 3.17 gGEkYIvCrpIiQTzkJxxV |
2211 | +62 1.25 gGOidOOuWHbezVnTEWIq |
2212 | +620 3.00 yYdLZxIbTLUnJgQxDUmG |
2213 | +502 3.24 gjUyXarzITiqkNUPePvL |
2214 | +70 5.40 NPnxdxhkOfnKjzpJNsiU |
2215 | +204 9.11 KrJvPSsEdFSqLiXuxQiA |
2216 | +456 7.34 OXbMZUKsUSAZbOVPQIBn |
2217 | +975 7.89 kCwlsRqUGAytpCAGcxwN |
2218 | +929 3.66 NunymCZUGzUBfhmtWeNR |
2219 | +991 7.49 XPVKOhSsRghDcjftqkyS |
2220 | +437 0.51 UAXgfvYvZVyDffmqhBIS |
2221 | +440 9.25 sXzGZDTZgJAAWgqUAQTf |
2222 | +940 8.25 uKjfbnoyNyXCZvsERros |
2223 | +449 0.54 DcaJRKbcNwRwJLxKLhZf |
2224 | +673 1.64 AUnDLAhoyAhmYZnIRbhw |
2225 | +926 3.25 PWzbZhFqMyeCMWrLvVZv |
2226 | +807 5.77 NvfsIyaqQAkvzttOVkMv |
2227 | +485 7.85 YOglmchMYUvpPVLrfbSJ |
2228 | +48 6.88 bvTBWQvQKSDIeZOCWCFO |
2229 | +175 7.96 xmAknBEqJuviUaNxpljS |
2230 | +633 1.90 DvflcynsTEHwPBwOFKBN |
2231 | +92 6.50 ebZCXpoUWoVynKwUFIZn |
2232 | +498 2.13 dWSNUAKKzNRSmBIACmBE |
2233 | +151 0.34 wGiOfpmvKhvFPZxEADbR |
2234 | +548 0.12 HMEBWQahnDjYRbcsiBWU |
2235 | +711 3.16 cVbbfaLumCYjanAKrohP |
2236 | +746 3.48 dZlqLnbCyPYlFyBctmdk |
2237 | +597 4.24 BNLzfOVkAgXHMpjcqIFq |
2238 | +399 0.36 qfprAaaoVnGgdczINYFm |
2239 | +546 9.43 iTGNNVCPUrwkYbbadyKW |
2240 | +594 9.62 YkiepbdHTqBOGMaVutQh |
2241 | +371 7.81 MYLwxhHhjfVqSrozPlvR |
2242 | +309 3.56 NRMiGLKDjAYmMIiwzJhM |
2243 | +297 8.98 KEZjoQOGBHyZptWvcShi |
2244 | +119 4.75 vIlqzrkTNdmwHVyxLzCG |
2245 | +791 9.86 cBCiAmKLMiJyWzfyOrQb |
2246 | +499 4.54 yuIpPSIGjBKmmpjgtsAS |
2247 | +601 6.95 qvikjiMrezxQIQnZYKqx |
2248 | +171 6.61 IrNSAEhVPmGuopQhsiGe |
2249 | +137 7.68 RbEbHNMcCFyHHtgxbwru |
2250 | +470 1.58 DJzSuYlqXdvjJMPGwvAD |
2251 | +981 1.36 YXthDiWzZKmTFaVHXIvM |
2252 | +449 6.95 NBzYrdifSJvroerfjCrx |
2253 | +816 7.46 bGqzWGlbYVCsmBQnqeFn |
2254 | +892 1.57 lKPDCgUjWXGrXoTmqofn |
2255 | +796 0.38 hhnhhuUcZYFSXodkYozq |
2256 | +849 9.65 pQkmTlynZGroEMhQqeFV |
2257 | +978 8.22 tSRSfFdnvYJzIUCXvffS |
2258 | +817 1.30 ivnVtbbzIWzRdHWrrFNS |
2259 | +92 4.87 nLVXqazvXeIuRYKpgEVw |
2260 | +543 7.65 ytoZORdbOanKCaJnEoWx |
2261 | +3 5.96 YHGQRnNBeHPFqScDQIXb |
2262 | +644 7.62 auOOpsagsSMpXIxvNcuT |
2263 | +177 6.19 kKckdAjWPaeNfbFeylcA |
2264 | +253 6.34 xBuVMpdAWoJLXHohZQaj |
2265 | +54 2.55 ckBdUuXMWvOmUMnjtQnY |
2266 | +240 9.70 QxRyBbBeFehndsCGDzQg |
2267 | +313 5.29 gfQIQiJDpJxbASsPeaYn |
2268 | +735 1.67 olIKdcfamVrSuTFQFMIc |
2269 | +103 8.69 zvQtXyFOIMryLyDXUehS |
2270 | +295 6.40 nyEPnztubhxQBSMOqvfF |
2271 | +502 7.19 qAEFhiNyVNNQaUYRNUEg |
2272 | +513 7.34 wwAXuDbQBjFVZjsbZqNK |
2273 | +848 0.57 xguKpJPjMiZMTsymbcPo |
2274 | +751 5.94 jTiBWgYHnXNkzmlXmHuq |
2275 | +836 9.58 CnPTfaxPvUCCdRMymioa |
2276 | +455 2.69 pejDtFBUxPIxKKhMJUWs |
2277 | +861 0.22 rnWsdSZXNAuPccpGfjNU |
2278 | +26 7.61 ZzRzeEKyIOVTkWCYSYZF |
2279 | +54 0.65 gtXbYWuFVKvZjnCrJUAB |
2280 | +779 2.75 guVKPZxSmxGYMXfypSFK |
2281 | +159 3.93 AKpUxqRGiThzoxQQRROp |
2282 | +917 6.87 IGnKppqKLyvMleSpohGY |
2283 | +316 0.00 FMzIEKNXGeWgHmytBqwk |
2284 | +428 1.45 WnBnkAegeZkxeqCwmUJj |
2285 | +290 5.50 nWuIHEhhpvGEQqXIFyLO |
2286 | +948 9.94 UivnZfMKAibZsjCRCXiW |
2287 | +590 1.20 FvVXEdLxGPhErzVOXwWO |
2288 | +303 0.35 syxsPFTZcZfqsxSQuHOK |
2289 | +931 7.46 AXzLovMIsDZVnFSoLnzf |
2290 | +737 6.62 YfnLlPXRMQxAyZCUaJPP |
2291 | +259 3.96 dxPNIzgfZOKZFFdzLQJj |
2292 | +544 4.27 JjpUuBRXnPbNrMLaFoAU |
2293 | +807 6.64 hFSLCBZZmDoOzFjQnOMa |
2294 | +437 9.21 slnNrajpGjHmrPEDjyLv |
2295 | +487 3.44 zgBROXScbWoDFYwDrZZq |
2296 | +649 1.22 MyVRplRDvwckcEtcnSwL |
2297 | +755 5.11 KUQyMRwRuXVsnuxApTBB |
2298 | +751 6.26 MVbpeNaiKKOWYzsApugb |
2299 | +871 9.90 RHqbdbSECFpzqKBBQXDY |
2300 | +706 9.40 QMuhdWuocukxUQvtLeHA |
2301 | +941 7.35 bffBwXuTwyizVNyVlNAP |
2302 | +178 5.53 AGhDovrxSzyBBTylixsz |
2303 | +667 9.52 dIodUNdnPEOaluUaaqQq |
2304 | +127 0.79 nNrfQxaHaJeXunrbldTW |
2305 | +451 9.25 ujihJXZfnOueOdvPXSJO |
2306 | +620 5.83 cooShIhtOkOBrKudjGaR |
2307 | +240 8.31 oecWoiuhzPzuwOgXeyQG |
2308 | +38 0.67 jrvinjtyLPPcfnvttKKW |
2309 | +271 3.74 DbOuyotNTMTEexjZdMHE |
2310 | +313 1.73 teXwnvclJHkCiAhJhLlu |
2311 | +321 1.54 cRUfRNHbDdoVhZoqdIOj |
2312 | +621 6.16 YiNFPRBJVUgsnzLRuloF |
2313 | +369 1.43 slqjryaHUVDJhgwJASXl |
2314 | +945 2.70 sLcNjEjGvzWDmWBLiaLh |
2315 | +354 7.41 fudoFUiNtacDMhXApenm |
2316 | +189 5.62 xSZfGwrdPjmoQRhmYDcX |
2317 | +234 6.20 qMkPxrvYITMBVEYhznpF |
2318 | +749 2.32 AVoZwcBZMLgLWiOHTflR |
2319 | +866 0.61 nKZVmVoOMhxAFntgqFkT |
2320 | +785 3.48 MPDRmXTvUXuqqjESKtSN |
2321 | +608 9.92 ZzRTvbcwyQfIwuMzBXfs |
2322 | +807 2.25 fUjmfEGNWHIQGrPaXEye |
2323 | +720 1.56 NVAaIhYeHhneuljfohyp |
2324 | +683 3.12 UVKsAEIpVJmTfhURNwgW |
2325 | +659 5.41 GYkNtAnHDwqmxwffTDoe |
2326 | +656 6.69 wjLBrxtwmuRaJtMMoldU |
2327 | +900 5.13 ScAgZTpdXBxbeeJwGXDN |
2328 | +489 7.96 IbNiaXivMkITJhoTTWPk |
2329 | +437 0.20 vtXWIRaTgkFBnBfPLGFu |
2330 | +535 2.22 NakPyqNTyeqRLRvNbmed |
2331 | +761 6.20 sBwOoEdEGlNoMUqdlKtb |
2332 | +780 5.62 OublVKVZwhTLAoXxPnXX |
2333 | +529 3.73 LCmyRbilZVyeBNEoSNyw |
2334 | +502 6.70 RYvkcCNTBvoUrpZBRDPA |
2335 | +487 0.78 qnVDgcFTuKhBrngvWFYF |
2336 | +579 4.53 kRHWQhoFFBhNVlPBjxXH |
2337 | +797 1.55 ZuwmgmLGVdvarBRaprWV |
2338 | +861 4.78 FMhjmagLzxhTmZrnbibL |
2339 | +652 2.32 InRhNqlnTiHTcrVmBMwE |
2340 | +870 1.41 lFhMOGAaleKyYUToNejF |
2341 | +246 6.30 LstfbtAFDQCWSdIEOuiL |
2342 | +742 4.72 RZmyfVBggxHDeuskAIeO |
2343 | +888 6.66 CJWAxISMCUKavFGIRyIi |
2344 | +377 1.96 xVqkyBNLYUkMYdwpAgEB |
2345 | +347 0.16 MiOXVOagqkLSTzYIeSra |
2346 | +873 9.93 QwyZZFOkUHXlvqmajTuU |
2347 | +866 0.45 QfynYftmOdOhNYZABCfo |
2348 | +720 0.70 XjNbriAhLUwcRijUzwZa |
2349 | +21 8.90 cEFeZfJHGEEYHGDGDDzt |
2350 | +842 5.53 NQrkWAnXfNjmcPapfnBZ |
2351 | +395 8.26 WoObGTrswUXVocMpWzam |
2352 | +805 7.34 wkCPGHHoroEkDDGXzcuo |
2353 | +945 2.29 xgJvJcfIQmKDuaZpzqIY |
2354 | +715 5.65 xzzVjlborTJLevAptgeT |
2355 | +714 7.96 FxxJYhazQxFvKSlXXfLO |
2356 | +625 8.31 yutfvCmOfLowqxqjuMUK |
2357 | +573 9.29 EEUtQpLEUcJMBiYBGsXx |
2358 | +363 8.80 ToacrTKslmPSEuRQCJwv |
2359 | +889 2.66 yklInCiTlxnHMHlEXDQl |
2360 | +628 5.17 UTEagZGvGZfHOlDuXUKH |
2361 | +643 3.23 jcCJJeRumgaDFqcosgLJ |
2362 | +646 5.12 vVnIjqpMfSHLitIsfqMg |
2363 | +886 0.38 stfEWcbuWNitgLtTtigQ |
2364 | +363 5.93 OCMMpnvtEjbFuLgAEtkU |
2365 | +236 2.89 txucVxohWxrnUUDEMZwk |
2366 | +70 9.75 DXNLUUtrYxmkReokvALc |
2367 | +572 5.71 XeVYLrueWGiQGebWUwkW |
2368 | +434 2.10 xMTykKCEZnUmYNNOgSih |
2369 | +444 0.47 axDOmwdUffipyarAtIJu |
2370 | +454 8.23 lYuKfhOKtkPcDyaZdbmw |
2371 | +740 9.54 kUFtOgiBRUPnhLwwrgUW |
2372 | +209 2.41 JTgAfdoVfSFjTGutjAvH |
2373 | +899 3.19 eTGGqVkoDcqtTnkahxHj |
2374 | +829 3.80 OvkAywzARPbfqTPHMEXz |
2375 | +685 3.22 lmFitDYHTZambPCWjllF |
2376 | +578 7.21 MMpgfEfCkQHJtagEhoUx |
2377 | +220 3.80 JEHCPrJeyxXLhdtXGWcu |
2378 | +947 6.28 dTtJKhgwcBnipuWYxYEv |
2379 | +54 8.83 CHsmJurywDSXAsymAqOw |
2380 | +12 8.38 XISWvYQVeZocSmIrQNyj |
2381 | +577 0.34 SSjCteOgDkQPwJofWEEU |
2382 | +771 3.37 LSgNuOQFoetwCcCDtIxk |
2383 | +656 2.14 adRsvhoZHvTfLTyLqvRF |
2384 | +896 7.34 CyXBvEQSXNPNejYrjWOg |
2385 | +980 0.14 VClbFxOwvvhMxJiSoHgv |
2386 | +454 8.82 UGbZCbTYmxYfaNRvxmiZ |
2387 | +892 1.56 WQdRYorTGjnXFWlvrxgX |
2388 | +649 8.77 BuREkjbviHzhtVvaMswT |
2389 | +299 2.92 WMbmvpVWVrbMQNvnVuYb |
2390 | +866 5.15 ttVBDkjMAMBdCgbkTMTp |
2391 | +771 7.37 bWSUWyErakTnbDULvkRJ |
2392 | +748 8.59 LiodrknBJVVqOYTslJRE |
2393 | +337 1.88 GbplVMxejUlPfbxiMhmj |
2394 | +532 8.10 yeraTbSrtHHbyHnLnjvJ |
2395 | +860 1.35 qfXroMPpihOyFNlbjdRa |
2396 | +746 5.88 xwarOKMtEUqPGIDuWVbW |
2397 | +572 2.34 ysIFbYbpyVngDNdscNzE |
2398 | +693 5.56 sgWzpVDsrPedZaiuBvan |
2399 | +736 8.30 JAGQGSmeBgmMrRxLLzJi |
2400 | +411 6.69 eUMQMFlztnCXJnMhkXXV |
2401 | +605 8.43 mDmgFeyVznUDAlSEFmzX |
2402 | +882 0.77 gUJmprHdPOvzvQNKNDdV |
2403 | +136 0.35 vyoNduORlklNvHjZtoCv |
2404 | +763 9.96 RaJzaXnEfOYnReWFoyIY |
2405 | +361 4.29 klsePKOxmWGBTXZaDtPi |
2406 | +281 4.27 LqhRhVMFCxzmbvcNtOrq |
2407 | +460 4.46 sSSwfpHvdoVutckHazUt |
2408 | +621 0.40 AJfWbYHkYustCMIsEvFw |
2409 | +44 1.49 ymzIqzGZPxTUiiAotMhC |
2410 | +532 8.40 DiZFMlbWozhtkbnBpsMe |
2411 | +974 6.36 BqPaSfOGYlmrWSDuzOVz |
2412 | +257 2.98 vUprKOpULQnKAulAZpGb |
2413 | +290 8.88 kXjaEAVNSfrjqyXuNhtF |
2414 | +478 4.48 kweRAIdsBQtzcYjPpRXl |
2415 | +432 8.19 ASvAPuQuqRIZDmvTJRBd |
2416 | +12 1.74 WWIGjzlRZxbeZRmhdnhi |
2417 | +944 5.85 mdUlAggcHyZWubrvhJwR |
2418 | +724 5.29 ryHSuZWpITFwcyKWPoDa |
2419 | +813 6.86 NhLEYhuQTTCVMKBNyEED |
2420 | +568 8.99 FZiCwFYLNaMyrFxhqZJd |
2421 | +560 8.64 eZOVPGpmTmfmMrdUCcLD |
2422 | +279 7.74 ZfclbaBlhQmVvtPYOzWW |
2423 | +151 2.48 dyBMcKxXNQkYNsmuSJtV |
2424 | +281 1.45 FNQFBFHaMuooWYmgdSkw |
2425 | +945 6.30 DZzoAHcKvhNrDendccIk |
2426 | +209 2.52 nnBfHEVwRbVHQcMZWUjG |
2427 | +770 5.97 GtdxrRhaMZKOHSepPwsv |
2428 | +163 8.89 QyvjtJrpZpUjNUvrJeXB |
2429 | +325 7.43 PfKbnXWnNDidiZWNpWft |
2430 | +554 1.98 nRDXTUeiHSTwEjdZfMxn |
2431 | +372 3.16 FttOhHsHiZgZJLqfVdBN |
2432 | +931 0.83 fFCQoWnDdpeZlwbuwwWV |
2433 | +382 9.70 mXsRKrHNpGMwoZRhJTuI |
2434 | +696 0.70 OVFQBbDOjwmcGPvdRIqX |
2435 | +810 3.15 KMiKawUCvImQAFLHVGYR |
2436 | +23 4.53 UAqVGWUfVuoMZjVeknNY |
2437 | +406 1.74 WNRrxNYESOaonJgVqBgc |
2438 | +343 8.34 omnvEWQmSVklsJJpSqYw |
2439 | +966 5.48 AZzbEwxGVItDLBMoLHfE |
2440 | +448 4.23 BGBsISXvvxYCfNEzBYbG |
2441 | +495 7.68 nzvLWgwuUYrskJiTarex |
2442 | +338 9.50 HYrPfBaIEURguPWLwpGW |
2443 | +562 5.77 OwDDTnSgGEGanAAFpIuk |
2444 | +178 8.55 hgXeTKuJkPwUItJeaHuR |
2445 | +234 2.53 SvVBGkFxRXqzXZQtPeFk |
2446 | +566 7.91 UgtIXlzbAcDRyTuHYGyl |
2447 | +165 5.13 RIRuMPSDAgODegLuHYtM |
2448 | +473 0.59 VNahlMhbyNTpjbVspVuU |
2449 | +918 4.68 PnKFhrrZFjBkIXpqAtyR |
2450 | +126 1.60 JBcuGkhFlkIFUgIkjAvB |
2451 | +4 5.90 AMnTFilyyQiOLxBvkZGA |
2452 | +975 6.72 MzkWUUWzdLDtwISzNgpX |
2453 | +430 7.59 FLYVcOWRCbIBztawYsSW |
2454 | +86 6.71 JtEXDfmDuQFtPBOHgPNE |
2455 | +224 2.70 EJowYiFEYrKVvAwSEpVG |
2456 | +950 8.60 ZkRxwBNwbqVeXodSLrJb |
2457 | +348 7.65 lFqwuSEruKeNzLGzWalK |
2458 | +837 4.57 nlDzGGHykYZcqwTFnomR |
2459 | +746 7.66 rDVPgehFbohxROiTjaGy |
2460 | +603 9.53 oOdIjEKxmvfBjFuguiMZ |
2461 | +591 6.11 YOWpmqtuRQoFLnLhyasJ |
2462 | +73 2.77 pVJVLkRnwksBrTvALmrH |
2463 | +339 7.10 GTOdZJxVlKKHEtBnoGrQ |
2464 | +698 2.42 twClrIepXprGksUrGTbj |
2465 | +821 8.92 LWAgApBUUiuszjRZbLcb |
2466 | +227 9.11 JdDbFLSDUsBauYAciSrD |
2467 | +255 9.56 pDjgONKekgxqTgdzTFcH |
2468 | +794 4.66 iKLpSuRcGZuCfRHWBoDR |
2469 | +235 3.36 lMFtQpAHvaqPSWcZpoas |
2470 | +769 8.99 YdiTJnKaswltGNLuxvDQ |
2471 | +430 0.73 arcmAZXkpyeotDfRyYPA |
2472 | +788 9.17 okKxOdygEqXUeqsGcwRe |
2473 | +563 0.93 nDnKCzxXjgVPctzeQOKg |
2474 | +3 4.75 FzlYLMdjQTyTXLWKKNCB |
2475 | +483 3.20 YixdiktWavAqoojjEtWf |
2476 | +444 7.33 dBAJxPrDKUSGLgxAfVQv |
2477 | +869 4.40 HltYNXLlSwXiwVpgBmDz |
2478 | +725 9.63 ezuFHPAzKPfSKgYOBPFZ |
2479 | +164 4.70 mWppbTXlNcvIAULGoktj |
2480 | +200 1.51 GtTkJwsgvCnCuzqChotT |
2481 | +942 3.36 NrdCmmzcntFdodBhfzsH |
2482 | +736 0.20 URmRulmBtZYvTMvAwLBm |
2483 | +0 6.90 wCpVrSqORejfCTisIlxk |
2484 | +701 9.62 WjwEVffstqMHgMvAXiWe |
2485 | +834 0.44 tmogwQMMcOBywnIQamVd |
2486 | +819 9.50 ujtmbAoyYWcxaKBtsWIr |
2487 | +957 2.43 yuNsZDnTUvYBsbnjKEai |
2488 | +807 4.23 TdnQqmeRbziOXCKftSEH |
2489 | +521 5.90 ElpNMUTDRUlyzTjcbstl |
2490 | +314 8.14 pPsTWQuRUENWAWycvMos |
2491 | +217 7.62 uYTHPCMyHacNbGIJdjlD |
2492 | +626 7.86 KVvLVNeNllXwUkmQeIaV |
2493 | +490 1.41 GLQixhqPsUIKwLQSLTBy |
2494 | +838 8.25 lVUNCiPtoyRpFwJyrmyP |
2495 | +607 9.20 FatUNtpyajGldFMawXEa |
2496 | +162 2.36 unqFMicqtBhMNpoZoqQq |
2497 | +310 1.49 CcJFouEtrrblvSeFCLkm |
2498 | +10 5.22 aTuLxAJSrVZRqJkNZHry |
2499 | +127 7.73 rzJYhFwSafZwVSXWBdLG |
2500 | +750 8.40 VKcXOyaqczUEOqgTwxrf |
2501 | +307 5.18 KNvOTEPzEjNCgASnslnP |
2502 | +452 9.16 ubOLrsUNayFtfJzwSNae |
2503 | +788 5.20 urcAAWBFuQVZqzzaAhwz |
2504 | +86 2.42 WfXeFiKDcPblptymlSjM |
2505 | +657 9.49 tTTGfzqPTLLoPvTksCAd |
2506 | +362 3.98 IAEVbnwGSPOmyvJIlmTL |
2507 | +129 9.34 XRmXHyjGvUjRyZuvsZDf |
2508 | +787 9.60 GRcxDMxOiDkylniIDXiy |
2509 | +919 0.23 XJDLPHpwZxjzmcXsKRUe |
2510 | +624 5.54 abCXNSNiRDqhyJJqcCyQ |
2511 | +67 2.33 cTDSPwJrthShnetFjxti |
2512 | +838 2.89 SuqGHYfiuKNCggiRRqSh |
2513 | +373 9.61 HFPFxDOHUvtAvJfvfMay |
2514 | +559 1.85 JblTgGdfwEzNVIHBbdzy |
2515 | +983 6.61 apUPvuSZDqrmzHQjrtzl |
2516 | +850 8.30 GwOZbyHoxejRduSlSpiT |
2517 | +955 3.90 aoQwDfqIblLIVwSqTGDN |
2518 | +419 5.50 yXsNboLdXkWWfmhqDKIA |
2519 | +881 4.18 FbagsovifdcFUqrkILOA |
2520 | +97 5.25 FZyiaHPwrezjYNAArPfy |
2521 | +161 0.11 zPoinwsgdRxXAyuVdDNJ |
2522 | +241 7.84 LOLLKqdqpzfyWcdLXHKT |
2523 | +824 0.24 doaLLQoyfHFQsTZqxyBx |
2524 | +217 4.95 XXgktdeMhFEyeJwOebKQ |
2525 | +150 6.39 JJmsIVQXoWpgfYjCxSaa |
2526 | +508 1.75 GuwcWaoNaEZkQmTTAxeN |
2527 | +108 2.34 IhNbBDnVirbjzMXzRevl |
2528 | +595 7.66 SsUgYEgGeoyeplTRwzCo |
2529 | +770 6.80 UfqwSLLnBKFaXlLKKrxT |
2530 | +233 9.72 UnZMYddFVcZPPeXAImUS |
2531 | +702 5.33 flGTAxeTnCqadOQtSnrW |
2532 | +321 3.46 FdeSJuoilQFEnvPEeUTK |
2533 | +414 5.32 ZdcWNHVDeChZApGIwZVj |
2534 | +286 0.13 IsBLSOqofXnTkmdlYAje |
2535 | +12 1.14 GWBGjxElgTtdyymPrYqL |
2536 | +762 4.79 zKDtccjjTIefbRwTeojR |
2537 | +640 2.33 bCtakLuWwVeywsKqrLdP |
2538 | +872 0.61 TPznbeuhfEdJISxzOjjN |
2539 | +736 0.72 huQFpeDjvjzdKYjPrCbO |
2540 | +340 9.90 sXEvHgUlIxtFtIklyEUl |
2541 | +730 5.89 clEIgBdirtYkgXsuryAH |
2542 | +411 6.86 uBRGAuqkEBLQGWsDiUKl |
2543 | +917 3.65 zZknJIJdXSlUCORrncWV |
2544 | +190 6.28 yYSFfGMqzOuOokGoHvHu |
2545 | +39 6.58 JCjrrHoXgELebNLFjOcS |
2546 | +454 5.89 YpacUspejlbNMtmUbOpv |
2547 | +749 7.80 EKJFAjLpGKeNbGtwsNil |
2548 | +640 4.50 oBZwZUdLHdzbrGEcvxyI |
2549 | +430 2.00 NTgyKmzIGwJfLXBWkRQt |
2550 | +505 7.89 fGMbDIHOiZdxUVNISXXw |
2551 | +880 2.19 ljKmhqeIjzljvsvemwZL |
2552 | +430 5.46 RyoGyMzLxknNVczgnAot |
2553 | +80 6.97 WWJrEgNboEpLkhuYHzvo |
2554 | +729 2.35 oKFMPUHsXnpPWrWGAFfz |
2555 | +644 0.79 ADmynCvscyBJsXmOCgoB |
2556 | +20 0.93 LjrarLhooIjmHBrCWsbS |
2557 | +749 2.32 QcWpVgStgSaohrEVMKUR |
2558 | +904 4.23 vEptXOoXtCLyniMOtAYC |
2559 | +397 9.42 FIiisBxhBecdrqtfjJSW |
2560 | +115 8.47 ZiBMZVuaqFqhCtgoWuVF |
2561 | +160 8.86 bYffCeoGSiiCNuTMagYg |
2562 | +311 1.70 QtTIiQVFwrXBxYOFxTyE |
2563 | +944 1.88 TEurBDMzyTJrDGCAzWBU |
2564 | +782 6.70 bPPKaOQSwvtNKPETlBmo |
2565 | +15 0.29 qgapCHoTDCoeoDkNuZbw |
2566 | +770 1.85 qoRhigPWcPpYFqIJfzCH |
2567 | +853 4.29 FouHQmvyPoXebZDtiByS |
2568 | +739 5.23 lIscLaypkgzMmefRjgNH |
2569 | +666 7.40 sAoneIUBaIXmCbdwomrP |
2570 | +532 8.47 XlbTgxmdnBwwLFuSxCik |
2571 | +603 7.76 gQooOPqPyORAlENfABgD |
2572 | +74 8.50 UZhRAZpWgrvTOSvUpiFA |
2573 | +174 8.17 lBJQcLsPjBPhwePTNBel |
2574 | +151 6.46 AqAFTgnrVSZlatBNOYfh |
2575 | +862 8.84 KxySyhemIiOwmAkDfWkp |
2576 | +926 7.94 UIxlLySbnGwxGvUYdhdP |
2577 | +786 3.16 JZDAyjGEjJcxlCnxxzzn |
2578 | +229 7.60 zoYamVISryvfqUDFfets |
2579 | +160 7.10 VmcKltBNFmsMKoXyCzCi |
2580 | +39 4.53 PfKbQxoANxKZtBkeMHOq |
2581 | +616 8.23 ogxAmPaHduqwtxTvLrjk |
2582 | +511 6.63 klLlFnJIdDpvtHeeSdHW |
2583 | +171 8.96 YdgLViqAdvzywmyBSiMm |
2584 | +871 9.65 TExnBkPUoWKGfzZDpoyi |
2585 | +113 3.14 OtgZXsfcBvLCdzMxBYst |
2586 | +396 1.14 UmBYWTMYrAhprBqPAqAF |
2587 | +977 9.77 gLPxyWjqzcJGhGODLFse |
2588 | +919 1.10 twRSubVFtafDSEVnYrVt |
2589 | +662 7.33 OeGjbkibAqrccNifLmrx |
2590 | +754 6.44 TaUkvWHmNczbpEEwffUM |
2591 | +722 7.40 eZdyfkMYvkGpHyvfwlUh |
2592 | +460 5.90 iZhEJwWAZQnqSBYqiICd |
2593 | +496 4.87 kwbzPhmKesfqoDjkjfBC |
2594 | +181 2.50 jqILbPIsfiEPCMtAtfiq |
2595 | +897 7.13 SlAqOFhFQXfQblbPzbrM |
2596 | +348 4.81 hDQlBgznFGAcQVeCaFtd |
2597 | +187 7.43 EYMObWOrWRDKgRNMsSzo |
2598 | +934 5.43 rYwDFXPEdEqJOwDxxTjX |
2599 | +181 5.37 ECwQivqQCZVrRtvqCAKV |
2600 | +769 8.80 nIbSAyDSZteIKkfukVZl |
2601 | +919 4.76 rvmAqHUPJvKnrpxmAPMj |
2602 | +705 9.20 vBilNKhDnCkAcDXhCLDH |
2603 | +447 6.53 xahXLjLkXvnplveQdgbP |
2604 | +332 8.46 wdwZYxZtewyydyLnRyik |
2605 | +512 3.65 OPPVCcCgOXtQDXVeWVTU |
2606 | +973 2.51 zrvAepVJkFxAAXlsgNml |
2607 | +316 9.48 ucywvQCUpuoKaAoIMpWx |
2608 | +980 4.36 HySwAocfdnHmbLpvGIRj |
2609 | +266 5.85 TeQhygiPHCPGrsyqaQnH |
2610 | +685 2.46 gWWavAEzAOaWquajoWKT |
2611 | +820 3.38 EUtmZqDBMGjGUXnWeBMA |
2612 | +300 6.57 UbAkWmCyEYqTSTLLVrTM |
2613 | +503 8.23 cQRgeVNqxhammMuGfggI |
2614 | +923 9.27 ZNbFicrbGJdPtfzencEA |
2615 | +804 9.84 dZpWhBdTnFwcZDSkveSO |
2616 | +386 8.23 kbQuVoFbDQEIBGecNejk |
2617 | +53 0.83 ntAZekjoyZSqwnWPzthC |
2618 | +819 2.74 TASFSozJXEFyRkquhrrj |
2619 | +563 8.68 OfDoFXKcZtHtKjhnzCyP |
2620 | +489 5.30 lwNuDiWhTNKYnXKcuDLR |
2621 | +702 0.74 vbSuZeATRsTuGXIupEyU |
2622 | +80 7.62 ydaNjWFvVRZRgIrsORIJ |
2623 | +901 8.22 jOqKRBjSdXOmpobcDjWl |
2624 | +169 3.10 IYjwnptZZSjoPhUSUyVF |
2625 | +331 4.25 RSObaoHCDcdNnWYEJVGc |
2626 | +75 1.63 TvgvGbheutcwdUBmzcam |
2627 | +574 7.71 RUfWWmrCRIaxCivQEzzg |
2628 | +513 6.44 EiDrvBLShPrLnwyPoyrb |
2629 | +160 6.79 RglYVbXSqKCrvVpkFKHh |
2630 | +351 6.89 CwwwSvlzlvMgXfYaDGau |
2631 | +512 8.94 eCkWDrCOelfpcueTQWMr |
2632 | +692 3.55 EFhmVNZtGEOmmhgQNYgI |
2633 | +488 7.51 xGvKtSSUPuJaeigKpzvr |
2634 | +338 9.92 VaCHRkSPzojoiApMDYef |
2635 | +826 7.59 jeyncSDvPHCSbHaPgaur |
2636 | +367 3.76 XexiyFcTilYHgdJwEvab |
2637 | +16 5.91 DTyxoowjIiXQgEMpLDhh |
2638 | +298 4.77 nNdsGAuXzGeFXlRdzfSV |
2639 | +931 0.41 oNRWNSAATghjFvQERFfD |
2640 | +694 8.77 LEWMAidjZMhzCkzkEEpN |
2641 | +6 2.74 lkeKVOFnZKuzKMFigAgg |
2642 | +454 6.11 BLrUMfsOwJddHxGYtKoT |
2643 | +477 2.99 BqqfjApFWBCNNMJlIifv |
2644 | +267 4.10 uxxRmaiwESVjKCctPBvJ |
2645 | +295 6.57 iCketfXTFRQBFPFfdbOX |
2646 | +75 0.95 lOpdYXlNpNgdmMXQCGDN |
2647 | +412 6.19 HcrSAAgWBnZLJeshnKcV |
2648 | +579 6.79 sjVJwgNuNUDfkVFyrpSm |
2649 | +386 5.66 upxIpdrfyjCtwCfXrqJy |
2650 | +47 6.00 aPPWeJCJUIXtpKnmeqKf |
2651 | +210 6.53 ERoRPgpUERSygdnrEOHs |
2652 | +885 1.94 tlcNciWFDLllMpIsyuKn |
2653 | +673 7.77 qLAUxdDaWobWjvYicMvs |
2654 | +48 6.50 qnYGfEnNpDGsOLNvHrwU |
2655 | +472 8.12 vCuXhwRzInctwjnRnfTU |
2656 | +154 4.83 WmduMrHPMUueVLIxzLxT |
2657 | +784 8.39 MYMhNkmYCXykAOpFyEFt |
2658 | +73 3.29 WdvCQNsFYhylbDoKQZni |
2659 | +992 6.46 FHUQMIWGcgMdbWfJqdAL |
2660 | +437 2.43 GvcquKiBgNVMeLyywtlE |
2661 | +487 0.77 cRPvIzDsXqZoPohdlIzN |
2662 | +354 4.44 aFjWeTulcAiCsdwZnQjI |
2663 | +64 6.29 tiekZPtZugCJnyxyRpNl |
2664 | +536 0.57 AfcyCWoZVTuzrtAgdxXh |
2665 | +609 7.86 sdXQFHXFGfkFkgfXxXOg |
2666 | +295 7.15 mnofxohdUqozGmBnrbbd |
2667 | +207 8.40 uFsscAmoswwURsTtLkuM |
2668 | +357 2.98 WVpOIEdZqaRPlnejIYSX |
2669 | +532 0.52 QPsHmLcufykATBwljQDG |
2670 | +143 5.20 xlvUXrBxAXjoUDoDQztI |
2671 | +225 9.57 XRBJUxoDzSQzUJVCASHF |
2672 | +681 1.41 NkxBrKHtmLChJKjxseaH |
2673 | +840 8.29 abxkARdGIMiQYBtCXseY |
2674 | +468 4.56 EDEADRvbXJynTSOOXzOl |
2675 | +568 4.14 ymvWEObBwkPqeYydDTCm |
2676 | +755 4.46 uZYxNpPHciRCUeVneiTA |
2677 | +71 4.50 RFaaMcAElRINKgYHgxNx |
2678 | +843 9.18 NVYzQLfutveUNBzQunHp |
2679 | +711 9.65 YyjrXkawAYSkYBUeAixA |
2680 | +718 5.46 GvADhdPByAJActNNZGyJ |
2681 | +647 0.69 VFjyLHWobDXVabQSEVZi |
2682 | +0 1.55 VCGISunAnpxINgKqeNUg |
2683 | +227 6.24 ZZlhmwmbQfweHnPChDkm |
2684 | +430 5.14 vDZeUhlsyUtCVjockEeL |
2685 | +852 4.59 rIOJLoHsarmdyxjoAzud |
2686 | +49 2.30 MndlmeetVfnqIHpXtiab |
2687 | +587 0.42 kbZCxqiIShmfatrYBgUH |
2688 | +509 4.72 aIxjRHDITEwXHscDFXfZ |
2689 | +545 8.92 gpkRZjSEygzWRvPBrMfB |
2690 | +366 7.57 kpdxbBuMBLEFgTtsmwGZ |
2691 | +134 5.37 vNfcwTTwpLFMOFjUmeJA |
2692 | +258 0.74 RDLDYZpgVevDyKugoBJy |
2693 | +64 1.55 jGvvzOTgUiDsKgjgvwhr |
2694 | +325 1.54 OfmXRoBAajlYUDKHPnMD |
2695 | +527 0.76 kiWWchRlmzhFqtJDxQin |
2696 | +106 7.74 SvJvpoNRylNrTUBNcmtH |
2697 | +705 6.77 ajSvfwpJXdiqtEBXzZiP |
2698 | +551 3.54 DKfAfKZmiacZVkljJoYg |
2699 | +897 8.36 fUfcunfweNXmdfMLzHpF |
2700 | +261 9.22 BskeJbnXXSxQFUnPoGpO |
2701 | +720 4.19 yriRxVSSBrHnZhFqctJq |
2702 | +367 8.37 bIzpQFvBVfSdNcbksXlw |
2703 | +922 5.41 KZhPxWAJhMSYPSfNeHbF |
2704 | +612 3.84 qJNgIzklSoKaWceUWvvL |
2705 | +7 2.79 PlbVQComhFXxTWGsYUUE |
2706 | +799 1.10 jiAgQwCoXsgiQmukYzRp |
2707 | +336 2.34 WcVUtAREjfpKxYwjpfFX |
2708 | +219 4.91 EzQLsudoINcHrzDUjouc |
2709 | +236 4.76 IuzIkcLKSedivWijHnRP |
2710 | +392 9.38 TGsTUbNLaufnnHOVmQvQ |
2711 | +371 6.52 oipxGWnTdpOabCTkWLUm |
2712 | +788 7.33 stkTdrbdOcZLLiftXjMv |
2713 | +230 4.98 kzrYdCpZxhyaiIRFSRsd |
2714 | +183 9.15 SrmkkApzWrZxOTGuszoK |
2715 | +964 4.34 WXQfamXYCutjEmTuEbho |
2716 | +891 6.89 NQCFqHIDzyPuTxjLJHOV |
2717 | +763 0.93 utabDJMskmdfNWcDyQXC |
2718 | +714 0.60 OqZwntqfOyrhRfiMUpKL |
2719 | +657 5.88 gEmQxzOtYkDuECqXwuLG |
2720 | +942 9.14 kVpbzwwYMPbJniQzjgFk |
2721 | +24 7.18 UbtsqaMofOCciHImDhqg |
2722 | +471 8.23 enrlpkzbOZIvjwUXTmlS |
2723 | +205 9.23 ClJQkfcHrTYekEEsPsaJ |
2724 | +939 4.57 zwQSrehzczpbkThuQfPU |
2725 | +312 2.20 poOeFKDgxqDxvrJtaluq |
2726 | +791 1.27 VUWWFIxKbOKCmbjsdomr |
2727 | +926 6.91 oMxAeQFmkErJgikTBhIy |
2728 | +197 8.95 qmnpZlDiNsWHgcTEeIkJ |
2729 | +903 0.80 TzWlyotfDJQcsDURTRAX |
2730 | +666 9.50 gNfRsmMniOzFhZejwtDB |
2731 | +821 1.77 KPXLvXfDQfcXXrOsZcXP |
2732 | +284 5.33 blACUBYIWJIcZcBwOWWG |
2733 | +492 9.94 GWiyZHfXTSOhsFbKuIhk |
2734 | +765 4.30 GBetTJgPyvkAxrXRpsJl |
2735 | +253 0.92 HIzAohqVOuEzLhMrmWHM |
2736 | +817 5.83 fKrTaePFivQaDodpUPcp |
2737 | +634 6.51 fnoBFIBLvWYcnwWmGPDW |
2738 | +856 3.74 tAdowmIYZKjoOGTwJAfO |
2739 | +96 3.51 qOtvIpGNjQMQrHSLeRUx |
2740 | +75 2.35 GlMwkqlZGvRCPRABnVgP |
2741 | +375 2.55 SJCtkjXdFWcDFgYFDPXd |
2742 | +858 3.96 MpRNSIajCaxjbWOxGeDl |
2743 | +77 4.19 tnBtDfXccMjoKXssfnTZ |
2744 | +625 2.60 clrWhxrSVdhpmMuoJqpr |
2745 | +759 7.39 BOHgQDXUYQEZCTGJEnjm |
2746 | +281 1.64 hePfEHzrcuNJCRqvBmfE |
2747 | +976 6.23 hUgIipTXKSatNHGZvnPa |
2748 | +192 8.69 KJPrLjSZTxZGLSogyfIl |
2749 | +272 9.67 suulJBidiCsxEtsLJPXz |
2750 | +784 9.82 PuOALbofWxYYAAPFpxhu |
2751 | +742 0.46 lROKSHzHeEFyRPSoGGgq |
2752 | +427 2.99 QGZUIpDngmQfbWdLiGgF |
2753 | +431 2.85 odAeTWgMbFesukcwSGSz |
2754 | +589 8.87 LaCVLltVFubMVdTsMJaw |
2755 | +335 7.71 UIGNHghfqsRvvQysVnmC |
2756 | +123 1.61 HfCuGmJjnqZogPANFShb |
2757 | +861 2.64 kOmfuePaydwDbxqVxDkc |
2758 | +313 7.93 OZERQTeZNZsVKfoDZqii |
2759 | +89 4.10 WvfImSzUGnAqALNHKIje |
2760 | +808 1.28 QTCKhTcIUWFaVwdwmHWC |
2761 | +272 6.27 MlZrgZXkQMKRCErhnavN |
2762 | +887 9.97 vksEBVPsrIjjJEzienso |
2763 | +128 8.73 SAUsMljcuUHAeUpCfScF |
2764 | +146 9.45 yubOLwcdxuXjREUHhszB |
2765 | +133 4.92 bbqtNfbeQvPzFeKeKpNm |
2766 | +920 7.80 qcADPDdxUaPRwBUNGoPe |
2767 | +707 6.61 xWfsbVaPFalICCFNbNrF |
2768 | +944 6.10 MKDQiwtYJJoChkYVaduo |
2769 | +98 1.16 LVjBXNuotJGHfvwhbOUu |
2770 | +366 6.16 JvQWxeSMZKnvCEwWfkdO |
2771 | +238 6.33 cpBXyzqJdjSgtlADhYwn |
2772 | +664 0.65 WKTGKRELWenQpKNbBDQa |
2773 | +488 8.50 aoXWhqjECruNWEQqKogb |
2774 | +841 0.98 wRvGDWDMYxYGfZNjgPLZ |
2775 | +923 8.10 sWbpzsuxsygtdoGpNdmV |
2776 | +762 2.73 ghtVfGPxISzriCrEcRxa |
2777 | +268 6.96 eOqpdaYgWoVocwDChewK |
2778 | +712 9.80 NjCCgBXbVodOHSWyQnqI |
2779 | +851 7.52 NeuAPcRrdBTcGeDkPsjE |
2780 | +97 6.47 bzZpgZHdpJUKQBkgspIZ |
2781 | +237 9.19 WQOrhqdyoZgEVBoZtNbs |
2782 | +763 5.14 LpvjSWJPvyMpPTdRIBJh |
2783 | +952 3.31 wniuoanPhMZzVwGaZKQi |
2784 | +145 6.55 DwWThCWXkzreoyswWOcm |
2785 | +619 8.38 IcKqPCVXBefXJvEmTCWz |
2786 | +894 6.24 RszFDfdThKnkAMVgWfcY |
2787 | +411 4.68 MnidokwIgxwjlmDPHXbL |
2788 | +976 8.66 KYwtBwvUpmFBvFmclDfB |
2789 | +154 9.78 vHjmwHbimyafbDzSMGhf |
2790 | +780 5.23 cmvPpbPfgnRQyIkdPxre |
2791 | +776 6.72 jESxTrbGnbmrvfgVhIrm |
2792 | +794 0.49 nfqmJtZtxKzszwmwFbMn |
2793 | +378 2.80 APOmsppWHnyBVNaHeuis |
2794 | +240 9.22 UOnvdxPLvRdkBYyYhsGx |
2795 | +599 2.70 oMhMyuKEgNwLWlzuuRxj |
2796 | +963 9.79 lcOnqWKoBmionyzBNQGJ |
2797 | +802 0.76 vsAEnzkHaedQRrLgYYjP |
2798 | +324 9.50 wXnYxuHAYLBIERYGHgXe |
2799 | +311 2.38 nFKzDaDSwoYcHDDeIidT |
2800 | +587 7.32 eNBSPUCRyHaQSJXsGMtl |
2801 | +926 1.62 XyifJlxGaORFBsMmSgVb |
2802 | +493 7.42 MoCNJnECHicCIJHTYLsD |
2803 | +646 9.28 eHBRTtfBenbZIvQbEnmB |
2804 | +617 8.12 MnVPUntngEgmfrfjxGcI |
2805 | +376 3.00 NsSloRjlZuYLWPpyTYcx |
2806 | +284 6.61 WXVHKoxNagUgsSWiaFGR |
2807 | +490 6.48 DSdAOphODhVTRVNcvfPe |
2808 | +959 9.22 HjrqzJycSdjEEkSeEdkb |
2809 | +980 1.50 zHctjFBHUROCnUbkxQdr |
2810 | +947 2.35 oDCGDOCNUDGUabOwSqCR |
2811 | +158 8.92 esBpVVllfWfdPVVVSypg |
2812 | +166 1.50 yfFUjRZCSppnUjxBezVy |
2813 | +591 8.92 gSZzebedXBmGWKcemqol |
2814 | +211 8.83 zrrpMzIscltleXtvcKsu |
2815 | +287 9.11 cAzsUVnbDmJlyKGSVeES |
2816 | +761 7.32 pmAfNAuNBcLceuqgLwuv |
2817 | +622 9.70 wUgAVFVucWEBUNSSwkwX |
2818 | +468 3.36 NYFlnMObVgutevtdPAXN |
2819 | +529 4.88 WMfPZyGvaGbeoPTfuKNr |
2820 | +96 6.38 PSpmPerAPtqFBjNaDpwL |
2821 | +2 2.55 OjyJsmTJymhbblQDiSwd |
2822 | +3 5.75 yDjwaTlyaRKztkgbUSgt |
2823 | +893 2.14 slYhpTYbYlqbkLHMDKzc |
2824 | +524 4.92 kDEqHUcQRAZPziLXASIL |
2825 | +678 0.31 nsaLguBwtWEUFGbMYaMy |
2826 | +931 7.35 KCgquCRLjyVyPIUmDEys |
2827 | +867 8.29 NEPyfvcdZdWprkLEqMNe |
2828 | +100 1.50 hoKqHYiYEZAwzwIrkGJj |
2829 | +746 1.71 veeERjGTYnQMQfKxACdq |
2830 | +826 2.59 gQnPWlEPSQXxdxEkxiDP |
2831 | +539 1.14 oNmEyExhBdmaSYTJOXbS |
2832 | +226 8.53 NuWtUSOpVmbgfWDdOPHp |
2833 | +304 7.41 WaKFaWrBGEzySdPJToTd |
2834 | +162 8.40 XNMcOPBtZHjYIebUtthr |
2835 | +167 2.83 ksrspRMkuhQbQkMNXlVm |
2836 | +219 5.22 rWrmTqhKWQnzBxUOqKdk |
2837 | +181 3.25 qTtVLsHSJTgJELIniLrt |
2838 | +755 8.17 xPIgwGOnubwThOAgvxRX |
2839 | +907 3.80 zCEtnyUMjVYXDIdtjKqS |
2840 | +882 1.54 QwgLYXxcXuUhDdkxpmPy |
2841 | +407 8.36 sBebgTdBqvhKfbAqcJXJ |
2842 | +86 8.21 WUNPBlKGYncVtjNmiEku |
2843 | +640 0.94 FZaXSveJfSKlJGVqJshL |
2844 | +924 2.48 TrCAiDQDiBPtgiCeRWFN |
2845 | +709 6.23 IkkmqxxunVSibSDANfEi |
2846 | +702 1.60 BLTNhNPDXUnaelUaMKsQ |
2847 | +656 5.75 iSRsERaxJgmTIyqlOXfR |
2848 | +64 7.50 NfrqpSzDSrFnWNabmZtZ |
2849 | +561 6.52 BfdQGsXJJamhbGRmnZhF |
2850 | +838 9.27 gwzhOPbcHIrKlYyzylmp |
2851 | +594 3.80 zdhWVEpVkryRDDziblRT |
2852 | +431 6.68 nrWaEHIpEZqNVdrduveT |
2853 | +585 0.20 BLznkxwXmLmFAqTXtsLG |
2854 | +793 7.48 UydrggvJOmMngnjiyGby |
2855 | +711 2.60 BRQCFFLDGHmOjcCoZVeE |
2856 | +963 3.20 dYVgFIyykHShyyEWlwyq |
2857 | +699 5.90 MXmxYHqCPQTyfHjoWXNt |
2858 | +357 1.00 vcMBeilpEQVqWpWxuFPn |
2859 | +874 7.58 fgTKOTitYQwtxjyVheMi |
2860 | +657 1.56 dlGmCjxHTCEYhkqTcZqy |
2861 | +996 4.25 mFOHRuoWHrCZbqQuQWee |
2862 | +752 5.30 HPgaHJLRLTbdAqjfxrVD |
2863 | +14 6.28 hrvSDSigoTaoVrdvkIjz |
2864 | +978 7.12 qpYUewhHKGWgFYGHCKsl |
2865 | +803 8.50 KmirXHpYJFjrSUsprByY |
2866 | +794 4.80 PnirpkAFxPhXUKaRfFSh |
2867 | +255 9.16 VwMUqvdgbDiJuuuffkZA |
2868 | +576 6.63 uKxSaObMYAFWczMCcCeh |
2869 | +501 3.73 nvrjpZJXxVhHlnVRUBCg |
2870 | +747 4.77 GbkUyqSSwzRkbpRbVgUT |
2871 | +398 5.61 ZOnSftpAIYHsNrNXoRbn |
2872 | +457 0.56 lojBbBLzQYhGLhhmihVm |
2873 | +112 2.74 nfFoaFmQOwtmxQApohmS |
2874 | +586 7.25 HgLCKFiBvRwbpxSrAiNz |
2875 | +492 5.89 vDZnaFenpXvBLQrTdVEC |
2876 | +516 9.73 biXEfEzupaXgYYSGJEvj |
2877 | +464 5.30 mOxzsvtZMJXVydfYvwQt |
2878 | +912 7.33 hWoSuRVMPWUxLGYeHKWT |
2879 | +498 8.44 csEBPlIuKcPLYqFpgvPo |
2880 | +317 9.90 xjmCWWuJVyyZLJWitSJu |
2881 | +449 8.45 lbOTYARhIKjsvZrJDDLc |
2882 | +535 4.71 xNsPAvTVOJOTpbGYcaEj |
2883 | +852 2.64 gnlfHhaGDbesWXHqERdF |
2884 | +304 9.69 ZrHCaNXDmQybfSYrvTVw |
2885 | +710 3.79 dRCihjVEcQxXJWqMDxeo |
2886 | +773 2.10 jJdelWwqPoqWfTmWGsZk |
2887 | +991 1.19 NjyCjfpFZupBOpetsrAx |
2888 | +507 9.34 WMiiOWvifiwGeyPfNYED |
2889 | +358 4.97 DhZcLFRhigrudPVyhnCq |
2890 | +662 3.98 vTXayBmDNqzJlYyfWZNt |
2891 | +507 7.75 YyOLbYGdMzcWLpUEMktX |
2892 | +738 8.59 HVANysGlgsFYYENRBJLv |
2893 | +295 8.82 ySqHYVFtksJmfZxZxIKy |
2894 | +984 1.64 SZiTCEsSQYPwEKGrUzXq |
2895 | +949 7.86 yxuIlvnpyHhwgSYCqfzG |
2896 | +168 7.18 lUULhUneHMLZQSAUHBTo |
2897 | +938 2.59 hkNHgcCmoyCsEkNcpXHe |
2898 | +878 1.22 IMlcVToHOvtQoAKtOAOZ |
2899 | +824 8.25 nWoHoqzsqrgmPMHhhBvp |
2900 | +677 8.81 GFlSdWJwuDbhibVxcJIe |
2901 | +754 0.79 lswvYmUipujZGssasZZs |
2902 | +875 3.83 aIiDifayDeyznpPAyDRg |
2903 | +565 5.23 unkzeWMvdDSFoMzpIlZO |
2904 | +120 9.83 gLDFeShLWfyYDoQfCSZM |
2905 | +65 5.57 zxGFAuwltfPNhmLXwGvq |
2906 | +605 6.72 FyjqLLXbmnUFQIifLGDl |
2907 | +962 5.64 FgGVEHmXtWbTjqlpXrZR |
2908 | +687 2.50 OXpbxAdsZzKcozqKashw |
2909 | +652 6.52 EOzUuWTiGudFkdfgvJPx |
2910 | +223 7.89 eXRuLdrMRislqVSPrOPN |
2911 | +825 7.96 wRFENOLBcgIggYOGVxdG |
2912 | +8 9.47 cjhAxVamOWsSdoQNKLqn |
2913 | +153 1.80 BVUyTTLXHmVldMLlywag |
2914 | +554 9.41 RDqlVDVrrKkEeZOWHONI |
2915 | +873 7.70 QriNidzzaKAwEMcrBRxG |
2916 | +726 5.49 YWvtTmqjSduziEzYjDPa |
2917 | +945 2.38 hIybylnSCPmHuEalnKfF |
2918 | +348 3.53 oSTjhbXyDhDYPriXkdAa |
2919 | +477 3.27 uwYAVKhGuNqrASpWjbhS |
2920 | +493 6.14 CVDcxFbnNZDykZFEOxKq |
2921 | +150 9.65 PvptXpcHWiOOOpcAlfUI |
2922 | +752 6.39 ouXYOzGCgKBPjscsJgtI |
2923 | +979 0.92 SPUtqGnWEnRUqggexxLf |
2924 | +394 9.66 tkgzNvlNjKhGxjQHqMTn |
2925 | +812 1.87 ytfRgWZTrXsCbKsMaDEm |
2926 | +75 8.90 gTRNMbGxyLbKegeBqCbk |
2927 | +60 2.59 LchJepJVTxDkSNSCBjwG |
2928 | +87 9.14 pAYJtODZsmItUEbKEHPq |
2929 | +214 8.69 MDODqGCuZbSIecdcNRjh |
2930 | +444 8.64 uQLEcXkaAszAuXtekKYW |
2931 | +273 3.67 caQpkUCIMRhADFxHOJdY |
2932 | +946 1.24 KHRszujDHEqzDWiNbUqn |
2933 | +459 3.00 CMVIjthRPWCGRriRPQNN |
2934 | +838 3.11 jdoZfKkpspAMQDcCHfSO |
2935 | +147 1.18 eWcCpPBfxtvbaKguEOgL |
2936 | +250 2.65 NlstFbCiVIsbFLSsvXyF |
2937 | +218 5.64 EBmbDNcybbLkgDoQyAPX |
2938 | +155 5.94 hqISVwRJGGcUpPsogHEp |
2939 | +757 2.15 qyZiYrZQPLbfEeeVwxbM |
2940 | +808 8.64 sQkcXHKphTqmbeMoQyKd |
2941 | +611 9.94 vANiaAgfgJyRIQhLzjhq |
2942 | +901 5.89 RtElsqTRXOrJfEYyTHNC |
2943 | +907 2.16 IAcqfqbLpIvXlIMbWFIh |
2944 | +599 6.10 uQLFvJlcZYQVNFKVkEOl |
2945 | +375 6.75 sPKkvIqNzbcnlzStgfeg |
2946 | +804 3.80 qCsreKtxOTTKwbpOCcXm |
2947 | +315 3.54 WnlQWsOVYUbosaOLOPQt |
2948 | +855 1.54 OVYVpZRzjEDJrOMibrSI |
2949 | +114 6.19 xnhCusHcpzhKmNNzXMDD |
2950 | +215 0.76 DFBElSengQCWWCKGTmeR |
2951 | +268 3.28 PmfavTNRPYZgNUCZivBI |
2952 | +544 5.53 ZDlQMLtDYNCOtbKWDgOp |
2953 | +120 8.80 vrjDnCVyugNDsKiAYpjX |
2954 | +162 9.85 cAyOTlMgPyJCqigjhHoM |
2955 | +117 4.20 UKURKmjuQxiYkZbrUOiX |
2956 | +972 8.10 ClTGSsUJebREwBUInuTy |
2957 | +772 7.44 lNsiOPZvYqshrPZFnxjC |
2958 | +808 1.33 laWEnkkaRHhnTFPWSRss |
2959 | +262 9.91 EDcVzMXlCgVQtaCeEcfP |
2960 | +702 9.00 rpkEwhnPzbQWRntwGXAM |
2961 | +700 6.52 lzFVaxgJMJOuQylTAUUs |
2962 | +929 5.58 irxLUjAYvhflrKcepdWv |
2963 | +386 7.37 bHxOrDcXxHgCpswxzeRS |
2964 | +946 7.10 mjBaKAnepQGhMbykfSpq |
2965 | +24 0.72 NTcNpjIWpboDmCRCLxkk |
2966 | +997 9.97 HkufAuDNOGmetgsgwKIF |
2967 | +691 1.91 qRuqQGMxObGGbyQhOuym |
2968 | +201 1.78 lJNeEOeENEiQTAJOMtWZ |
2969 | +932 1.63 gssjKuuiBWeKuyPZlXYv |
2970 | +496 6.70 BpXVgtsjPcJKnxoTVgzP |
2971 | +511 2.65 ZhCPNTqiSrZZYwnmIcMz |
2972 | +749 5.45 CriuhVmUitYuLKqVGeeM |
2973 | +652 3.73 JrDrGnOTHMIYgYKPKxqC |
2974 | +913 2.81 sRivrqAHczXCbGLjuWiA |
2975 | +723 7.70 TVolfTbnDLkMksYKwJwp |
2976 | +821 4.13 PgplIumUlymWWvHXFaBU |
2977 | +613 0.80 VAonZFIjlIYyyaZkjLUV |
2978 | +735 5.50 ipAtfieINhaqoTCfRuMB |
2979 | +79 3.90 hnFEUemQmwYOIsNsTnWP |
2980 | +703 4.72 pOkbGLDqEmkOaUhtnFaJ |
2981 | +775 3.29 kijKDMPrtLoDPQDPPdzm |
2982 | +258 4.63 IQhyQMOQkdLgqHwsyBQF |
2983 | +800 0.26 gaozoumOTyvzXPlpmDgv |
2984 | +766 7.30 AjwjksjnSKpZHMtwrzZP |
2985 | +440 0.30 BiChKYZUvwbTQOCmgunV |
2986 | +53 9.77 gVUfBCuOjRwNTSDhZDme |
2987 | +32 9.47 ifzLoYCDjXcYHbbVyvww |
2988 | +749 0.58 dipSHODvHkBzMTiVKcvY |
2989 | +285 5.31 ygoSgfRXudzxmsqNBkEZ |
2990 | +141 1.89 AAFopiHBwWYUPjRHuWZw |
2991 | +248 5.12 KFxTsNEWrMPlCKJIkGum |
2992 | +641 4.67 TojOvtPpaqetlWlpMwcd |
2993 | +649 1.28 ywUnZMHscsXVfAVnxpuq |
2994 | +774 5.40 QProygQPJTBuvQwutgVI |
2995 | +209 2.60 ZbBaaYLvQGfKtuzTSUVt |
2996 | +860 7.59 zmpTjLLVvRjJkfpSCOWW |
2997 | +957 3.87 dKkAuKAaXEgKaMjkDagl |
2998 | +412 4.31 VxAVuOKMQYEJMOIztvOW |
2999 | +930 4.98 lNSgzbFMpKXyAmKcUhPo |
3000 | +860 9.20 NAQYwxbDUXYuZDGtAwFM |
3001 | +846 7.85 NSiFtFPljAAPIRSKrXgy |
3002 | +819 0.33 RVxYhzUvdNprbqrsnjzz |
3003 | +192 6.23 XCuUdIbEpjprxcQzTtkz |
3004 | +446 3.64 tWiNzVnUFwNtaKCbyRHA |
3005 | +452 1.48 BpBbfkMXYcGhLwtogNCN |
3006 | +580 1.56 tseDNgBeKsRorIWkfrRo |
3007 | +823 5.32 CaEbQLnvKKttrComiNct |
3008 | +776 7.79 htvnWLZUPHoCMkCjFTqa |
3009 | +107 8.55 wUZTOVqWLcqWaShSWxrr |
3010 | +122 5.35 BipUWzNXtkrWhEcMebjN |
3011 | +303 5.59 AmfLvEqQeRwGbZmLrVfS |
3012 | +262 4.38 GSwTRNmMYBOFvAlLxBdw |
3013 | +812 6.54 OvfIaKsMVvLnrkNEONQp |
3014 | +980 6.67 bVglLpqYKQAjEuMTwTdk |
3015 | +98 6.21 rFDMoKNLdhnDdAgTTgAe |
3016 | +91 8.11 WTaActKUdEikgQxNlZNC |
3017 | +283 3.62 tkHGYDapLUWEKShowzre |
3018 | +301 8.81 weLWvyBPDBcVNsVhkTgx |
3019 | +764 8.98 luWWpGgxEbsEndwRSSoC |
3020 | +976 0.40 myMJoqbDaleEXfDhDuJh |
3021 | +334 1.63 VpFHTtsUWyeIDmTPRCdN |
3022 | +879 5.64 FeMEZpbfGcJatvxvXvvG |
3023 | +458 3.58 PZbWWATDgivhdQQBycoS |
3024 | +389 3.79 YQTPfQdrfOqYZETgLmMW |
3025 | +969 8.82 jEwGRRFhFrIssnQvQfvC |
3026 | +880 3.81 hAYIuvNZMHxYckABDlOh |
3027 | +482 0.15 xZSzCFAIAnZPprYxFtpO |
3028 | +315 8.48 kwNiyIFCiILOkaRXyKpm |
3029 | +972 2.10 fgbcTJkoRRNsALhHwngZ |
3030 | +906 8.97 IdtZEgnFNzmtsEAicYlm |
3031 | +153 7.28 QBMGyWImeRrrEKEtdMYk |
3032 | +725 1.11 ABKrNPrTXbVbQYfZRdVG |
3033 | +246 7.84 BfGyFnjQkPRmbbNWUCgT |
3034 | +210 4.93 EveCQKDDLMXOzntjTmsW |
3035 | +513 1.00 BNLtwyvUlLuJxUrEdZaf |
3036 | +636 5.41 DLLkJtXfIXCAXCEbwJIw |
3037 | +252 1.28 MOojcVHswqSQxYIBOfAo |
3038 | +768 7.49 usFqWGXJdkMbMVXRYebk |
3039 | +235 6.64 bQtTNXELHzpFStdtlwRt |
3040 | +458 6.47 nBNgHCfoHHegbKFMEAEl |
3041 | +291 2.20 wYUySuiufmsRWfwQrMfj |
3042 | +212 4.30 TeUuWTTXzjhpEOoUFdCw |
3043 | +67 9.40 HbMUofhJJbzIuujOEszx |
3044 | +211 8.80 lUrYCeAhPUNbhOMGzSVs |
3045 | +75 7.30 SFUoPFeFUCpLnSVsPGrI |
3046 | +895 6.50 RdDUXXzeYdaVYSVcENHA |
3047 | +484 7.96 UJNdoiiatlqTfjAihsXE |
3048 | +774 6.80 amkNaHVMzbsbaJtNsNLp |
3049 | +960 9.45 MwIGIBdfGSHSLOMhNdFA |
3050 | +613 3.27 jLizwWOcZiwBECMDhaLS |
3051 | +198 6.80 aQFgqrbjjCYKxVElbPix |
3052 | +763 0.32 NpuoPFLKBkkJxpaZHVDP |
3053 | +233 0.91 jTzFaWskVbkNlwWMmvDp |
3054 | +474 2.73 NIfjcrWlJSAEhtAJPBsM |
3055 | +241 9.62 elsjNxvuxGKyZRwNHTvq |
3056 | +685 9.11 ctjuXmvjOWOqcHVEIEzT |
3057 | +797 0.35 apvUfTtJMDKaHNCZzLyA |
3058 | +405 1.57 KwjnJCmTlzUYoXsXEReA |
3059 | +344 8.60 XyvChRXhioGEsAGKDKZS |
3060 | +256 6.73 ovrqINvYzNaTHyZuBGMZ |
3061 | +364 1.30 CWVleOfvIkiaPqUZyJdK |
3062 | +845 6.16 xrqIYWdMJJMskdxaMWhZ |
3063 | +974 6.14 JFjbDNpaYLtvgbtItCQZ |
3064 | +819 2.40 CdrkqWiCUnMQOVjZFwey |
3065 | +285 7.26 NKHuZkNUlIfzoGhvGZNQ |
3066 | +435 6.81 DiieFEAIbWGMhrdRaPRR |
3067 | +960 1.90 nXOfUqZzHriiPAzqXlmY |
3068 | +518 8.40 yMXUXKrBfCYOphxlWQmZ |
3069 | +599 2.18 VWaVlkkHXNXQssoiVolb |
3070 | +544 5.80 MAicdYDIxNbRpfGuHspL |
3071 | +933 1.67 ZFFUKAsVWEOjbpiwIsSD |
3072 | +547 4.65 YwUJBSJdKNbJfIMSqQJk |
3073 | +185 5.62 qmEnfTsRUFqJHeeBijsQ |
3074 | +798 7.69 EWqDLYUJwrumsCSTjtMz |
3075 | +963 3.69 jwwOloyGyrSEojGfuthl |
3076 | +527 8.81 yNqQBCxVnINNBrymFAcG |
3077 | +615 6.42 pqVBjvmIvOLNLXZrqEVa |
3078 | +564 8.79 PvjyJclAHPjaOGoTJwVc |
3079 | +476 2.53 ivYxeUzAMEKUEQhqupID |
3080 | +775 8.79 JQVhTQcIMJxgvcpsveFB |
3081 | +356 8.51 hOCxGmnEdnrYcKZPxeTl |
3082 | +933 6.38 HyYEXxNvQIUBgtAqiHqP |
3083 | +734 1.25 KUjasKiikmTbOtfqTbFR |
3084 | +522 8.45 WamSGQZFHlSVurtwNRxm |
3085 | +878 3.34 ldCMEyyYjOqIKpvlIrSM |
3086 | +973 0.81 ynUbpbUhuzGREmfJpUGo |
3087 | +DROP TABLE t1; |
3088 | |
3089 | === added file 'plugin/filesystem_engine/tests/r/select_chop_line.result' |
3090 | --- plugin/filesystem_engine/tests/r/select_chop_line.result 1970-01-01 00:00:00 +0000 |
3091 | +++ plugin/filesystem_engine/tests/r/select_chop_line.result 2010-07-30 13:27:46 +0000 |
3092 | @@ -0,0 +1,9 @@ |
3093 | +DROP TABLE IF EXISTS t1; |
3094 | +CREATE TABLE t1 (c1 INT, c2 DECIMAL(3, 2)) ENGINE=FILESYSTEM,FILE="../filesystem_ln/select_chop_line.data"; |
3095 | +SELECT * FROM t1; |
3096 | +c1 c2 |
3097 | +618 9.60 |
3098 | +847 2.60 |
3099 | +814 3.25 |
3100 | +571 4.84 |
3101 | +DROP TABLE t1; |
3102 | |
3103 | === added file 'plugin/filesystem_engine/tests/r/select_cpuinfo.result' |
3104 | --- plugin/filesystem_engine/tests/r/select_cpuinfo.result 1970-01-01 00:00:00 +0000 |
3105 | +++ plugin/filesystem_engine/tests/r/select_cpuinfo.result 2010-07-30 13:27:46 +0000 |
3106 | @@ -0,0 +1,35 @@ |
3107 | +DROP TABLE IF EXISTS t1; |
3108 | +CREATE TABLE t1 (a int) ENGINE=FILESYSTEM,FILE="../filesystem_ln/select_cpuinfo.data",FORMAT="KEY_VALUE",COL_SEPARATOR=":"; |
3109 | +SELECT * FROM t1; |
3110 | +address sizes apicid bogomips cache size cache_alignment clflush size core id cpu MHz cpu cores cpu family cpuid level flags fpu fpu_exception initial apicid model model name physical id power management processor siblings stepping vendor_id wp |
3111 | +36 bits physical, 48 bits virtual 0 5999.27 6144 KB 64 64 0 2000.000 2 6 13 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 lahf_lm yes yes 0 23 Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz 0 NULL 0 2 10 GenuineIntel yes |
3112 | +36 bits physical, 48 bits virtual 1 5999.08 6144 KB 64 64 1 2000.000 2 6 13 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 lahf_lm yes yes 1 23 Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz 0 NULL 1 2 10 GenuineIntel yes |
3113 | +SHOW CREATE TABLE t1; |
3114 | +Table Create Table |
3115 | +t1 CREATE TABLE `t1` ( |
3116 | + `address sizes` varchar(34) DEFAULT NULL, |
3117 | + `apicid` varchar(2) DEFAULT NULL, |
3118 | + `bogomips` varchar(8) DEFAULT NULL, |
3119 | + `cache size` varchar(8) DEFAULT NULL, |
3120 | + `cache_alignment` varchar(3) DEFAULT NULL, |
3121 | + `clflush size` varchar(3) DEFAULT NULL, |
3122 | + `core id` varchar(2) DEFAULT NULL, |
3123 | + `cpu MHz` varchar(9) DEFAULT NULL, |
3124 | + `cpu cores` varchar(2) DEFAULT NULL, |
3125 | + `cpu family` varchar(2) DEFAULT NULL, |
3126 | + `cpuid level` varchar(3) DEFAULT NULL, |
3127 | + `flags` varchar(249) DEFAULT NULL, |
3128 | + `fpu` varchar(4) DEFAULT NULL, |
3129 | + `fpu_exception` varchar(4) DEFAULT NULL, |
3130 | + `initial apicid` varchar(2) DEFAULT NULL, |
3131 | + `model` varchar(3) DEFAULT NULL, |
3132 | + `model name` varchar(48) DEFAULT NULL, |
3133 | + `physical id` varchar(2) DEFAULT NULL, |
3134 | + `power management` varchar(1) DEFAULT NULL, |
3135 | + `processor` varchar(2) DEFAULT NULL, |
3136 | + `siblings` varchar(2) DEFAULT NULL, |
3137 | + `stepping` varchar(3) DEFAULT NULL, |
3138 | + `vendor_id` varchar(13) DEFAULT NULL, |
3139 | + `wp` varchar(4) DEFAULT NULL |
3140 | +) ENGINE=FILESYSTEM FILE='../filesystem_ln/select_cpuinfo.data' FORMAT='KEY_VALUE' COL_SEPARATOR=':' |
3141 | +DROP TABLE t1; |
3142 | |
3143 | === added file 'plugin/filesystem_engine/tests/r/select_meminfo.result' |
3144 | --- plugin/filesystem_engine/tests/r/select_meminfo.result 1970-01-01 00:00:00 +0000 |
3145 | +++ plugin/filesystem_engine/tests/r/select_meminfo.result 2010-07-30 13:27:46 +0000 |
3146 | @@ -0,0 +1,42 @@ |
3147 | +DROP TABLE IF EXISTS t1; |
3148 | +CREATE TABLE t1 (a int) ENGINE=FILESYSTEM,FILE="../filesystem_ln/select_meminfo.data",FORMAT="KEY_VALUE",COL_SEPARATOR=": "; |
3149 | +SELECT * FROM t1; |
3150 | +Active AnonPages Bounce Buffers Cached CommitLimit Committed_AS DirectMap2M DirectMap4k Dirty HugePages_Free HugePages_Rsvd HugePages_Surp HugePages_Total Hugepagesize Inactive Mapped MemFree MemTotal NFS_Unstable PageTables SReclaimable SUnreclaim Slab SwapCached SwapFree SwapTotal VmallocChunk VmallocTotal VmallocUsed Writeback WritebackTmp |
3151 | +1526364 198768 0 221004 2829356 2600136 495728 4186112 7040 1916 0 0 0 0 2048 1722772 51064 502844 4059680 0 27124 198000 12076 210076 0 570296 570296 34359655499 34359738367 82808 0 0 |
3152 | +SHOW CREATE TABLE t1; |
3153 | +Table Create Table |
3154 | +t1 CREATE TABLE `t1` ( |
3155 | + `Active` varchar(8) DEFAULT NULL, |
3156 | + `AnonPages` varchar(7) DEFAULT NULL, |
3157 | + `Bounce` varchar(2) DEFAULT NULL, |
3158 | + `Buffers` varchar(7) DEFAULT NULL, |
3159 | + `Cached` varchar(8) DEFAULT NULL, |
3160 | + `CommitLimit` varchar(8) DEFAULT NULL, |
3161 | + `Committed_AS` varchar(7) DEFAULT NULL, |
3162 | + `DirectMap2M` varchar(8) DEFAULT NULL, |
3163 | + `DirectMap4k` varchar(5) DEFAULT NULL, |
3164 | + `Dirty` varchar(5) DEFAULT NULL, |
3165 | + `HugePages_Free` varchar(2) DEFAULT NULL, |
3166 | + `HugePages_Rsvd` varchar(2) DEFAULT NULL, |
3167 | + `HugePages_Surp` varchar(2) DEFAULT NULL, |
3168 | + `HugePages_Total` varchar(2) DEFAULT NULL, |
3169 | + `Hugepagesize` varchar(5) DEFAULT NULL, |
3170 | + `Inactive` varchar(8) DEFAULT NULL, |
3171 | + `Mapped` varchar(6) DEFAULT NULL, |
3172 | + `MemFree` varchar(7) DEFAULT NULL, |
3173 | + `MemTotal` varchar(8) DEFAULT NULL, |
3174 | + `NFS_Unstable` varchar(2) DEFAULT NULL, |
3175 | + `PageTables` varchar(6) DEFAULT NULL, |
3176 | + `SReclaimable` varchar(7) DEFAULT NULL, |
3177 | + `SUnreclaim` varchar(6) DEFAULT NULL, |
3178 | + `Slab` varchar(7) DEFAULT NULL, |
3179 | + `SwapCached` varchar(2) DEFAULT NULL, |
3180 | + `SwapFree` varchar(7) DEFAULT NULL, |
3181 | + `SwapTotal` varchar(7) DEFAULT NULL, |
3182 | + `VmallocChunk` varchar(12) DEFAULT NULL, |
3183 | + `VmallocTotal` varchar(12) DEFAULT NULL, |
3184 | + `VmallocUsed` varchar(6) DEFAULT NULL, |
3185 | + `Writeback` varchar(2) DEFAULT NULL, |
3186 | + `WritebackTmp` varchar(2) DEFAULT NULL |
3187 | +) ENGINE=FILESYSTEM FILE='../filesystem_ln/select_meminfo.data' FORMAT='KEY_VALUE' COL_SEPARATOR=': ' |
3188 | +DROP TABLE t1; |
3189 | |
3190 | === added file 'plugin/filesystem_engine/tests/r/select_separator_mode_weak.result' |
3191 | --- plugin/filesystem_engine/tests/r/select_separator_mode_weak.result 1970-01-01 00:00:00 +0000 |
3192 | +++ plugin/filesystem_engine/tests/r/select_separator_mode_weak.result 2010-07-30 13:27:46 +0000 |
3193 | @@ -0,0 +1,9 @@ |
3194 | +DROP TABLE IF EXISTS t1; |
3195 | +CREATE TABLE t1 (c1 INT, c2 DECIMAL(3, 2), c3 VARCHAR(20)) ENGINE=FILESYSTEM,FILE="../filesystem_ln/select_chop_line.data",SEPARATOR_MODE=WEAK; |
3196 | +SELECT * FROM t1; |
3197 | +c1 c2 c3 |
3198 | +618 9.60 LSkNQAZjODwYvOYUeAVb |
3199 | +847 2.60 yphkuCaGsgbReRQTcUob |
3200 | +814 3.25 rJDEnFNRTVftDpWPLeRa |
3201 | +571 4.84 bjQkbVIPlNmlHpKvDBVv |
3202 | +DROP TABLE t1; |
3203 | |
3204 | === added file 'plugin/filesystem_engine/tests/r/select_short_line.result' |
3205 | --- plugin/filesystem_engine/tests/r/select_short_line.result 1970-01-01 00:00:00 +0000 |
3206 | +++ plugin/filesystem_engine/tests/r/select_short_line.result 2010-07-30 13:27:46 +0000 |
3207 | @@ -0,0 +1,9 @@ |
3208 | +DROP TABLE IF EXISTS t1; |
3209 | +CREATE TABLE t1 (c1 INT, c2 DECIMAL(3, 2), c3 VARCHAR(20)) ENGINE=FILESYSTEM,FILE="../filesystem_ln/select_short_line.data"; |
3210 | +SELECT * FROM t1; |
3211 | +c1 c2 c3 |
3212 | +618 9.60 NULL |
3213 | +847 2.60 NULL |
3214 | +814 NULL c3data |
3215 | +571 4.84 NULL |
3216 | +DROP TABLE t1; |
3217 | |
3218 | === added file 'plugin/filesystem_engine/tests/r/select_skip_blank_line.result' |
3219 | --- plugin/filesystem_engine/tests/r/select_skip_blank_line.result 1970-01-01 00:00:00 +0000 |
3220 | +++ plugin/filesystem_engine/tests/r/select_skip_blank_line.result 2010-07-30 13:27:46 +0000 |
3221 | @@ -0,0 +1,11 @@ |
3222 | +DROP TABLE IF EXISTS t1; |
3223 | +CREATE TABLE t1 (c1 INT, c2 VARCHAR(10)) ENGINE=FILESYSTEM,FILE="../filesystem_ln/select_skip_blank_line.data",ROW_SEPARATOR=";\n"; |
3224 | +SELECT * FROM t1; |
3225 | +c1 c2 |
3226 | +111 aaa |
3227 | +222 bbb |
3228 | +333 ccc |
3229 | +444 ddd |
3230 | +888 eee |
3231 | +999 fff |
3232 | +DROP TABLE t1; |
3233 | |
3234 | === added file 'plugin/filesystem_engine/tests/r/select_with_escaped_character.result' |
3235 | --- plugin/filesystem_engine/tests/r/select_with_escaped_character.result 1970-01-01 00:00:00 +0000 |
3236 | +++ plugin/filesystem_engine/tests/r/select_with_escaped_character.result 2010-07-30 13:27:46 +0000 |
3237 | @@ -0,0 +1,8 @@ |
3238 | +DROP TABLE IF EXISTS t1; |
3239 | +CREATE TABLE t1 (c1 INT, c2 VARCHAR(20), c3 INT) |
3240 | +ENGINE=FILESYSTEM,FILE="../filesystem_ln/select_with_escaped_character.data",COL_SEPARATOR=",",ESCAPED_BY="\\"; |
3241 | +SELECT * FROM t1; |
3242 | +c1 c2 c3 |
3243 | +1 one, two or three 1234 |
3244 | +2 other text 4567 |
3245 | +DROP TABLE t1; |
3246 | |
3247 | === added file 'plugin/filesystem_engine/tests/r/select_with_omit_field.result' |
3248 | --- plugin/filesystem_engine/tests/r/select_with_omit_field.result 1970-01-01 00:00:00 +0000 |
3249 | +++ plugin/filesystem_engine/tests/r/select_with_omit_field.result 2010-07-30 13:27:46 +0000 |
3250 | @@ -0,0 +1,13 @@ |
3251 | +DROP TABLE IF EXISTS t1; |
3252 | +CREATE TABLE t1 (c1 INT, c2 VARCHAR(20), |
3253 | +c3 INT, c4 VARCHAR(20), |
3254 | +c5 DECIMAL(3, 2)) |
3255 | +ENGINE=FILESYSTEM,FILE="../filesystem_ln/select_with_omit_field.data",COL_SEPARATOR="|/",ROW_SEPARATOR=";\n"; |
3256 | +SELECT * FROM t1; |
3257 | +c1 c2 c3 c4 c5 |
3258 | +111 aaa 222 bbb 4.32 |
3259 | +333 NULL 888 1.89 NULL |
3260 | +555 xxx 999 ppp 5.67 |
3261 | +NULL ddd 100 qqq 7.15 |
3262 | +999 eee 231 ooo 9.11 |
3263 | +DROP TABLE t1; |
3264 | |
3265 | === added file 'plugin/filesystem_engine/tests/r/select_with_separators.result' |
3266 | --- plugin/filesystem_engine/tests/r/select_with_separators.result 1970-01-01 00:00:00 +0000 |
3267 | +++ plugin/filesystem_engine/tests/r/select_with_separators.result 2010-07-30 13:27:46 +0000 |
3268 | @@ -0,0 +1,13 @@ |
3269 | +DROP TABLE IF EXISTS t1; |
3270 | +CREATE TABLE t1 (c1 INT, c2 VARCHAR(20), |
3271 | +c3 INT, c4 VARCHAR(20), |
3272 | +c5 DECIMAL(3, 2)) |
3273 | +ENGINE=FILESYSTEM,FILE="../filesystem_ln/select_with_separators.data",COL_SEPARATOR="|/",ROW_SEPARATOR=";\n"; |
3274 | +SELECT * FROM t1; |
3275 | +c1 c2 c3 c4 c5 |
3276 | +111 aaa 222 bbb 4.32 |
3277 | +333 zzz 888 yyy 1.89 |
3278 | +555 xxx 999 ppp 5.67 |
3279 | +777 ddd 100 qqq 7.15 |
3280 | +999 eee 231 ooo 9.11 |
3281 | +DROP TABLE t1; |
3282 | |
3283 | === added directory 'plugin/filesystem_engine/tests/t' |
3284 | === added file 'plugin/filesystem_engine/tests/t/basic_create_table-master.opt' |
3285 | --- plugin/filesystem_engine/tests/t/basic_create_table-master.opt 1970-01-01 00:00:00 +0000 |
3286 | +++ plugin/filesystem_engine/tests/t/basic_create_table-master.opt 2010-07-30 13:27:46 +0000 |
3287 | @@ -0,0 +1,1 @@ |
3288 | +--plugin_add=filesystem_engine |
3289 | |
3290 | === added file 'plugin/filesystem_engine/tests/t/basic_create_table.data' |
3291 | === added file 'plugin/filesystem_engine/tests/t/basic_create_table.test' |
3292 | --- plugin/filesystem_engine/tests/t/basic_create_table.test 1970-01-01 00:00:00 +0000 |
3293 | +++ plugin/filesystem_engine/tests/t/basic_create_table.test 2010-07-30 13:27:46 +0000 |
3294 | @@ -0,0 +1,25 @@ |
3295 | +--disable_warnings |
3296 | +DROP TABLE IF EXISTS t1; |
3297 | +--enable_warnings |
3298 | + |
3299 | +# test file not existed |
3300 | +--error 1005 |
3301 | +CREATE TABLE t1 (a INT) ENGINE=FILESYSTEM,FILE="../filesystem_ln/_FILE_NOT_EXISTED_"; |
3302 | + |
3303 | +# test col separator not empty |
3304 | +--error 1698 |
3305 | +CREATE TABLE t1 (a INT) ENGINE=FILESYSTEM,FILE="../filesystem_ln/basic_create_table.data",COL_SEPARATOR=""; |
3306 | + |
3307 | +# test row separator not empty |
3308 | +--error 1698 |
3309 | +CREATE TABLE t1 (a INT) ENGINE=FILESYSTEM,FILE="../filesystem_ln/basic_create_table.data",ROW_SEPARATOR=""; |
3310 | + |
3311 | +CREATE TABLE t1 (a INT) ENGINE=FILESYSTEM,FILE="../filesystem_ln/basic_create_table.data"; |
3312 | + |
3313 | +# test table existed |
3314 | +--error 1050 |
3315 | +CREATE TABLE t1 (a INT) ENGINE=FILESYSTEM,FILE="../filesystem_ln/basic_create_table.data"; |
3316 | + |
3317 | +SHOW CREATE TABLE t1; |
3318 | + |
3319 | +DROP TABLE t1; |
3320 | |
3321 | === added file 'plugin/filesystem_engine/tests/t/basic_delete-master.opt' |
3322 | --- plugin/filesystem_engine/tests/t/basic_delete-master.opt 1970-01-01 00:00:00 +0000 |
3323 | +++ plugin/filesystem_engine/tests/t/basic_delete-master.opt 2010-07-30 13:27:46 +0000 |
3324 | @@ -0,0 +1,1 @@ |
3325 | +--plugin_add=filesystem_engine |
3326 | |
3327 | === added file 'plugin/filesystem_engine/tests/t/basic_delete.data' |
3328 | --- plugin/filesystem_engine/tests/t/basic_delete.data 1970-01-01 00:00:00 +0000 |
3329 | +++ plugin/filesystem_engine/tests/t/basic_delete.data 2010-07-30 13:27:46 +0000 |
3330 | @@ -0,0 +1,1 @@ |
3331 | +111 aaa |
3332 | |
3333 | === added file 'plugin/filesystem_engine/tests/t/basic_delete.test' |
3334 | --- plugin/filesystem_engine/tests/t/basic_delete.test 1970-01-01 00:00:00 +0000 |
3335 | +++ plugin/filesystem_engine/tests/t/basic_delete.test 2010-07-30 13:27:46 +0000 |
3336 | @@ -0,0 +1,21 @@ |
3337 | +--disable_warnings |
3338 | +DROP TABLE IF EXISTS t1; |
3339 | +--enable_warnings |
3340 | + |
3341 | +CREATE TABLE t1 (a INT, b VARCHAR(20)) ENGINE=FILESYSTEM,FILE="../filesystem_ln/basic_delete.data"; |
3342 | + |
3343 | +INSERT INTO t1 VALUES (222, "bbb"); |
3344 | +INSERT INTO t1 VALUES (333, "ccc"); |
3345 | +INSERT INTO t1 VALUES (444, "ddd"); |
3346 | +INSERT INTO t1 VALUES (555, "eee"); |
3347 | +INSERT INTO t1 VALUES (666, "fff"); |
3348 | + |
3349 | +SELECT * FROM t1; |
3350 | + |
3351 | +DELETE FROM t1 WHERE a>=444; |
3352 | +DELETE FROM t1 WHERE b="bbb"; |
3353 | +DELETE FROM t1 WHERE a!=111; |
3354 | + |
3355 | +SELECT * FROM t1; |
3356 | + |
3357 | +DROP TABLE t1; |
3358 | |
3359 | === added file 'plugin/filesystem_engine/tests/t/basic_insert-master.opt' |
3360 | --- plugin/filesystem_engine/tests/t/basic_insert-master.opt 1970-01-01 00:00:00 +0000 |
3361 | +++ plugin/filesystem_engine/tests/t/basic_insert-master.opt 2010-07-30 13:27:46 +0000 |
3362 | @@ -0,0 +1,1 @@ |
3363 | +--plugin_add=filesystem_engine |
3364 | |
3365 | === added file 'plugin/filesystem_engine/tests/t/basic_insert.data' |
3366 | --- plugin/filesystem_engine/tests/t/basic_insert.data 1970-01-01 00:00:00 +0000 |
3367 | +++ plugin/filesystem_engine/tests/t/basic_insert.data 2010-07-30 13:27:46 +0000 |
3368 | @@ -0,0 +1,1 @@ |
3369 | +111 aaa |
3370 | |
3371 | === added file 'plugin/filesystem_engine/tests/t/basic_insert.test' |
3372 | --- plugin/filesystem_engine/tests/t/basic_insert.test 1970-01-01 00:00:00 +0000 |
3373 | +++ plugin/filesystem_engine/tests/t/basic_insert.test 2010-07-30 13:27:46 +0000 |
3374 | @@ -0,0 +1,21 @@ |
3375 | +--disable_warnings |
3376 | +DROP TABLE IF EXISTS t1; |
3377 | +--enable_warnings |
3378 | + |
3379 | +CREATE TABLE t1 (a INT, b VARCHAR(20)) ENGINE=FILESYSTEM,FILE="../filesystem_ln/basic_insert.data"; |
3380 | + |
3381 | +INSERT INTO t1 VALUES (222, "bbb"); |
3382 | +INSERT INTO t1 VALUES (333, "ccc"); |
3383 | +INSERT INTO t1 VALUES (444, "ddd"); |
3384 | +INSERT INTO t1 VALUES (555, "eee"); |
3385 | +INSERT INTO t1 VALUES (666, "fff"); |
3386 | + |
3387 | +SELECT * FROM t1; |
3388 | + |
3389 | +DELETE FROM t1; |
3390 | + |
3391 | +INSERT INTO t1 VALUES (111, "aaa"); |
3392 | + |
3393 | +SELECT * FROM t1; |
3394 | + |
3395 | +DROP TABLE t1; |
3396 | |
3397 | === added file 'plugin/filesystem_engine/tests/t/basic_select-master.opt' |
3398 | --- plugin/filesystem_engine/tests/t/basic_select-master.opt 1970-01-01 00:00:00 +0000 |
3399 | +++ plugin/filesystem_engine/tests/t/basic_select-master.opt 2010-07-30 13:27:46 +0000 |
3400 | @@ -0,0 +1,1 @@ |
3401 | +--plugin_add=filesystem_engine |
3402 | |
3403 | === added file 'plugin/filesystem_engine/tests/t/basic_select.data' |
3404 | --- plugin/filesystem_engine/tests/t/basic_select.data 1970-01-01 00:00:00 +0000 |
3405 | +++ plugin/filesystem_engine/tests/t/basic_select.data 2010-07-30 13:27:46 +0000 |
3406 | @@ -0,0 +1,9 @@ |
3407 | +999 |
3408 | +888 |
3409 | +777 |
3410 | +666 |
3411 | +555 |
3412 | +444 |
3413 | +333 |
3414 | +222 |
3415 | +111 |
3416 | |
3417 | === added file 'plugin/filesystem_engine/tests/t/basic_select.test' |
3418 | --- plugin/filesystem_engine/tests/t/basic_select.test 1970-01-01 00:00:00 +0000 |
3419 | +++ plugin/filesystem_engine/tests/t/basic_select.test 2010-07-30 13:27:46 +0000 |
3420 | @@ -0,0 +1,9 @@ |
3421 | +--disable_warnings |
3422 | +DROP TABLE IF EXISTS t1; |
3423 | +--enable_warnings |
3424 | + |
3425 | +CREATE TABLE t1 (a INT) ENGINE=FILESYSTEM,FILE="../filesystem_ln/basic_select.data"; |
3426 | + |
3427 | +SELECT * FROM t1; |
3428 | + |
3429 | +DROP TABLE t1; |
3430 | |
3431 | === added file 'plugin/filesystem_engine/tests/t/basic_update-master.opt' |
3432 | --- plugin/filesystem_engine/tests/t/basic_update-master.opt 1970-01-01 00:00:00 +0000 |
3433 | +++ plugin/filesystem_engine/tests/t/basic_update-master.opt 2010-07-30 13:27:46 +0000 |
3434 | @@ -0,0 +1,1 @@ |
3435 | +--plugin_add=filesystem_engine |
3436 | |
3437 | === added file 'plugin/filesystem_engine/tests/t/basic_update.data' |
3438 | --- plugin/filesystem_engine/tests/t/basic_update.data 1970-01-01 00:00:00 +0000 |
3439 | +++ plugin/filesystem_engine/tests/t/basic_update.data 2010-07-30 13:27:46 +0000 |
3440 | @@ -0,0 +1,1 @@ |
3441 | +111 aaa |
3442 | |
3443 | === added file 'plugin/filesystem_engine/tests/t/basic_update.test' |
3444 | --- plugin/filesystem_engine/tests/t/basic_update.test 1970-01-01 00:00:00 +0000 |
3445 | +++ plugin/filesystem_engine/tests/t/basic_update.test 2010-07-30 13:27:46 +0000 |
3446 | @@ -0,0 +1,18 @@ |
3447 | +--disable_warnings |
3448 | +DROP TABLE IF EXISTS t1; |
3449 | +--enable_warnings |
3450 | + |
3451 | +CREATE TABLE t1 (a INT, b VARCHAR(20)) ENGINE=FILESYSTEM,FILE="../filesystem_ln/basic_update.data"; |
3452 | + |
3453 | +INSERT INTO t1 VALUES (222, "bbb"); |
3454 | +INSERT INTO t1 VALUES (333, "ccc"); |
3455 | +INSERT INTO t1 VALUES (444, "ddd"); |
3456 | + |
3457 | +UPDATE t1 SET a=999 WHERE a=444; |
3458 | +UPDATE t1 SET b="zzz" WHERE a=222; |
3459 | + |
3460 | +SELECT * FROM t1; |
3461 | + |
3462 | +DELETE FROM t1 WHERE a!=111; |
3463 | + |
3464 | +DROP TABLE t1; |
3465 | |
3466 | === added file 'plugin/filesystem_engine/tests/t/multiple_update-master.opt' |
3467 | --- plugin/filesystem_engine/tests/t/multiple_update-master.opt 1970-01-01 00:00:00 +0000 |
3468 | +++ plugin/filesystem_engine/tests/t/multiple_update-master.opt 2010-07-30 13:27:46 +0000 |
3469 | @@ -0,0 +1,1 @@ |
3470 | +--plugin_add=filesystem_engine |
3471 | |
3472 | === added file 'plugin/filesystem_engine/tests/t/multiple_update.data' |
3473 | --- plugin/filesystem_engine/tests/t/multiple_update.data 1970-01-01 00:00:00 +0000 |
3474 | +++ plugin/filesystem_engine/tests/t/multiple_update.data 2010-07-30 13:27:46 +0000 |
3475 | @@ -0,0 +1,4 @@ |
3476 | +777 |
3477 | +555 |
3478 | +333 |
3479 | +111 |
3480 | |
3481 | === added file 'plugin/filesystem_engine/tests/t/multiple_update.test' |
3482 | --- plugin/filesystem_engine/tests/t/multiple_update.test 1970-01-01 00:00:00 +0000 |
3483 | +++ plugin/filesystem_engine/tests/t/multiple_update.test 2010-07-30 13:27:46 +0000 |
3484 | @@ -0,0 +1,422 @@ |
3485 | +--disable_warnings |
3486 | +DROP TABLE IF EXISTS t1; |
3487 | +--enable_warnings |
3488 | + |
3489 | +CREATE TABLE t1 (a INT) ENGINE=FILESYSTEM,FILE="../filesystem_ln/multiple_update.data"; |
3490 | + |
3491 | +connect (con1,localhost,root,,); |
3492 | +connect (con2,localhost,root,,); |
3493 | +connect (con3,localhost,root,,); |
3494 | +connect (con4,localhost,root,,); |
3495 | + |
3496 | +connection con1; |
3497 | +UPDATE t1 SET a=222 WHERE a=111; |
3498 | +UPDATE t1 SET a=111 WHERE a=222; |
3499 | +UPDATE t1 SET a=222 WHERE a=111; |
3500 | +UPDATE t1 SET a=111 WHERE a=222; |
3501 | +UPDATE t1 SET a=222 WHERE a=111; |
3502 | +UPDATE t1 SET a=111 WHERE a=222; |
3503 | +UPDATE t1 SET a=222 WHERE a=111; |
3504 | +UPDATE t1 SET a=111 WHERE a=222; |
3505 | +UPDATE t1 SET a=222 WHERE a=111; |
3506 | +UPDATE t1 SET a=111 WHERE a=222; |
3507 | +UPDATE t1 SET a=222 WHERE a=111; |
3508 | +UPDATE t1 SET a=111 WHERE a=222; |
3509 | +UPDATE t1 SET a=222 WHERE a=111; |
3510 | +UPDATE t1 SET a=111 WHERE a=222; |
3511 | +UPDATE t1 SET a=222 WHERE a=111; |
3512 | +UPDATE t1 SET a=111 WHERE a=222; |
3513 | +UPDATE t1 SET a=222 WHERE a=111; |
3514 | +UPDATE t1 SET a=111 WHERE a=222; |
3515 | +UPDATE t1 SET a=222 WHERE a=111; |
3516 | +UPDATE t1 SET a=111 WHERE a=222; |
3517 | +UPDATE t1 SET a=222 WHERE a=111; |
3518 | +UPDATE t1 SET a=111 WHERE a=222; |
3519 | +UPDATE t1 SET a=222 WHERE a=111; |
3520 | +UPDATE t1 SET a=111 WHERE a=222; |
3521 | +UPDATE t1 SET a=222 WHERE a=111; |
3522 | +UPDATE t1 SET a=111 WHERE a=222; |
3523 | +UPDATE t1 SET a=222 WHERE a=111; |
3524 | +UPDATE t1 SET a=111 WHERE a=222; |
3525 | +UPDATE t1 SET a=222 WHERE a=111; |
3526 | +UPDATE t1 SET a=111 WHERE a=222; |
3527 | +UPDATE t1 SET a=222 WHERE a=111; |
3528 | +UPDATE t1 SET a=111 WHERE a=222; |
3529 | +UPDATE t1 SET a=222 WHERE a=111; |
3530 | +UPDATE t1 SET a=111 WHERE a=222; |
3531 | +UPDATE t1 SET a=222 WHERE a=111; |
3532 | +UPDATE t1 SET a=111 WHERE a=222; |
3533 | +UPDATE t1 SET a=222 WHERE a=111; |
3534 | +UPDATE t1 SET a=111 WHERE a=222; |
3535 | +UPDATE t1 SET a=222 WHERE a=111; |
3536 | +UPDATE t1 SET a=111 WHERE a=222; |
3537 | +UPDATE t1 SET a=222 WHERE a=111; |
3538 | +UPDATE t1 SET a=111 WHERE a=222; |
3539 | +UPDATE t1 SET a=222 WHERE a=111; |
3540 | +UPDATE t1 SET a=111 WHERE a=222; |
3541 | +UPDATE t1 SET a=222 WHERE a=111; |
3542 | +UPDATE t1 SET a=111 WHERE a=222; |
3543 | +UPDATE t1 SET a=222 WHERE a=111; |
3544 | +UPDATE t1 SET a=111 WHERE a=222; |
3545 | +UPDATE t1 SET a=222 WHERE a=111; |
3546 | +UPDATE t1 SET a=111 WHERE a=222; |
3547 | +UPDATE t1 SET a=222 WHERE a=111; |
3548 | +UPDATE t1 SET a=111 WHERE a=222; |
3549 | +UPDATE t1 SET a=222 WHERE a=111; |
3550 | +UPDATE t1 SET a=111 WHERE a=222; |
3551 | +UPDATE t1 SET a=222 WHERE a=111; |
3552 | +UPDATE t1 SET a=111 WHERE a=222; |
3553 | +UPDATE t1 SET a=222 WHERE a=111; |
3554 | +UPDATE t1 SET a=111 WHERE a=222; |
3555 | +UPDATE t1 SET a=222 WHERE a=111; |
3556 | +UPDATE t1 SET a=111 WHERE a=222; |
3557 | +UPDATE t1 SET a=222 WHERE a=111; |
3558 | +UPDATE t1 SET a=111 WHERE a=222; |
3559 | +UPDATE t1 SET a=222 WHERE a=111; |
3560 | +UPDATE t1 SET a=111 WHERE a=222; |
3561 | +UPDATE t1 SET a=222 WHERE a=111; |
3562 | +UPDATE t1 SET a=111 WHERE a=222; |
3563 | +UPDATE t1 SET a=222 WHERE a=111; |
3564 | +UPDATE t1 SET a=111 WHERE a=222; |
3565 | +UPDATE t1 SET a=222 WHERE a=111; |
3566 | +UPDATE t1 SET a=111 WHERE a=222; |
3567 | +UPDATE t1 SET a=222 WHERE a=111; |
3568 | +UPDATE t1 SET a=111 WHERE a=222; |
3569 | +UPDATE t1 SET a=222 WHERE a=111; |
3570 | +UPDATE t1 SET a=111 WHERE a=222; |
3571 | +UPDATE t1 SET a=222 WHERE a=111; |
3572 | +UPDATE t1 SET a=111 WHERE a=222; |
3573 | +UPDATE t1 SET a=222 WHERE a=111; |
3574 | +UPDATE t1 SET a=111 WHERE a=222; |
3575 | +UPDATE t1 SET a=222 WHERE a=111; |
3576 | +UPDATE t1 SET a=111 WHERE a=222; |
3577 | +UPDATE t1 SET a=222 WHERE a=111; |
3578 | +UPDATE t1 SET a=111 WHERE a=222; |
3579 | +UPDATE t1 SET a=222 WHERE a=111; |
3580 | +UPDATE t1 SET a=111 WHERE a=222; |
3581 | + |
3582 | +connection con2; |
3583 | +UPDATE t1 SET a=444 WHERE a=333; |
3584 | +UPDATE t1 SET a=333 WHERE a=444; |
3585 | +UPDATE t1 SET a=444 WHERE a=333; |
3586 | +UPDATE t1 SET a=333 WHERE a=444; |
3587 | +UPDATE t1 SET a=444 WHERE a=333; |
3588 | +UPDATE t1 SET a=333 WHERE a=444; |
3589 | +UPDATE t1 SET a=444 WHERE a=333; |
3590 | +UPDATE t1 SET a=333 WHERE a=444; |
3591 | +UPDATE t1 SET a=444 WHERE a=333; |
3592 | +UPDATE t1 SET a=333 WHERE a=444; |
3593 | +UPDATE t1 SET a=444 WHERE a=333; |
3594 | +UPDATE t1 SET a=333 WHERE a=444; |
3595 | +UPDATE t1 SET a=444 WHERE a=333; |
3596 | +UPDATE t1 SET a=333 WHERE a=444; |
3597 | +UPDATE t1 SET a=444 WHERE a=333; |
3598 | +UPDATE t1 SET a=333 WHERE a=444; |
3599 | +UPDATE t1 SET a=444 WHERE a=333; |
3600 | +UPDATE t1 SET a=333 WHERE a=444; |
3601 | +UPDATE t1 SET a=444 WHERE a=333; |
3602 | +UPDATE t1 SET a=333 WHERE a=444; |
3603 | +UPDATE t1 SET a=444 WHERE a=333; |
3604 | +UPDATE t1 SET a=333 WHERE a=444; |
3605 | +UPDATE t1 SET a=444 WHERE a=333; |
3606 | +UPDATE t1 SET a=333 WHERE a=444; |
3607 | +UPDATE t1 SET a=444 WHERE a=333; |
3608 | +UPDATE t1 SET a=333 WHERE a=444; |
3609 | +UPDATE t1 SET a=444 WHERE a=333; |
3610 | +UPDATE t1 SET a=333 WHERE a=444; |
3611 | +UPDATE t1 SET a=444 WHERE a=333; |
3612 | +UPDATE t1 SET a=333 WHERE a=444; |
3613 | +UPDATE t1 SET a=444 WHERE a=333; |
3614 | +UPDATE t1 SET a=333 WHERE a=444; |
3615 | +UPDATE t1 SET a=444 WHERE a=333; |
3616 | +UPDATE t1 SET a=333 WHERE a=444; |
3617 | +UPDATE t1 SET a=444 WHERE a=333; |
3618 | +UPDATE t1 SET a=333 WHERE a=444; |
3619 | +UPDATE t1 SET a=444 WHERE a=333; |
3620 | +UPDATE t1 SET a=333 WHERE a=444; |
3621 | +UPDATE t1 SET a=444 WHERE a=333; |
3622 | +UPDATE t1 SET a=333 WHERE a=444; |
3623 | +UPDATE t1 SET a=444 WHERE a=333; |
3624 | +UPDATE t1 SET a=333 WHERE a=444; |
3625 | +UPDATE t1 SET a=444 WHERE a=333; |
3626 | +UPDATE t1 SET a=333 WHERE a=444; |
3627 | +UPDATE t1 SET a=444 WHERE a=333; |
3628 | +UPDATE t1 SET a=333 WHERE a=444; |
3629 | +UPDATE t1 SET a=444 WHERE a=333; |
3630 | +UPDATE t1 SET a=333 WHERE a=444; |
3631 | +UPDATE t1 SET a=444 WHERE a=333; |
3632 | +UPDATE t1 SET a=333 WHERE a=444; |
3633 | +UPDATE t1 SET a=444 WHERE a=333; |
3634 | +UPDATE t1 SET a=333 WHERE a=444; |
3635 | +UPDATE t1 SET a=444 WHERE a=333; |
3636 | +UPDATE t1 SET a=333 WHERE a=444; |
3637 | +UPDATE t1 SET a=444 WHERE a=333; |
3638 | +UPDATE t1 SET a=333 WHERE a=444; |
3639 | +UPDATE t1 SET a=444 WHERE a=333; |
3640 | +UPDATE t1 SET a=333 WHERE a=444; |
3641 | +UPDATE t1 SET a=444 WHERE a=333; |
3642 | +UPDATE t1 SET a=333 WHERE a=444; |
3643 | +UPDATE t1 SET a=444 WHERE a=333; |
3644 | +UPDATE t1 SET a=333 WHERE a=444; |
3645 | +UPDATE t1 SET a=444 WHERE a=333; |
3646 | +UPDATE t1 SET a=333 WHERE a=444; |
3647 | +UPDATE t1 SET a=444 WHERE a=333; |
3648 | +UPDATE t1 SET a=333 WHERE a=444; |
3649 | +UPDATE t1 SET a=444 WHERE a=333; |
3650 | +UPDATE t1 SET a=333 WHERE a=444; |
3651 | +UPDATE t1 SET a=444 WHERE a=333; |
3652 | +UPDATE t1 SET a=333 WHERE a=444; |
3653 | +UPDATE t1 SET a=444 WHERE a=333; |
3654 | +UPDATE t1 SET a=333 WHERE a=444; |
3655 | +UPDATE t1 SET a=444 WHERE a=333; |
3656 | +UPDATE t1 SET a=333 WHERE a=444; |
3657 | +UPDATE t1 SET a=444 WHERE a=333; |
3658 | +UPDATE t1 SET a=333 WHERE a=444; |
3659 | +UPDATE t1 SET a=444 WHERE a=333; |
3660 | +UPDATE t1 SET a=333 WHERE a=444; |
3661 | +UPDATE t1 SET a=444 WHERE a=333; |
3662 | +UPDATE t1 SET a=333 WHERE a=444; |
3663 | +UPDATE t1 SET a=444 WHERE a=333; |
3664 | +UPDATE t1 SET a=333 WHERE a=444; |
3665 | +UPDATE t1 SET a=444 WHERE a=333; |
3666 | +UPDATE t1 SET a=333 WHERE a=444; |
3667 | +UPDATE t1 SET a=444 WHERE a=333; |
3668 | +UPDATE t1 SET a=333 WHERE a=444; |
3669 | +UPDATE t1 SET a=444 WHERE a=333; |
3670 | +UPDATE t1 SET a=333 WHERE a=444; |
3671 | +UPDATE t1 SET a=444 WHERE a=333; |
3672 | +UPDATE t1 SET a=333 WHERE a=444; |
3673 | +UPDATE t1 SET a=444 WHERE a=333; |
3674 | +UPDATE t1 SET a=333 WHERE a=444; |
3675 | +UPDATE t1 SET a=444 WHERE a=333; |
3676 | +UPDATE t1 SET a=333 WHERE a=444; |
3677 | +UPDATE t1 SET a=444 WHERE a=333; |
3678 | +UPDATE t1 SET a=333 WHERE a=444; |
3679 | +UPDATE t1 SET a=444 WHERE a=333; |
3680 | +UPDATE t1 SET a=333 WHERE a=444; |
3681 | +UPDATE t1 SET a=444 WHERE a=333; |
3682 | +UPDATE t1 SET a=333 WHERE a=444; |
3683 | +UPDATE t1 SET a=444 WHERE a=333; |
3684 | +UPDATE t1 SET a=333 WHERE a=444; |
3685 | +UPDATE t1 SET a=444 WHERE a=333; |
3686 | +UPDATE t1 SET a=333 WHERE a=444; |
3687 | + |
3688 | +connection con3; |
3689 | +UPDATE t1 SET a=666 WHERE a=555; |
3690 | +UPDATE t1 SET a=555 WHERE a=666; |
3691 | +UPDATE t1 SET a=666 WHERE a=555; |
3692 | +UPDATE t1 SET a=555 WHERE a=666; |
3693 | +UPDATE t1 SET a=666 WHERE a=555; |
3694 | +UPDATE t1 SET a=555 WHERE a=666; |
3695 | +UPDATE t1 SET a=666 WHERE a=555; |
3696 | +UPDATE t1 SET a=555 WHERE a=666; |
3697 | +UPDATE t1 SET a=666 WHERE a=555; |
3698 | +UPDATE t1 SET a=555 WHERE a=666; |
3699 | +UPDATE t1 SET a=666 WHERE a=555; |
3700 | +UPDATE t1 SET a=555 WHERE a=666; |
3701 | +UPDATE t1 SET a=666 WHERE a=555; |
3702 | +UPDATE t1 SET a=555 WHERE a=666; |
3703 | +UPDATE t1 SET a=666 WHERE a=555; |
3704 | +UPDATE t1 SET a=555 WHERE a=666; |
3705 | +UPDATE t1 SET a=666 WHERE a=555; |
3706 | +UPDATE t1 SET a=555 WHERE a=666; |
3707 | +UPDATE t1 SET a=666 WHERE a=555; |
3708 | +UPDATE t1 SET a=555 WHERE a=666; |
3709 | +UPDATE t1 SET a=666 WHERE a=555; |
3710 | +UPDATE t1 SET a=555 WHERE a=666; |
3711 | +UPDATE t1 SET a=666 WHERE a=555; |
3712 | +UPDATE t1 SET a=555 WHERE a=666; |
3713 | +UPDATE t1 SET a=666 WHERE a=555; |
3714 | +UPDATE t1 SET a=555 WHERE a=666; |
3715 | +UPDATE t1 SET a=666 WHERE a=555; |
3716 | +UPDATE t1 SET a=555 WHERE a=666; |
3717 | +UPDATE t1 SET a=666 WHERE a=555; |
3718 | +UPDATE t1 SET a=555 WHERE a=666; |
3719 | +UPDATE t1 SET a=666 WHERE a=555; |
3720 | +UPDATE t1 SET a=555 WHERE a=666; |
3721 | +UPDATE t1 SET a=666 WHERE a=555; |
3722 | +UPDATE t1 SET a=555 WHERE a=666; |
3723 | +UPDATE t1 SET a=666 WHERE a=555; |
3724 | +UPDATE t1 SET a=555 WHERE a=666; |
3725 | +UPDATE t1 SET a=666 WHERE a=555; |
3726 | +UPDATE t1 SET a=555 WHERE a=666; |
3727 | +UPDATE t1 SET a=666 WHERE a=555; |
3728 | +UPDATE t1 SET a=555 WHERE a=666; |
3729 | +UPDATE t1 SET a=666 WHERE a=555; |
3730 | +UPDATE t1 SET a=555 WHERE a=666; |
3731 | +UPDATE t1 SET a=666 WHERE a=555; |
3732 | +UPDATE t1 SET a=555 WHERE a=666; |
3733 | +UPDATE t1 SET a=666 WHERE a=555; |
3734 | +UPDATE t1 SET a=555 WHERE a=666; |
3735 | +UPDATE t1 SET a=666 WHERE a=555; |
3736 | +UPDATE t1 SET a=555 WHERE a=666; |
3737 | +UPDATE t1 SET a=666 WHERE a=555; |
3738 | +UPDATE t1 SET a=555 WHERE a=666; |
3739 | +UPDATE t1 SET a=666 WHERE a=555; |
3740 | +UPDATE t1 SET a=555 WHERE a=666; |
3741 | +UPDATE t1 SET a=666 WHERE a=555; |
3742 | +UPDATE t1 SET a=555 WHERE a=666; |
3743 | +UPDATE t1 SET a=666 WHERE a=555; |
3744 | +UPDATE t1 SET a=555 WHERE a=666; |
3745 | +UPDATE t1 SET a=666 WHERE a=555; |
3746 | +UPDATE t1 SET a=555 WHERE a=666; |
3747 | +UPDATE t1 SET a=666 WHERE a=555; |
3748 | +UPDATE t1 SET a=555 WHERE a=666; |
3749 | +UPDATE t1 SET a=666 WHERE a=555; |
3750 | +UPDATE t1 SET a=555 WHERE a=666; |
3751 | +UPDATE t1 SET a=666 WHERE a=555; |
3752 | +UPDATE t1 SET a=555 WHERE a=666; |
3753 | +UPDATE t1 SET a=666 WHERE a=555; |
3754 | +UPDATE t1 SET a=555 WHERE a=666; |
3755 | +UPDATE t1 SET a=666 WHERE a=555; |
3756 | +UPDATE t1 SET a=555 WHERE a=666; |
3757 | +UPDATE t1 SET a=666 WHERE a=555; |
3758 | +UPDATE t1 SET a=555 WHERE a=666; |
3759 | +UPDATE t1 SET a=666 WHERE a=555; |
3760 | +UPDATE t1 SET a=555 WHERE a=666; |
3761 | +UPDATE t1 SET a=666 WHERE a=555; |
3762 | +UPDATE t1 SET a=555 WHERE a=666; |
3763 | +UPDATE t1 SET a=666 WHERE a=555; |
3764 | +UPDATE t1 SET a=555 WHERE a=666; |
3765 | +UPDATE t1 SET a=666 WHERE a=555; |
3766 | +UPDATE t1 SET a=555 WHERE a=666; |
3767 | +UPDATE t1 SET a=666 WHERE a=555; |
3768 | +UPDATE t1 SET a=555 WHERE a=666; |
3769 | +UPDATE t1 SET a=666 WHERE a=555; |
3770 | +UPDATE t1 SET a=555 WHERE a=666; |
3771 | +UPDATE t1 SET a=666 WHERE a=555; |
3772 | +UPDATE t1 SET a=555 WHERE a=666; |
3773 | +UPDATE t1 SET a=666 WHERE a=555; |
3774 | +UPDATE t1 SET a=555 WHERE a=666; |
3775 | +UPDATE t1 SET a=666 WHERE a=555; |
3776 | +UPDATE t1 SET a=555 WHERE a=666; |
3777 | +UPDATE t1 SET a=666 WHERE a=555; |
3778 | +UPDATE t1 SET a=555 WHERE a=666; |
3779 | +UPDATE t1 SET a=666 WHERE a=555; |
3780 | +UPDATE t1 SET a=555 WHERE a=666; |
3781 | +UPDATE t1 SET a=666 WHERE a=555; |
3782 | +UPDATE t1 SET a=555 WHERE a=666; |
3783 | +UPDATE t1 SET a=666 WHERE a=555; |
3784 | +UPDATE t1 SET a=555 WHERE a=666; |
3785 | +UPDATE t1 SET a=666 WHERE a=555; |
3786 | +UPDATE t1 SET a=555 WHERE a=666; |
3787 | +UPDATE t1 SET a=666 WHERE a=555; |
3788 | +UPDATE t1 SET a=555 WHERE a=666; |
3789 | +UPDATE t1 SET a=666 WHERE a=555; |
3790 | +UPDATE t1 SET a=555 WHERE a=666; |
3791 | +UPDATE t1 SET a=666 WHERE a=555; |
3792 | +UPDATE t1 SET a=555 WHERE a=666; |
3793 | + |
3794 | +connection con4; |
3795 | +UPDATE t1 SET a=888 WHERE a=777; |
3796 | +UPDATE t1 SET a=777 WHERE a=888; |
3797 | +UPDATE t1 SET a=888 WHERE a=777; |
3798 | +UPDATE t1 SET a=777 WHERE a=888; |
3799 | +UPDATE t1 SET a=888 WHERE a=777; |
3800 | +UPDATE t1 SET a=777 WHERE a=888; |
3801 | +UPDATE t1 SET a=888 WHERE a=777; |
3802 | +UPDATE t1 SET a=777 WHERE a=888; |
3803 | +UPDATE t1 SET a=888 WHERE a=777; |
3804 | +UPDATE t1 SET a=777 WHERE a=888; |
3805 | +UPDATE t1 SET a=888 WHERE a=777; |
3806 | +UPDATE t1 SET a=777 WHERE a=888; |
3807 | +UPDATE t1 SET a=888 WHERE a=777; |
3808 | +UPDATE t1 SET a=777 WHERE a=888; |
3809 | +UPDATE t1 SET a=888 WHERE a=777; |
3810 | +UPDATE t1 SET a=777 WHERE a=888; |
3811 | +UPDATE t1 SET a=888 WHERE a=777; |
3812 | +UPDATE t1 SET a=777 WHERE a=888; |
3813 | +UPDATE t1 SET a=888 WHERE a=777; |
3814 | +UPDATE t1 SET a=777 WHERE a=888; |
3815 | +UPDATE t1 SET a=888 WHERE a=777; |
3816 | +UPDATE t1 SET a=777 WHERE a=888; |
3817 | +UPDATE t1 SET a=888 WHERE a=777; |
3818 | +UPDATE t1 SET a=777 WHERE a=888; |
3819 | +UPDATE t1 SET a=888 WHERE a=777; |
3820 | +UPDATE t1 SET a=777 WHERE a=888; |
3821 | +UPDATE t1 SET a=888 WHERE a=777; |
3822 | +UPDATE t1 SET a=777 WHERE a=888; |
3823 | +UPDATE t1 SET a=888 WHERE a=777; |
3824 | +UPDATE t1 SET a=777 WHERE a=888; |
3825 | +UPDATE t1 SET a=888 WHERE a=777; |
3826 | +UPDATE t1 SET a=777 WHERE a=888; |
3827 | +UPDATE t1 SET a=888 WHERE a=777; |
3828 | +UPDATE t1 SET a=777 WHERE a=888; |
3829 | +UPDATE t1 SET a=888 WHERE a=777; |
3830 | +UPDATE t1 SET a=777 WHERE a=888; |
3831 | +UPDATE t1 SET a=888 WHERE a=777; |
3832 | +UPDATE t1 SET a=777 WHERE a=888; |
3833 | +UPDATE t1 SET a=888 WHERE a=777; |
3834 | +UPDATE t1 SET a=777 WHERE a=888; |
3835 | +UPDATE t1 SET a=888 WHERE a=777; |
3836 | +UPDATE t1 SET a=777 WHERE a=888; |
3837 | +UPDATE t1 SET a=888 WHERE a=777; |
3838 | +UPDATE t1 SET a=777 WHERE a=888; |
3839 | +UPDATE t1 SET a=888 WHERE a=777; |
3840 | +UPDATE t1 SET a=777 WHERE a=888; |
3841 | +UPDATE t1 SET a=888 WHERE a=777; |
3842 | +UPDATE t1 SET a=777 WHERE a=888; |
3843 | +UPDATE t1 SET a=888 WHERE a=777; |
3844 | +UPDATE t1 SET a=777 WHERE a=888; |
3845 | +UPDATE t1 SET a=888 WHERE a=777; |
3846 | +UPDATE t1 SET a=777 WHERE a=888; |
3847 | +UPDATE t1 SET a=888 WHERE a=777; |
3848 | +UPDATE t1 SET a=777 WHERE a=888; |
3849 | +UPDATE t1 SET a=888 WHERE a=777; |
3850 | +UPDATE t1 SET a=777 WHERE a=888; |
3851 | +UPDATE t1 SET a=888 WHERE a=777; |
3852 | +UPDATE t1 SET a=777 WHERE a=888; |
3853 | +UPDATE t1 SET a=888 WHERE a=777; |
3854 | +UPDATE t1 SET a=777 WHERE a=888; |
3855 | +UPDATE t1 SET a=888 WHERE a=777; |
3856 | +UPDATE t1 SET a=777 WHERE a=888; |
3857 | +UPDATE t1 SET a=888 WHERE a=777; |
3858 | +UPDATE t1 SET a=777 WHERE a=888; |
3859 | +UPDATE t1 SET a=888 WHERE a=777; |
3860 | +UPDATE t1 SET a=777 WHERE a=888; |
3861 | +UPDATE t1 SET a=888 WHERE a=777; |
3862 | +UPDATE t1 SET a=777 WHERE a=888; |
3863 | +UPDATE t1 SET a=888 WHERE a=777; |
3864 | +UPDATE t1 SET a=777 WHERE a=888; |
3865 | +UPDATE t1 SET a=888 WHERE a=777; |
3866 | +UPDATE t1 SET a=777 WHERE a=888; |
3867 | +UPDATE t1 SET a=888 WHERE a=777; |
3868 | +UPDATE t1 SET a=777 WHERE a=888; |
3869 | +UPDATE t1 SET a=888 WHERE a=777; |
3870 | +UPDATE t1 SET a=777 WHERE a=888; |
3871 | +UPDATE t1 SET a=888 WHERE a=777; |
3872 | +UPDATE t1 SET a=777 WHERE a=888; |
3873 | +UPDATE t1 SET a=888 WHERE a=777; |
3874 | +UPDATE t1 SET a=777 WHERE a=888; |
3875 | +UPDATE t1 SET a=888 WHERE a=777; |
3876 | +UPDATE t1 SET a=777 WHERE a=888; |
3877 | +UPDATE t1 SET a=888 WHERE a=777; |
3878 | +UPDATE t1 SET a=777 WHERE a=888; |
3879 | +UPDATE t1 SET a=888 WHERE a=777; |
3880 | +UPDATE t1 SET a=777 WHERE a=888; |
3881 | +UPDATE t1 SET a=888 WHERE a=777; |
3882 | +UPDATE t1 SET a=777 WHERE a=888; |
3883 | +UPDATE t1 SET a=888 WHERE a=777; |
3884 | +UPDATE t1 SET a=777 WHERE a=888; |
3885 | +UPDATE t1 SET a=888 WHERE a=777; |
3886 | +UPDATE t1 SET a=777 WHERE a=888; |
3887 | +UPDATE t1 SET a=888 WHERE a=777; |
3888 | +UPDATE t1 SET a=777 WHERE a=888; |
3889 | +UPDATE t1 SET a=888 WHERE a=777; |
3890 | +UPDATE t1 SET a=777 WHERE a=888; |
3891 | +UPDATE t1 SET a=888 WHERE a=777; |
3892 | +UPDATE t1 SET a=777 WHERE a=888; |
3893 | +UPDATE t1 SET a=888 WHERE a=777; |
3894 | +UPDATE t1 SET a=777 WHERE a=888; |
3895 | +UPDATE t1 SET a=888 WHERE a=777; |
3896 | +UPDATE t1 SET a=777 WHERE a=888; |
3897 | + |
3898 | +connection default; |
3899 | +disconnect con1; |
3900 | +disconnect con2; |
3901 | +disconnect con3; |
3902 | +disconnect con4; |
3903 | + |
3904 | +SELECT * FROM t1 ORDER BY a; |
3905 | + |
3906 | +DROP TABLE t1; |
3907 | |
3908 | === added file 'plugin/filesystem_engine/tests/t/rnd_pos-master.opt' |
3909 | --- plugin/filesystem_engine/tests/t/rnd_pos-master.opt 1970-01-01 00:00:00 +0000 |
3910 | +++ plugin/filesystem_engine/tests/t/rnd_pos-master.opt 2010-07-30 13:27:46 +0000 |
3911 | @@ -0,0 +1,1 @@ |
3912 | +--plugin_add=filesystem_engine |
3913 | |
3914 | === added file 'plugin/filesystem_engine/tests/t/rnd_pos.data' |
3915 | === added file 'plugin/filesystem_engine/tests/t/rnd_pos.test' |
3916 | --- plugin/filesystem_engine/tests/t/rnd_pos.test 1970-01-01 00:00:00 +0000 |
3917 | +++ plugin/filesystem_engine/tests/t/rnd_pos.test 2010-07-30 13:27:46 +0000 |
3918 | @@ -0,0 +1,28 @@ |
3919 | +# |
3920 | +# borrowed from embbedded innodb test suite |
3921 | +# |
3922 | + |
3923 | +--disable_warnings |
3924 | +DROP TABLE IF EXISTS t1; |
3925 | +--enable_warnings |
3926 | + |
3927 | +CREATE TABLE t1 ( |
3928 | + aufnr VARCHAR(12) NOT NULL DEFAULT '', |
3929 | + plnfl VARCHAR(6) NOT NULL DEFAULT '', |
3930 | + vornr VARCHAR(4) NOT NULL DEFAULT '', |
3931 | + xstatus_vor INT NOT NULL DEFAULT '0' |
3932 | +) ENGINE=FILESYSTEM,FILE="../filesystem_ln/rnd_pos.data"; |
3933 | + |
3934 | +DELETE FROM t1; |
3935 | + |
3936 | +INSERT INTO t1 VALUES ('40004712','000001','0010',9); |
3937 | +INSERT INTO t1 VALUES ('40004712','000001','0020',0); |
3938 | + |
3939 | +UPDATE t1 SET t1.xstatus_vor = Greatest(t1.xstatus_vor,1) WHERE t1.aufnr = |
3940 | +"40004712" AND t1.plnfl = "000001" AND t1.vornr > "0010" ORDER BY t1.vornr |
3941 | +ASC LIMIT 1; |
3942 | + |
3943 | +SELECT * FROM t1; |
3944 | + |
3945 | +DELETE FROM t1; |
3946 | +DROP TABLE t1; |
3947 | |
3948 | === added file 'plugin/filesystem_engine/tests/t/select_big_file-master.opt' |
3949 | --- plugin/filesystem_engine/tests/t/select_big_file-master.opt 1970-01-01 00:00:00 +0000 |
3950 | +++ plugin/filesystem_engine/tests/t/select_big_file-master.opt 2010-07-30 13:27:46 +0000 |
3951 | @@ -0,0 +1,1 @@ |
3952 | +--plugin_add=filesystem_engine |
3953 | |
3954 | === added file 'plugin/filesystem_engine/tests/t/select_big_file.data' |
3955 | --- plugin/filesystem_engine/tests/t/select_big_file.data 1970-01-01 00:00:00 +0000 |
3956 | +++ plugin/filesystem_engine/tests/t/select_big_file.data 2010-07-30 13:27:46 +0000 |
3957 | @@ -0,0 +1,1000 @@ |
3958 | +192 9.4 jpBjgUdnwLxojNxvoQFX |
3959 | +618 9.60 LSkNQAZjODwYvOYUeAVb |
3960 | +847 2.60 yphkuCaGsgbReRQTcUob |
3961 | +814 3.25 rJDEnFNRTVftDpWPLeRa |
3962 | +571 4.84 bjQkbVIPlNmlHpKvDBVv |
3963 | +292 5.6 ikfinRYRKPIjJsjNXtGe |
3964 | +736 6.34 NxSIHnLbJEndkqmwZFPF |
3965 | +776 2.97 YhdGuHgspSDfPZfeSHDs |
3966 | +693 2.51 IRVxHgPmpDZDzVWReFRK |
3967 | +27 3.27 gtAvpxIwXldqKYADhkna |
3968 | +592 5.54 CEuIPODTitAOYqEQusEv |
3969 | +59 4.34 PJSVLGMjcRyqRdffDeMk |
3970 | +108 4.6 HlopFPmGpvJjdmtSlcmJ |
3971 | +183 4.57 KqHsxxrIUHTkEVHUmJUa |
3972 | +799 0.88 iARALomncGlwqWlGDfvu |
3973 | +34 2.6 qKUfyEozvawQfNySJoqF |
3974 | +622 3.31 tfdGYDefcGYveIwEgIzU |
3975 | +35 8.99 oCnDHfJLNVTcysrBRXBY |
3976 | +765 9.17 aUQUhRRYTMbDqMpLndwe |
3977 | +77 7.3 emYjkJPwamuIrPPbrzQQ |
3978 | +608 1.30 GYracqTOoUAsKQyhyrTv |
3979 | +71 9.92 wgFQfoXxyonAlQJfruiZ |
3980 | +480 9.89 vzwhdoBgcjgADPxWfRmA |
3981 | +996 3.74 nQggLzdKdXkFCjWBCPbj |
3982 | +765 2.74 DPXTTBcNawKyiAgthVVh |
3983 | +252 7.47 kSeWSMDVpMiWJQRJPcdH |
3984 | +195 9.49 NgCBvAmiGRYvooUImjPq |
3985 | +749 1.66 mhChOLdNCIkWwdxkAwYo |
3986 | +925 5.90 BpfNtOtlZQzVTFCVXryN |
3987 | +898 8.92 SExwIoHiQyUJumKmnvKg |
3988 | +62 1.75 qhpdevbKjgqZMrgbKMEc |
3989 | +419 8.68 zlBKEOoGGNPAQHuRWuAh |
3990 | +538 1.50 ZgfSjbeWkAPWvQHYwteg |
3991 | +297 7.2 vTPAUlmqQBOnBkvSitAT |
3992 | +612 4.30 VzhSsYdmdsAmYmxaCANx |
3993 | +485 0.26 RQxqgQpyrlLmKtwIyvAC |
3994 | +984 8.81 RIYiiQQTMuxEPDFrTtwt |
3995 | +275 9.39 EjyENeSSzHpKzFuFUVwh |
3996 | +709 1.66 VHVcUOsrTBxBYwZylLSy |
3997 | +314 3.80 kTajmgdMehDoMHBUpiIo |
3998 | +261 3.58 HddjywgLGBnGzFSGNClc |
3999 | +576 8.11 RrqwMWPwzKEEneiaLMJs |
4000 | +339 3.32 hkzWfriTUKqcjHrgzgzE |
4001 | +204 8.75 EkKdLmvJaYhbuZSXcvdC |
4002 | +569 7.10 jOwhQZpHMCOqHxEmMdFM |
4003 | +563 2.96 aWOcwWfOXnabektPGgKM |
4004 | +221 6.32 EjczZetUKWHOPFKzedTk |
4005 | +64 4.40 oLEjGHTKkVHgAzuDZWTi |
4006 | +990 3.32 uIbcYwWgYrVFJOHcaJNl |
4007 | +706 9.72 hRFpTOsHmnTaPWWIyNpv |
4008 | +21 3.95 tseEKNEUwtplsFPxQABr |
4009 | +256 1.70 uaVrtCMWUGpyndDouJpc |
4010 | +193 3.7 wulxTHaLUJWHZncPfdyu |
4011 | +326 6.88 ATIxHVhtJxDzCxKCkJVO |
4012 | +532 0.88 jGxbPAFdGbIofquyrqEg |
4013 | +970 4.47 EJsLdVXEaVPSXHqjsfPz |
4014 | +642 3.96 nRHrrKhutsNspLrLlFPN |
4015 | +741 0.74 gmPcoeQZQLzvPiFEJQsm |
4016 | +548 7.10 jPUBesAPDCXOExMUDAsU |
4017 | +691 2.21 mWujjRogVFQJaClsMeHj |
4018 | +698 7.29 DypRHqMfdBYLWLPiyhyL |
4019 | +748 9.81 TabdxNOFnMZGsyxSLvmV |
4020 | +888 0.35 xWvAwZWBZnMQWUsySaHg |
4021 | +328 1.6 JxVdEHzpSVCEEyuDRmPf |
4022 | +781 8.15 zhdERXUSBYSqsSXiRjJs |
4023 | +418 4.33 ymBkxrlFulEGWsHCgfFz |
4024 | +605 7.64 uHgZctYWEUcwLmnKottg |
4025 | +568 1.97 mMNkVHoXdCxgRgNaLkTO |
4026 | +391 0.71 uclHEKTLUXLBLADIgSpy |
4027 | +322 7.40 ehHcEKwmkBzunaKHRlBK |
4028 | +735 2.72 vBQxKqICfEOcRBnOLPRr |
4029 | +977 5.85 vxWkZBLAIOMZFBQWBPRz |
4030 | +655 1.38 ixdZfjUlvvYrrPHmtcbb |
4031 | +793 1.55 DLcvRJKRjKaFMMCpbLVR |
4032 | +42 7.76 EdQOUwzQItBPmvvctVZx |
4033 | +403 5.63 aAEmSBQirVlkRZKGuPZo |
4034 | +694 6.25 dNNzAvBWUZubaMjhawVk |
4035 | +96 7.6 WvCodyAPgaureBHuNSOI |
4036 | +655 7.34 LIQWyyTFoKsgBVIlMOip |
4037 | +749 3.26 otEImKHWdviBWMHnKnAy |
4038 | +392 5.70 eKTgSPSaFHlBJWhUsYcQ |
4039 | +229 3.51 RSCUAZXTpnksXIIyMNqn |
4040 | +60 3.32 heoxppRRMqVjnwLTIkzM |
4041 | +59 4.66 shFimshNjoBhtiyXHkeu |
4042 | +685 4.61 WpjzucNyNnbsYMcOHjbl |
4043 | +906 1.61 AMMYTKlHMcxrxEWzcEgl |
4044 | +452 1.17 hvIYeVQxRVjLGcMIIPlq |
4045 | +776 5.96 kbrrFqzVHBhfCeGRAidR |
4046 | +171 5.30 XIwmcpjETarpXQfWeCsf |
4047 | +889 5.18 OARTITueckClWEhGnFfG |
4048 | +209 6.95 yuAVMcZLBZOZnuqDJXtq |
4049 | +228 1.15 wzkFOcmpmkGvKfrfrMqJ |
4050 | +348 1.58 CMkNbteFRyBnKcZElcZT |
4051 | +482 1.60 XBbtwyZJSINdDKJPFBLh |
4052 | +549 6.25 POTjzYGerRZoSBXawlMW |
4053 | +482 0.38 cEseEtPoLnbEGCvmLSKC |
4054 | +311 9.99 DXzdcEyOaoQdemrFiWkb |
4055 | +978 8.49 gZjBebGdmOjoeJsgQAYx |
4056 | +675 8.76 XRaCqXGtiKmmTccyHFpV |
4057 | +343 4.98 THxNBaZxylAvUxgUiVfb |
4058 | +595 8.46 ohLRcfIjnWVYOrgWProB |
4059 | +237 5.11 HTYrsiAjtvhWzIJdLMSs |
4060 | +197 0.66 zqTBbbgaOZcjpNRcNipQ |
4061 | +504 7.50 aWkDGoCMpwTMccGwiSia |
4062 | +540 7.30 jwouGMVrewbgUiQMCtKH |
4063 | +882 7.16 xxOjEZwHEUNmrrQpdwhl |
4064 | +853 3.92 QdOAVhabDkUuaQBLXDoE |
4065 | +433 7.72 dZtxCYRmZcGgdbKvagop |
4066 | +643 0.19 jIjfjbYdFXEWlXZlnlWs |
4067 | +757 2.30 IikDjuRNvdLPttddkKjO |
4068 | +800 9.95 HnzCoSOyDuEsvfyckmHS |
4069 | +428 9.78 kTTmhNmpFkjVluKWHvtx |
4070 | +189 7.70 DBeQVZMalbmhVEsgYsbq |
4071 | +30 1.22 aKCRJXmPebvzUaQHIBHP |
4072 | +776 7.43 SrwJlmQaJTnSyRbmAWHO |
4073 | +603 5.23 QDUPvENiqcHWRmTfxaDe |
4074 | +26 1.24 UolXjCmCIQiSllznooXy |
4075 | +221 2.66 GnFWlqKKyuCdWYXkbCqt |
4076 | +108 4.20 pAnYwmpkSwOZRgwiYVWL |
4077 | +175 6.51 opEldPFkpCDsVSKRcZaW |
4078 | +324 2.71 stiTcwAYdZxbxZILylHo |
4079 | +280 5.37 ZYtykbYUBCLALVJFkirF |
4080 | +798 2.47 xYgSFtzerVqucvqIvEGr |
4081 | +897 3.17 gGEkYIvCrpIiQTzkJxxV |
4082 | +62 1.25 gGOidOOuWHbezVnTEWIq |
4083 | +620 3.0 yYdLZxIbTLUnJgQxDUmG |
4084 | +502 3.24 gjUyXarzITiqkNUPePvL |
4085 | +70 5.40 NPnxdxhkOfnKjzpJNsiU |
4086 | +204 9.11 KrJvPSsEdFSqLiXuxQiA |
4087 | +456 7.34 OXbMZUKsUSAZbOVPQIBn |
4088 | +975 7.89 kCwlsRqUGAytpCAGcxwN |
4089 | +929 3.66 NunymCZUGzUBfhmtWeNR |
4090 | +991 7.49 XPVKOhSsRghDcjftqkyS |
4091 | +437 0.51 UAXgfvYvZVyDffmqhBIS |
4092 | +440 9.25 sXzGZDTZgJAAWgqUAQTf |
4093 | +940 8.25 uKjfbnoyNyXCZvsERros |
4094 | +449 0.54 DcaJRKbcNwRwJLxKLhZf |
4095 | +673 1.64 AUnDLAhoyAhmYZnIRbhw |
4096 | +926 3.25 PWzbZhFqMyeCMWrLvVZv |
4097 | +807 5.77 NvfsIyaqQAkvzttOVkMv |
4098 | +485 7.85 YOglmchMYUvpPVLrfbSJ |
4099 | +48 6.88 bvTBWQvQKSDIeZOCWCFO |
4100 | +175 7.96 xmAknBEqJuviUaNxpljS |
4101 | +633 1.90 DvflcynsTEHwPBwOFKBN |
4102 | +92 6.50 ebZCXpoUWoVynKwUFIZn |
4103 | +498 2.13 dWSNUAKKzNRSmBIACmBE |
4104 | +151 0.34 wGiOfpmvKhvFPZxEADbR |
4105 | +548 0.12 HMEBWQahnDjYRbcsiBWU |
4106 | +711 3.16 cVbbfaLumCYjanAKrohP |
4107 | +746 3.48 dZlqLnbCyPYlFyBctmdk |
4108 | +597 4.24 BNLzfOVkAgXHMpjcqIFq |
4109 | +399 0.36 qfprAaaoVnGgdczINYFm |
4110 | +546 9.43 iTGNNVCPUrwkYbbadyKW |
4111 | +594 9.62 YkiepbdHTqBOGMaVutQh |
4112 | +371 7.81 MYLwxhHhjfVqSrozPlvR |
4113 | +309 3.56 NRMiGLKDjAYmMIiwzJhM |
4114 | +297 8.98 KEZjoQOGBHyZptWvcShi |
4115 | +119 4.75 vIlqzrkTNdmwHVyxLzCG |
4116 | +791 9.86 cBCiAmKLMiJyWzfyOrQb |
4117 | +499 4.54 yuIpPSIGjBKmmpjgtsAS |
4118 | +601 6.95 qvikjiMrezxQIQnZYKqx |
4119 | +171 6.61 IrNSAEhVPmGuopQhsiGe |
4120 | +137 7.68 RbEbHNMcCFyHHtgxbwru |
4121 | +470 1.58 DJzSuYlqXdvjJMPGwvAD |
4122 | +981 1.36 YXthDiWzZKmTFaVHXIvM |
4123 | +449 6.95 NBzYrdifSJvroerfjCrx |
4124 | +816 7.46 bGqzWGlbYVCsmBQnqeFn |
4125 | +892 1.57 lKPDCgUjWXGrXoTmqofn |
4126 | +796 0.38 hhnhhuUcZYFSXodkYozq |
4127 | +849 9.65 pQkmTlynZGroEMhQqeFV |
4128 | +978 8.22 tSRSfFdnvYJzIUCXvffS |
4129 | +817 1.30 ivnVtbbzIWzRdHWrrFNS |
4130 | +92 4.87 nLVXqazvXeIuRYKpgEVw |
4131 | +543 7.65 ytoZORdbOanKCaJnEoWx |
4132 | +3 5.96 YHGQRnNBeHPFqScDQIXb |
4133 | +644 7.62 auOOpsagsSMpXIxvNcuT |
4134 | +177 6.19 kKckdAjWPaeNfbFeylcA |
4135 | +253 6.34 xBuVMpdAWoJLXHohZQaj |
4136 | +54 2.55 ckBdUuXMWvOmUMnjtQnY |
4137 | +240 9.70 QxRyBbBeFehndsCGDzQg |
4138 | +313 5.29 gfQIQiJDpJxbASsPeaYn |
4139 | +735 1.67 olIKdcfamVrSuTFQFMIc |
4140 | +103 8.69 zvQtXyFOIMryLyDXUehS |
4141 | +295 6.40 nyEPnztubhxQBSMOqvfF |
4142 | +502 7.19 qAEFhiNyVNNQaUYRNUEg |
4143 | +513 7.34 wwAXuDbQBjFVZjsbZqNK |
4144 | +848 0.57 xguKpJPjMiZMTsymbcPo |
4145 | +751 5.94 jTiBWgYHnXNkzmlXmHuq |
4146 | +836 9.58 CnPTfaxPvUCCdRMymioa |
4147 | +455 2.69 pejDtFBUxPIxKKhMJUWs |
4148 | +861 0.22 rnWsdSZXNAuPccpGfjNU |
4149 | +26 7.61 ZzRzeEKyIOVTkWCYSYZF |
4150 | +54 0.65 gtXbYWuFVKvZjnCrJUAB |
4151 | +779 2.75 guVKPZxSmxGYMXfypSFK |
4152 | +159 3.93 AKpUxqRGiThzoxQQRROp |
4153 | +917 6.87 IGnKppqKLyvMleSpohGY |
4154 | +316 0.0 FMzIEKNXGeWgHmytBqwk |
4155 | +428 1.45 WnBnkAegeZkxeqCwmUJj |
4156 | +290 5.5 nWuIHEhhpvGEQqXIFyLO |
4157 | +948 9.94 UivnZfMKAibZsjCRCXiW |
4158 | +590 1.2 FvVXEdLxGPhErzVOXwWO |
4159 | +303 0.35 syxsPFTZcZfqsxSQuHOK |
4160 | +931 7.46 AXzLovMIsDZVnFSoLnzf |
4161 | +737 6.62 YfnLlPXRMQxAyZCUaJPP |
4162 | +259 3.96 dxPNIzgfZOKZFFdzLQJj |
4163 | +544 4.27 JjpUuBRXnPbNrMLaFoAU |
4164 | +807 6.64 hFSLCBZZmDoOzFjQnOMa |
4165 | +437 9.21 slnNrajpGjHmrPEDjyLv |
4166 | +487 3.44 zgBROXScbWoDFYwDrZZq |
4167 | +649 1.22 MyVRplRDvwckcEtcnSwL |
4168 | +755 5.11 KUQyMRwRuXVsnuxApTBB |
4169 | +751 6.26 MVbpeNaiKKOWYzsApugb |
4170 | +871 9.90 RHqbdbSECFpzqKBBQXDY |
4171 | +706 9.4 QMuhdWuocukxUQvtLeHA |
4172 | +941 7.35 bffBwXuTwyizVNyVlNAP |
4173 | +178 5.53 AGhDovrxSzyBBTylixsz |
4174 | +667 9.52 dIodUNdnPEOaluUaaqQq |
4175 | +127 0.79 nNrfQxaHaJeXunrbldTW |
4176 | +451 9.25 ujihJXZfnOueOdvPXSJO |
4177 | +620 5.83 cooShIhtOkOBrKudjGaR |
4178 | +240 8.31 oecWoiuhzPzuwOgXeyQG |
4179 | +38 0.67 jrvinjtyLPPcfnvttKKW |
4180 | +271 3.74 DbOuyotNTMTEexjZdMHE |
4181 | +313 1.73 teXwnvclJHkCiAhJhLlu |
4182 | +321 1.54 cRUfRNHbDdoVhZoqdIOj |
4183 | +621 6.16 YiNFPRBJVUgsnzLRuloF |
4184 | +369 1.43 slqjryaHUVDJhgwJASXl |
4185 | +945 2.70 sLcNjEjGvzWDmWBLiaLh |
4186 | +354 7.41 fudoFUiNtacDMhXApenm |
4187 | +189 5.62 xSZfGwrdPjmoQRhmYDcX |
4188 | +234 6.20 qMkPxrvYITMBVEYhznpF |
4189 | +749 2.32 AVoZwcBZMLgLWiOHTflR |
4190 | +866 0.61 nKZVmVoOMhxAFntgqFkT |
4191 | +785 3.48 MPDRmXTvUXuqqjESKtSN |
4192 | +608 9.92 ZzRTvbcwyQfIwuMzBXfs |
4193 | +807 2.25 fUjmfEGNWHIQGrPaXEye |
4194 | +720 1.56 NVAaIhYeHhneuljfohyp |
4195 | +683 3.12 UVKsAEIpVJmTfhURNwgW |
4196 | +659 5.41 GYkNtAnHDwqmxwffTDoe |
4197 | +656 6.69 wjLBrxtwmuRaJtMMoldU |
4198 | +900 5.13 ScAgZTpdXBxbeeJwGXDN |
4199 | +489 7.96 IbNiaXivMkITJhoTTWPk |
4200 | +437 0.20 vtXWIRaTgkFBnBfPLGFu |
4201 | +535 2.22 NakPyqNTyeqRLRvNbmed |
4202 | +761 6.2 sBwOoEdEGlNoMUqdlKtb |
4203 | +780 5.62 OublVKVZwhTLAoXxPnXX |
4204 | +529 3.73 LCmyRbilZVyeBNEoSNyw |
4205 | +502 6.70 RYvkcCNTBvoUrpZBRDPA |
4206 | +487 0.78 qnVDgcFTuKhBrngvWFYF |
4207 | +579 4.53 kRHWQhoFFBhNVlPBjxXH |
4208 | +797 1.55 ZuwmgmLGVdvarBRaprWV |
4209 | +861 4.78 FMhjmagLzxhTmZrnbibL |
4210 | +652 2.32 InRhNqlnTiHTcrVmBMwE |
4211 | +870 1.41 lFhMOGAaleKyYUToNejF |
4212 | +246 6.3 LstfbtAFDQCWSdIEOuiL |
4213 | +742 4.72 RZmyfVBggxHDeuskAIeO |
4214 | +888 6.66 CJWAxISMCUKavFGIRyIi |
4215 | +377 1.96 xVqkyBNLYUkMYdwpAgEB |
4216 | +347 0.16 MiOXVOagqkLSTzYIeSra |
4217 | +873 9.93 QwyZZFOkUHXlvqmajTuU |
4218 | +866 0.45 QfynYftmOdOhNYZABCfo |
4219 | +720 0.7 XjNbriAhLUwcRijUzwZa |
4220 | +21 8.90 cEFeZfJHGEEYHGDGDDzt |
4221 | +842 5.53 NQrkWAnXfNjmcPapfnBZ |
4222 | +395 8.26 WoObGTrswUXVocMpWzam |
4223 | +805 7.34 wkCPGHHoroEkDDGXzcuo |
4224 | +945 2.29 xgJvJcfIQmKDuaZpzqIY |
4225 | +715 5.65 xzzVjlborTJLevAptgeT |
4226 | +714 7.96 FxxJYhazQxFvKSlXXfLO |
4227 | +625 8.31 yutfvCmOfLowqxqjuMUK |
4228 | +573 9.29 EEUtQpLEUcJMBiYBGsXx |
4229 | +363 8.8 ToacrTKslmPSEuRQCJwv |
4230 | +889 2.66 yklInCiTlxnHMHlEXDQl |
4231 | +628 5.17 UTEagZGvGZfHOlDuXUKH |
4232 | +643 3.23 jcCJJeRumgaDFqcosgLJ |
4233 | +646 5.12 vVnIjqpMfSHLitIsfqMg |
4234 | +886 0.38 stfEWcbuWNitgLtTtigQ |
4235 | +363 5.93 OCMMpnvtEjbFuLgAEtkU |
4236 | +236 2.89 txucVxohWxrnUUDEMZwk |
4237 | +70 9.75 DXNLUUtrYxmkReokvALc |
4238 | +572 5.71 XeVYLrueWGiQGebWUwkW |
4239 | +434 2.10 xMTykKCEZnUmYNNOgSih |
4240 | +444 0.47 axDOmwdUffipyarAtIJu |
4241 | +454 8.23 lYuKfhOKtkPcDyaZdbmw |
4242 | +740 9.54 kUFtOgiBRUPnhLwwrgUW |
4243 | +209 2.41 JTgAfdoVfSFjTGutjAvH |
4244 | +899 3.19 eTGGqVkoDcqtTnkahxHj |
4245 | +829 3.8 OvkAywzARPbfqTPHMEXz |
4246 | +685 3.22 lmFitDYHTZambPCWjllF |
4247 | +578 7.21 MMpgfEfCkQHJtagEhoUx |
4248 | +220 3.8 JEHCPrJeyxXLhdtXGWcu |
4249 | +947 6.28 dTtJKhgwcBnipuWYxYEv |
4250 | +54 8.83 CHsmJurywDSXAsymAqOw |
4251 | +12 8.38 XISWvYQVeZocSmIrQNyj |
4252 | +577 0.34 SSjCteOgDkQPwJofWEEU |
4253 | +771 3.37 LSgNuOQFoetwCcCDtIxk |
4254 | +656 2.14 adRsvhoZHvTfLTyLqvRF |
4255 | +896 7.34 CyXBvEQSXNPNejYrjWOg |
4256 | +980 0.14 VClbFxOwvvhMxJiSoHgv |
4257 | +454 8.82 UGbZCbTYmxYfaNRvxmiZ |
4258 | +892 1.56 WQdRYorTGjnXFWlvrxgX |
4259 | +649 8.77 BuREkjbviHzhtVvaMswT |
4260 | +299 2.92 WMbmvpVWVrbMQNvnVuYb |
4261 | +866 5.15 ttVBDkjMAMBdCgbkTMTp |
4262 | +771 7.37 bWSUWyErakTnbDULvkRJ |
4263 | +748 8.59 LiodrknBJVVqOYTslJRE |
4264 | +337 1.88 GbplVMxejUlPfbxiMhmj |
4265 | +532 8.1 yeraTbSrtHHbyHnLnjvJ |
4266 | +860 1.35 qfXroMPpihOyFNlbjdRa |
4267 | +746 5.88 xwarOKMtEUqPGIDuWVbW |
4268 | +572 2.34 ysIFbYbpyVngDNdscNzE |
4269 | +693 5.56 sgWzpVDsrPedZaiuBvan |
4270 | +736 8.3 JAGQGSmeBgmMrRxLLzJi |
4271 | +411 6.69 eUMQMFlztnCXJnMhkXXV |
4272 | +605 8.43 mDmgFeyVznUDAlSEFmzX |
4273 | +882 0.77 gUJmprHdPOvzvQNKNDdV |
4274 | +136 0.35 vyoNduORlklNvHjZtoCv |
4275 | +763 9.96 RaJzaXnEfOYnReWFoyIY |
4276 | +361 4.29 klsePKOxmWGBTXZaDtPi |
4277 | +281 4.27 LqhRhVMFCxzmbvcNtOrq |
4278 | +460 4.46 sSSwfpHvdoVutckHazUt |
4279 | +621 0.40 AJfWbYHkYustCMIsEvFw |
4280 | +44 1.49 ymzIqzGZPxTUiiAotMhC |
4281 | +532 8.4 DiZFMlbWozhtkbnBpsMe |
4282 | +974 6.36 BqPaSfOGYlmrWSDuzOVz |
4283 | +257 2.98 vUprKOpULQnKAulAZpGb |
4284 | +290 8.88 kXjaEAVNSfrjqyXuNhtF |
4285 | +478 4.48 kweRAIdsBQtzcYjPpRXl |
4286 | +432 8.19 ASvAPuQuqRIZDmvTJRBd |
4287 | +12 1.74 WWIGjzlRZxbeZRmhdnhi |
4288 | +944 5.85 mdUlAggcHyZWubrvhJwR |
4289 | +724 5.29 ryHSuZWpITFwcyKWPoDa |
4290 | +813 6.86 NhLEYhuQTTCVMKBNyEED |
4291 | +568 8.99 FZiCwFYLNaMyrFxhqZJd |
4292 | +560 8.64 eZOVPGpmTmfmMrdUCcLD |
4293 | +279 7.74 ZfclbaBlhQmVvtPYOzWW |
4294 | +151 2.48 dyBMcKxXNQkYNsmuSJtV |
4295 | +281 1.45 FNQFBFHaMuooWYmgdSkw |
4296 | +945 6.30 DZzoAHcKvhNrDendccIk |
4297 | +209 2.52 nnBfHEVwRbVHQcMZWUjG |
4298 | +770 5.97 GtdxrRhaMZKOHSepPwsv |
4299 | +163 8.89 QyvjtJrpZpUjNUvrJeXB |
4300 | +325 7.43 PfKbnXWnNDidiZWNpWft |
4301 | +554 1.98 nRDXTUeiHSTwEjdZfMxn |
4302 | +372 3.16 FttOhHsHiZgZJLqfVdBN |
4303 | +931 0.83 fFCQoWnDdpeZlwbuwwWV |
4304 | +382 9.7 mXsRKrHNpGMwoZRhJTuI |
4305 | +696 0.70 OVFQBbDOjwmcGPvdRIqX |
4306 | +810 3.15 KMiKawUCvImQAFLHVGYR |
4307 | +23 4.53 UAqVGWUfVuoMZjVeknNY |
4308 | +406 1.74 WNRrxNYESOaonJgVqBgc |
4309 | +343 8.34 omnvEWQmSVklsJJpSqYw |
4310 | +966 5.48 AZzbEwxGVItDLBMoLHfE |
4311 | +448 4.23 BGBsISXvvxYCfNEzBYbG |
4312 | +495 7.68 nzvLWgwuUYrskJiTarex |
4313 | +338 9.50 HYrPfBaIEURguPWLwpGW |
4314 | +562 5.77 OwDDTnSgGEGanAAFpIuk |
4315 | +178 8.55 hgXeTKuJkPwUItJeaHuR |
4316 | +234 2.53 SvVBGkFxRXqzXZQtPeFk |
4317 | +566 7.91 UgtIXlzbAcDRyTuHYGyl |
4318 | +165 5.13 RIRuMPSDAgODegLuHYtM |
4319 | +473 0.59 VNahlMhbyNTpjbVspVuU |
4320 | +918 4.68 PnKFhrrZFjBkIXpqAtyR |
4321 | +126 1.6 JBcuGkhFlkIFUgIkjAvB |
4322 | +4 5.90 AMnTFilyyQiOLxBvkZGA |
4323 | +975 6.72 MzkWUUWzdLDtwISzNgpX |
4324 | +430 7.59 FLYVcOWRCbIBztawYsSW |
4325 | +86 6.71 JtEXDfmDuQFtPBOHgPNE |
4326 | +224 2.70 EJowYiFEYrKVvAwSEpVG |
4327 | +950 8.60 ZkRxwBNwbqVeXodSLrJb |
4328 | +348 7.65 lFqwuSEruKeNzLGzWalK |
4329 | +837 4.57 nlDzGGHykYZcqwTFnomR |
4330 | +746 7.66 rDVPgehFbohxROiTjaGy |
4331 | +603 9.53 oOdIjEKxmvfBjFuguiMZ |
4332 | +591 6.11 YOWpmqtuRQoFLnLhyasJ |
4333 | +73 2.77 pVJVLkRnwksBrTvALmrH |
4334 | +339 7.1 GTOdZJxVlKKHEtBnoGrQ |
4335 | +698 2.42 twClrIepXprGksUrGTbj |
4336 | +821 8.92 LWAgApBUUiuszjRZbLcb |
4337 | +227 9.11 JdDbFLSDUsBauYAciSrD |
4338 | +255 9.56 pDjgONKekgxqTgdzTFcH |
4339 | +794 4.66 iKLpSuRcGZuCfRHWBoDR |
4340 | +235 3.36 lMFtQpAHvaqPSWcZpoas |
4341 | +769 8.99 YdiTJnKaswltGNLuxvDQ |
4342 | +430 0.73 arcmAZXkpyeotDfRyYPA |
4343 | +788 9.17 okKxOdygEqXUeqsGcwRe |
4344 | +563 0.93 nDnKCzxXjgVPctzeQOKg |
4345 | +3 4.75 FzlYLMdjQTyTXLWKKNCB |
4346 | +483 3.20 YixdiktWavAqoojjEtWf |
4347 | +444 7.33 dBAJxPrDKUSGLgxAfVQv |
4348 | +869 4.4 HltYNXLlSwXiwVpgBmDz |
4349 | +725 9.63 ezuFHPAzKPfSKgYOBPFZ |
4350 | +164 4.70 mWppbTXlNcvIAULGoktj |
4351 | +200 1.51 GtTkJwsgvCnCuzqChotT |
4352 | +942 3.36 NrdCmmzcntFdodBhfzsH |
4353 | +736 0.2 URmRulmBtZYvTMvAwLBm |
4354 | +0 6.90 wCpVrSqORejfCTisIlxk |
4355 | +701 9.62 WjwEVffstqMHgMvAXiWe |
4356 | +834 0.44 tmogwQMMcOBywnIQamVd |
4357 | +819 9.50 ujtmbAoyYWcxaKBtsWIr |
4358 | +957 2.43 yuNsZDnTUvYBsbnjKEai |
4359 | +807 4.23 TdnQqmeRbziOXCKftSEH |
4360 | +521 5.90 ElpNMUTDRUlyzTjcbstl |
4361 | +314 8.14 pPsTWQuRUENWAWycvMos |
4362 | +217 7.62 uYTHPCMyHacNbGIJdjlD |
4363 | +626 7.86 KVvLVNeNllXwUkmQeIaV |
4364 | +490 1.41 GLQixhqPsUIKwLQSLTBy |
4365 | +838 8.25 lVUNCiPtoyRpFwJyrmyP |
4366 | +607 9.20 FatUNtpyajGldFMawXEa |
4367 | +162 2.36 unqFMicqtBhMNpoZoqQq |
4368 | +310 1.49 CcJFouEtrrblvSeFCLkm |
4369 | +10 5.22 aTuLxAJSrVZRqJkNZHry |
4370 | +127 7.73 rzJYhFwSafZwVSXWBdLG |
4371 | +750 8.4 VKcXOyaqczUEOqgTwxrf |
4372 | +307 5.18 KNvOTEPzEjNCgASnslnP |
4373 | +452 9.16 ubOLrsUNayFtfJzwSNae |
4374 | +788 5.2 urcAAWBFuQVZqzzaAhwz |
4375 | +86 2.42 WfXeFiKDcPblptymlSjM |
4376 | +657 9.49 tTTGfzqPTLLoPvTksCAd |
4377 | +362 3.98 IAEVbnwGSPOmyvJIlmTL |
4378 | +129 9.34 XRmXHyjGvUjRyZuvsZDf |
4379 | +787 9.6 GRcxDMxOiDkylniIDXiy |
4380 | +919 0.23 XJDLPHpwZxjzmcXsKRUe |
4381 | +624 5.54 abCXNSNiRDqhyJJqcCyQ |
4382 | +67 2.33 cTDSPwJrthShnetFjxti |
4383 | +838 2.89 SuqGHYfiuKNCggiRRqSh |
4384 | +373 9.61 HFPFxDOHUvtAvJfvfMay |
4385 | +559 1.85 JblTgGdfwEzNVIHBbdzy |
4386 | +983 6.61 apUPvuSZDqrmzHQjrtzl |
4387 | +850 8.3 GwOZbyHoxejRduSlSpiT |
4388 | +955 3.90 aoQwDfqIblLIVwSqTGDN |
4389 | +419 5.5 yXsNboLdXkWWfmhqDKIA |
4390 | +881 4.18 FbagsovifdcFUqrkILOA |
4391 | +97 5.25 FZyiaHPwrezjYNAArPfy |
4392 | +161 0.11 zPoinwsgdRxXAyuVdDNJ |
4393 | +241 7.84 LOLLKqdqpzfyWcdLXHKT |
4394 | +824 0.24 doaLLQoyfHFQsTZqxyBx |
4395 | +217 4.95 XXgktdeMhFEyeJwOebKQ |
4396 | +150 6.39 JJmsIVQXoWpgfYjCxSaa |
4397 | +508 1.75 GuwcWaoNaEZkQmTTAxeN |
4398 | +108 2.34 IhNbBDnVirbjzMXzRevl |
4399 | +595 7.66 SsUgYEgGeoyeplTRwzCo |
4400 | +770 6.80 UfqwSLLnBKFaXlLKKrxT |
4401 | +233 9.72 UnZMYddFVcZPPeXAImUS |
4402 | +702 5.33 flGTAxeTnCqadOQtSnrW |
4403 | +321 3.46 FdeSJuoilQFEnvPEeUTK |
4404 | +414 5.32 ZdcWNHVDeChZApGIwZVj |
4405 | +286 0.13 IsBLSOqofXnTkmdlYAje |
4406 | +12 1.14 GWBGjxElgTtdyymPrYqL |
4407 | +762 4.79 zKDtccjjTIefbRwTeojR |
4408 | +640 2.33 bCtakLuWwVeywsKqrLdP |
4409 | +872 0.61 TPznbeuhfEdJISxzOjjN |
4410 | +736 0.72 huQFpeDjvjzdKYjPrCbO |
4411 | +340 9.9 sXEvHgUlIxtFtIklyEUl |
4412 | +730 5.89 clEIgBdirtYkgXsuryAH |
4413 | +411 6.86 uBRGAuqkEBLQGWsDiUKl |
4414 | +917 3.65 zZknJIJdXSlUCORrncWV |
4415 | +190 6.28 yYSFfGMqzOuOokGoHvHu |
4416 | +39 6.58 JCjrrHoXgELebNLFjOcS |
4417 | +454 5.89 YpacUspejlbNMtmUbOpv |
4418 | +749 7.8 EKJFAjLpGKeNbGtwsNil |
4419 | +640 4.50 oBZwZUdLHdzbrGEcvxyI |
4420 | +430 2.0 NTgyKmzIGwJfLXBWkRQt |
4421 | +505 7.89 fGMbDIHOiZdxUVNISXXw |
4422 | +880 2.19 ljKmhqeIjzljvsvemwZL |
4423 | +430 5.46 RyoGyMzLxknNVczgnAot |
4424 | +80 6.97 WWJrEgNboEpLkhuYHzvo |
4425 | +729 2.35 oKFMPUHsXnpPWrWGAFfz |
4426 | +644 0.79 ADmynCvscyBJsXmOCgoB |
4427 | +20 0.93 LjrarLhooIjmHBrCWsbS |
4428 | +749 2.32 QcWpVgStgSaohrEVMKUR |
4429 | +904 4.23 vEptXOoXtCLyniMOtAYC |
4430 | +397 9.42 FIiisBxhBecdrqtfjJSW |
4431 | +115 8.47 ZiBMZVuaqFqhCtgoWuVF |
4432 | +160 8.86 bYffCeoGSiiCNuTMagYg |
4433 | +311 1.70 QtTIiQVFwrXBxYOFxTyE |
4434 | +944 1.88 TEurBDMzyTJrDGCAzWBU |
4435 | +782 6.70 bPPKaOQSwvtNKPETlBmo |
4436 | +15 0.29 qgapCHoTDCoeoDkNuZbw |
4437 | +770 1.85 qoRhigPWcPpYFqIJfzCH |
4438 | +853 4.29 FouHQmvyPoXebZDtiByS |
4439 | +739 5.23 lIscLaypkgzMmefRjgNH |
4440 | +666 7.40 sAoneIUBaIXmCbdwomrP |
4441 | +532 8.47 XlbTgxmdnBwwLFuSxCik |
4442 | +603 7.76 gQooOPqPyORAlENfABgD |
4443 | +74 8.5 UZhRAZpWgrvTOSvUpiFA |
4444 | +174 8.17 lBJQcLsPjBPhwePTNBel |
4445 | +151 6.46 AqAFTgnrVSZlatBNOYfh |
4446 | +862 8.84 KxySyhemIiOwmAkDfWkp |
4447 | +926 7.94 UIxlLySbnGwxGvUYdhdP |
4448 | +786 3.16 JZDAyjGEjJcxlCnxxzzn |
4449 | +229 7.60 zoYamVISryvfqUDFfets |
4450 | +160 7.10 VmcKltBNFmsMKoXyCzCi |
4451 | +39 4.53 PfKbQxoANxKZtBkeMHOq |
4452 | +616 8.23 ogxAmPaHduqwtxTvLrjk |
4453 | +511 6.63 klLlFnJIdDpvtHeeSdHW |
4454 | +171 8.96 YdgLViqAdvzywmyBSiMm |
4455 | +871 9.65 TExnBkPUoWKGfzZDpoyi |
4456 | +113 3.14 OtgZXsfcBvLCdzMxBYst |
4457 | +396 1.14 UmBYWTMYrAhprBqPAqAF |
4458 | +977 9.77 gLPxyWjqzcJGhGODLFse |
4459 | +919 1.1 twRSubVFtafDSEVnYrVt |
4460 | +662 7.33 OeGjbkibAqrccNifLmrx |
4461 | +754 6.44 TaUkvWHmNczbpEEwffUM |
4462 | +722 7.40 eZdyfkMYvkGpHyvfwlUh |
4463 | +460 5.9 iZhEJwWAZQnqSBYqiICd |
4464 | +496 4.87 kwbzPhmKesfqoDjkjfBC |
4465 | +181 2.50 jqILbPIsfiEPCMtAtfiq |
4466 | +897 7.13 SlAqOFhFQXfQblbPzbrM |
4467 | +348 4.81 hDQlBgznFGAcQVeCaFtd |
4468 | +187 7.43 EYMObWOrWRDKgRNMsSzo |
4469 | +934 5.43 rYwDFXPEdEqJOwDxxTjX |
4470 | +181 5.37 ECwQivqQCZVrRtvqCAKV |
4471 | +769 8.80 nIbSAyDSZteIKkfukVZl |
4472 | +919 4.76 rvmAqHUPJvKnrpxmAPMj |
4473 | +705 9.2 vBilNKhDnCkAcDXhCLDH |
4474 | +447 6.53 xahXLjLkXvnplveQdgbP |
4475 | +332 8.46 wdwZYxZtewyydyLnRyik |
4476 | +512 3.65 OPPVCcCgOXtQDXVeWVTU |
4477 | +973 2.51 zrvAepVJkFxAAXlsgNml |
4478 | +316 9.48 ucywvQCUpuoKaAoIMpWx |
4479 | +980 4.36 HySwAocfdnHmbLpvGIRj |
4480 | +266 5.85 TeQhygiPHCPGrsyqaQnH |
4481 | +685 2.46 gWWavAEzAOaWquajoWKT |
4482 | +820 3.38 EUtmZqDBMGjGUXnWeBMA |
4483 | +300 6.57 UbAkWmCyEYqTSTLLVrTM |
4484 | +503 8.23 cQRgeVNqxhammMuGfggI |
4485 | +923 9.27 ZNbFicrbGJdPtfzencEA |
4486 | +804 9.84 dZpWhBdTnFwcZDSkveSO |
4487 | +386 8.23 kbQuVoFbDQEIBGecNejk |
4488 | +53 0.83 ntAZekjoyZSqwnWPzthC |
4489 | +819 2.74 TASFSozJXEFyRkquhrrj |
4490 | +563 8.68 OfDoFXKcZtHtKjhnzCyP |
4491 | +489 5.30 lwNuDiWhTNKYnXKcuDLR |
4492 | +702 0.74 vbSuZeATRsTuGXIupEyU |
4493 | +80 7.62 ydaNjWFvVRZRgIrsORIJ |
4494 | +901 8.22 jOqKRBjSdXOmpobcDjWl |
4495 | +169 3.1 IYjwnptZZSjoPhUSUyVF |
4496 | +331 4.25 RSObaoHCDcdNnWYEJVGc |
4497 | +75 1.63 TvgvGbheutcwdUBmzcam |
4498 | +574 7.71 RUfWWmrCRIaxCivQEzzg |
4499 | +513 6.44 EiDrvBLShPrLnwyPoyrb |
4500 | +160 6.79 RglYVbXSqKCrvVpkFKHh |
4501 | +351 6.89 CwwwSvlzlvMgXfYaDGau |
4502 | +512 8.94 eCkWDrCOelfpcueTQWMr |
4503 | +692 3.55 EFhmVNZtGEOmmhgQNYgI |
4504 | +488 7.51 xGvKtSSUPuJaeigKpzvr |
4505 | +338 9.92 VaCHRkSPzojoiApMDYef |
4506 | +826 7.59 jeyncSDvPHCSbHaPgaur |
4507 | +367 3.76 XexiyFcTilYHgdJwEvab |
4508 | +16 5.91 DTyxoowjIiXQgEMpLDhh |
4509 | +298 4.77 nNdsGAuXzGeFXlRdzfSV |
4510 | +931 0.41 oNRWNSAATghjFvQERFfD |
4511 | +694 8.77 LEWMAidjZMhzCkzkEEpN |
4512 | +6 2.74 lkeKVOFnZKuzKMFigAgg |
4513 | +454 6.11 BLrUMfsOwJddHxGYtKoT |
4514 | +477 2.99 BqqfjApFWBCNNMJlIifv |
4515 | +267 4.1 uxxRmaiwESVjKCctPBvJ |
4516 | +295 6.57 iCketfXTFRQBFPFfdbOX |
4517 | +75 0.95 lOpdYXlNpNgdmMXQCGDN |
4518 | +412 6.19 HcrSAAgWBnZLJeshnKcV |
4519 | +579 6.79 sjVJwgNuNUDfkVFyrpSm |
4520 | +386 5.66 upxIpdrfyjCtwCfXrqJy |
4521 | +47 6.0 aPPWeJCJUIXtpKnmeqKf |
4522 | +210 6.53 ERoRPgpUERSygdnrEOHs |
4523 | +885 1.94 tlcNciWFDLllMpIsyuKn |
4524 | +673 7.77 qLAUxdDaWobWjvYicMvs |
4525 | +48 6.5 qnYGfEnNpDGsOLNvHrwU |
4526 | +472 8.12 vCuXhwRzInctwjnRnfTU |
4527 | +154 4.83 WmduMrHPMUueVLIxzLxT |
4528 | +784 8.39 MYMhNkmYCXykAOpFyEFt |
4529 | +73 3.29 WdvCQNsFYhylbDoKQZni |
4530 | +992 6.46 FHUQMIWGcgMdbWfJqdAL |
4531 | +437 2.43 GvcquKiBgNVMeLyywtlE |
4532 | +487 0.77 cRPvIzDsXqZoPohdlIzN |
4533 | +354 4.44 aFjWeTulcAiCsdwZnQjI |
4534 | +64 6.29 tiekZPtZugCJnyxyRpNl |
4535 | +536 0.57 AfcyCWoZVTuzrtAgdxXh |
4536 | +609 7.86 sdXQFHXFGfkFkgfXxXOg |
4537 | +295 7.15 mnofxohdUqozGmBnrbbd |
4538 | +207 8.4 uFsscAmoswwURsTtLkuM |
4539 | +357 2.98 WVpOIEdZqaRPlnejIYSX |
4540 | +532 0.52 QPsHmLcufykATBwljQDG |
4541 | +143 5.2 xlvUXrBxAXjoUDoDQztI |
4542 | +225 9.57 XRBJUxoDzSQzUJVCASHF |
4543 | +681 1.41 NkxBrKHtmLChJKjxseaH |
4544 | +840 8.29 abxkARdGIMiQYBtCXseY |
4545 | +468 4.56 EDEADRvbXJynTSOOXzOl |
4546 | +568 4.14 ymvWEObBwkPqeYydDTCm |
4547 | +755 4.46 uZYxNpPHciRCUeVneiTA |
4548 | +71 4.50 RFaaMcAElRINKgYHgxNx |
4549 | +843 9.18 NVYzQLfutveUNBzQunHp |
4550 | +711 9.65 YyjrXkawAYSkYBUeAixA |
4551 | +718 5.46 GvADhdPByAJActNNZGyJ |
4552 | +647 0.69 VFjyLHWobDXVabQSEVZi |
4553 | +0 1.55 VCGISunAnpxINgKqeNUg |
4554 | +227 6.24 ZZlhmwmbQfweHnPChDkm |
4555 | +430 5.14 vDZeUhlsyUtCVjockEeL |
4556 | +852 4.59 rIOJLoHsarmdyxjoAzud |
4557 | +49 2.30 MndlmeetVfnqIHpXtiab |
4558 | +587 0.42 kbZCxqiIShmfatrYBgUH |
4559 | +509 4.72 aIxjRHDITEwXHscDFXfZ |
4560 | +545 8.92 gpkRZjSEygzWRvPBrMfB |
4561 | +366 7.57 kpdxbBuMBLEFgTtsmwGZ |
4562 | +134 5.37 vNfcwTTwpLFMOFjUmeJA |
4563 | +258 0.74 RDLDYZpgVevDyKugoBJy |
4564 | +64 1.55 jGvvzOTgUiDsKgjgvwhr |
4565 | +325 1.54 OfmXRoBAajlYUDKHPnMD |
4566 | +527 0.76 kiWWchRlmzhFqtJDxQin |
4567 | +106 7.74 SvJvpoNRylNrTUBNcmtH |
4568 | +705 6.77 ajSvfwpJXdiqtEBXzZiP |
4569 | +551 3.54 DKfAfKZmiacZVkljJoYg |
4570 | +897 8.36 fUfcunfweNXmdfMLzHpF |
4571 | +261 9.22 BskeJbnXXSxQFUnPoGpO |
4572 | +720 4.19 yriRxVSSBrHnZhFqctJq |
4573 | +367 8.37 bIzpQFvBVfSdNcbksXlw |
4574 | +922 5.41 KZhPxWAJhMSYPSfNeHbF |
4575 | +612 3.84 qJNgIzklSoKaWceUWvvL |
4576 | +7 2.79 PlbVQComhFXxTWGsYUUE |
4577 | +799 1.1 jiAgQwCoXsgiQmukYzRp |
4578 | +336 2.34 WcVUtAREjfpKxYwjpfFX |
4579 | +219 4.91 EzQLsudoINcHrzDUjouc |
4580 | +236 4.76 IuzIkcLKSedivWijHnRP |
4581 | +392 9.38 TGsTUbNLaufnnHOVmQvQ |
4582 | +371 6.52 oipxGWnTdpOabCTkWLUm |
4583 | +788 7.33 stkTdrbdOcZLLiftXjMv |
4584 | +230 4.98 kzrYdCpZxhyaiIRFSRsd |
4585 | +183 9.15 SrmkkApzWrZxOTGuszoK |
4586 | +964 4.34 WXQfamXYCutjEmTuEbho |
4587 | +891 6.89 NQCFqHIDzyPuTxjLJHOV |
4588 | +763 0.93 utabDJMskmdfNWcDyQXC |
4589 | +714 0.6 OqZwntqfOyrhRfiMUpKL |
4590 | +657 5.88 gEmQxzOtYkDuECqXwuLG |
4591 | +942 9.14 kVpbzwwYMPbJniQzjgFk |
4592 | +24 7.18 UbtsqaMofOCciHImDhqg |
4593 | +471 8.23 enrlpkzbOZIvjwUXTmlS |
4594 | +205 9.23 ClJQkfcHrTYekEEsPsaJ |
4595 | +939 4.57 zwQSrehzczpbkThuQfPU |
4596 | +312 2.20 poOeFKDgxqDxvrJtaluq |
4597 | +791 1.27 VUWWFIxKbOKCmbjsdomr |
4598 | +926 6.91 oMxAeQFmkErJgikTBhIy |
4599 | +197 8.95 qmnpZlDiNsWHgcTEeIkJ |
4600 | +903 0.8 TzWlyotfDJQcsDURTRAX |
4601 | +666 9.50 gNfRsmMniOzFhZejwtDB |
4602 | +821 1.77 KPXLvXfDQfcXXrOsZcXP |
4603 | +284 5.33 blACUBYIWJIcZcBwOWWG |
4604 | +492 9.94 GWiyZHfXTSOhsFbKuIhk |
4605 | +765 4.30 GBetTJgPyvkAxrXRpsJl |
4606 | +253 0.92 HIzAohqVOuEzLhMrmWHM |
4607 | +817 5.83 fKrTaePFivQaDodpUPcp |
4608 | +634 6.51 fnoBFIBLvWYcnwWmGPDW |
4609 | +856 3.74 tAdowmIYZKjoOGTwJAfO |
4610 | +96 3.51 qOtvIpGNjQMQrHSLeRUx |
4611 | +75 2.35 GlMwkqlZGvRCPRABnVgP |
4612 | +375 2.55 SJCtkjXdFWcDFgYFDPXd |
4613 | +858 3.96 MpRNSIajCaxjbWOxGeDl |
4614 | +77 4.19 tnBtDfXccMjoKXssfnTZ |
4615 | +625 2.60 clrWhxrSVdhpmMuoJqpr |
4616 | +759 7.39 BOHgQDXUYQEZCTGJEnjm |
4617 | +281 1.64 hePfEHzrcuNJCRqvBmfE |
4618 | +976 6.23 hUgIipTXKSatNHGZvnPa |
4619 | +192 8.69 KJPrLjSZTxZGLSogyfIl |
4620 | +272 9.67 suulJBidiCsxEtsLJPXz |
4621 | +784 9.82 PuOALbofWxYYAAPFpxhu |
4622 | +742 0.46 lROKSHzHeEFyRPSoGGgq |
4623 | +427 2.99 QGZUIpDngmQfbWdLiGgF |
4624 | +431 2.85 odAeTWgMbFesukcwSGSz |
4625 | +589 8.87 LaCVLltVFubMVdTsMJaw |
4626 | +335 7.71 UIGNHghfqsRvvQysVnmC |
4627 | +123 1.61 HfCuGmJjnqZogPANFShb |
4628 | +861 2.64 kOmfuePaydwDbxqVxDkc |
4629 | +313 7.93 OZERQTeZNZsVKfoDZqii |
4630 | +89 4.1 WvfImSzUGnAqALNHKIje |
4631 | +808 1.28 QTCKhTcIUWFaVwdwmHWC |
4632 | +272 6.27 MlZrgZXkQMKRCErhnavN |
4633 | +887 9.97 vksEBVPsrIjjJEzienso |
4634 | +128 8.73 SAUsMljcuUHAeUpCfScF |
4635 | +146 9.45 yubOLwcdxuXjREUHhszB |
4636 | +133 4.92 bbqtNfbeQvPzFeKeKpNm |
4637 | +920 7.8 qcADPDdxUaPRwBUNGoPe |
4638 | +707 6.61 xWfsbVaPFalICCFNbNrF |
4639 | +944 6.1 MKDQiwtYJJoChkYVaduo |
4640 | +98 1.16 LVjBXNuotJGHfvwhbOUu |
4641 | +366 6.16 JvQWxeSMZKnvCEwWfkdO |
4642 | +238 6.33 cpBXyzqJdjSgtlADhYwn |
4643 | +664 0.65 WKTGKRELWenQpKNbBDQa |
4644 | +488 8.5 aoXWhqjECruNWEQqKogb |
4645 | +841 0.98 wRvGDWDMYxYGfZNjgPLZ |
4646 | +923 8.1 sWbpzsuxsygtdoGpNdmV |
4647 | +762 2.73 ghtVfGPxISzriCrEcRxa |
4648 | +268 6.96 eOqpdaYgWoVocwDChewK |
4649 | +712 9.80 NjCCgBXbVodOHSWyQnqI |
4650 | +851 7.52 NeuAPcRrdBTcGeDkPsjE |
4651 | +97 6.47 bzZpgZHdpJUKQBkgspIZ |
4652 | +237 9.19 WQOrhqdyoZgEVBoZtNbs |
4653 | +763 5.14 LpvjSWJPvyMpPTdRIBJh |
4654 | +952 3.31 wniuoanPhMZzVwGaZKQi |
4655 | +145 6.55 DwWThCWXkzreoyswWOcm |
4656 | +619 8.38 IcKqPCVXBefXJvEmTCWz |
4657 | +894 6.24 RszFDfdThKnkAMVgWfcY |
4658 | +411 4.68 MnidokwIgxwjlmDPHXbL |
4659 | +976 8.66 KYwtBwvUpmFBvFmclDfB |
4660 | +154 9.78 vHjmwHbimyafbDzSMGhf |
4661 | +780 5.23 cmvPpbPfgnRQyIkdPxre |
4662 | +776 6.72 jESxTrbGnbmrvfgVhIrm |
4663 | +794 0.49 nfqmJtZtxKzszwmwFbMn |
4664 | +378 2.8 APOmsppWHnyBVNaHeuis |
4665 | +240 9.22 UOnvdxPLvRdkBYyYhsGx |
4666 | +599 2.70 oMhMyuKEgNwLWlzuuRxj |
4667 | +963 9.79 lcOnqWKoBmionyzBNQGJ |
4668 | +802 0.76 vsAEnzkHaedQRrLgYYjP |
4669 | +324 9.50 wXnYxuHAYLBIERYGHgXe |
4670 | +311 2.38 nFKzDaDSwoYcHDDeIidT |
4671 | +587 7.32 eNBSPUCRyHaQSJXsGMtl |
4672 | +926 1.62 XyifJlxGaORFBsMmSgVb |
4673 | +493 7.42 MoCNJnECHicCIJHTYLsD |
4674 | +646 9.28 eHBRTtfBenbZIvQbEnmB |
4675 | +617 8.12 MnVPUntngEgmfrfjxGcI |
4676 | +376 3.0 NsSloRjlZuYLWPpyTYcx |
4677 | +284 6.61 WXVHKoxNagUgsSWiaFGR |
4678 | +490 6.48 DSdAOphODhVTRVNcvfPe |
4679 | +959 9.22 HjrqzJycSdjEEkSeEdkb |
4680 | +980 1.50 zHctjFBHUROCnUbkxQdr |
4681 | +947 2.35 oDCGDOCNUDGUabOwSqCR |
4682 | +158 8.92 esBpVVllfWfdPVVVSypg |
4683 | +166 1.50 yfFUjRZCSppnUjxBezVy |
4684 | +591 8.92 gSZzebedXBmGWKcemqol |
4685 | +211 8.83 zrrpMzIscltleXtvcKsu |
4686 | +287 9.11 cAzsUVnbDmJlyKGSVeES |
4687 | +761 7.32 pmAfNAuNBcLceuqgLwuv |
4688 | +622 9.70 wUgAVFVucWEBUNSSwkwX |
4689 | +468 3.36 NYFlnMObVgutevtdPAXN |
4690 | +529 4.88 WMfPZyGvaGbeoPTfuKNr |
4691 | +96 6.38 PSpmPerAPtqFBjNaDpwL |
4692 | +2 2.55 OjyJsmTJymhbblQDiSwd |
4693 | +3 5.75 yDjwaTlyaRKztkgbUSgt |
4694 | +893 2.14 slYhpTYbYlqbkLHMDKzc |
4695 | +524 4.92 kDEqHUcQRAZPziLXASIL |
4696 | +678 0.31 nsaLguBwtWEUFGbMYaMy |
4697 | +931 7.35 KCgquCRLjyVyPIUmDEys |
4698 | +867 8.29 NEPyfvcdZdWprkLEqMNe |
4699 | +100 1.50 hoKqHYiYEZAwzwIrkGJj |
4700 | +746 1.71 veeERjGTYnQMQfKxACdq |
4701 | +826 2.59 gQnPWlEPSQXxdxEkxiDP |
4702 | +539 1.14 oNmEyExhBdmaSYTJOXbS |
4703 | +226 8.53 NuWtUSOpVmbgfWDdOPHp |
4704 | +304 7.41 WaKFaWrBGEzySdPJToTd |
4705 | +162 8.40 XNMcOPBtZHjYIebUtthr |
4706 | +167 2.83 ksrspRMkuhQbQkMNXlVm |
4707 | +219 5.22 rWrmTqhKWQnzBxUOqKdk |
4708 | +181 3.25 qTtVLsHSJTgJELIniLrt |
4709 | +755 8.17 xPIgwGOnubwThOAgvxRX |
4710 | +907 3.80 zCEtnyUMjVYXDIdtjKqS |
4711 | +882 1.54 QwgLYXxcXuUhDdkxpmPy |
4712 | +407 8.36 sBebgTdBqvhKfbAqcJXJ |
4713 | +86 8.21 WUNPBlKGYncVtjNmiEku |
4714 | +640 0.94 FZaXSveJfSKlJGVqJshL |
4715 | +924 2.48 TrCAiDQDiBPtgiCeRWFN |
4716 | +709 6.23 IkkmqxxunVSibSDANfEi |
4717 | +702 1.6 BLTNhNPDXUnaelUaMKsQ |
4718 | +656 5.75 iSRsERaxJgmTIyqlOXfR |
4719 | +64 7.5 NfrqpSzDSrFnWNabmZtZ |
4720 | +561 6.52 BfdQGsXJJamhbGRmnZhF |
4721 | +838 9.27 gwzhOPbcHIrKlYyzylmp |
4722 | +594 3.8 zdhWVEpVkryRDDziblRT |
4723 | +431 6.68 nrWaEHIpEZqNVdrduveT |
4724 | +585 0.2 BLznkxwXmLmFAqTXtsLG |
4725 | +793 7.48 UydrggvJOmMngnjiyGby |
4726 | +711 2.6 BRQCFFLDGHmOjcCoZVeE |
4727 | +963 3.2 dYVgFIyykHShyyEWlwyq |
4728 | +699 5.90 MXmxYHqCPQTyfHjoWXNt |
4729 | +357 1.0 vcMBeilpEQVqWpWxuFPn |
4730 | +874 7.58 fgTKOTitYQwtxjyVheMi |
4731 | +657 1.56 dlGmCjxHTCEYhkqTcZqy |
4732 | +996 4.25 mFOHRuoWHrCZbqQuQWee |
4733 | +752 5.3 HPgaHJLRLTbdAqjfxrVD |
4734 | +14 6.28 hrvSDSigoTaoVrdvkIjz |
4735 | +978 7.12 qpYUewhHKGWgFYGHCKsl |
4736 | +803 8.5 KmirXHpYJFjrSUsprByY |
4737 | +794 4.8 PnirpkAFxPhXUKaRfFSh |
4738 | +255 9.16 VwMUqvdgbDiJuuuffkZA |
4739 | +576 6.63 uKxSaObMYAFWczMCcCeh |
4740 | +501 3.73 nvrjpZJXxVhHlnVRUBCg |
4741 | +747 4.77 GbkUyqSSwzRkbpRbVgUT |
4742 | +398 5.61 ZOnSftpAIYHsNrNXoRbn |
4743 | +457 0.56 lojBbBLzQYhGLhhmihVm |
4744 | +112 2.74 nfFoaFmQOwtmxQApohmS |
4745 | +586 7.25 HgLCKFiBvRwbpxSrAiNz |
4746 | +492 5.89 vDZnaFenpXvBLQrTdVEC |
4747 | +516 9.73 biXEfEzupaXgYYSGJEvj |
4748 | +464 5.3 mOxzsvtZMJXVydfYvwQt |
4749 | +912 7.33 hWoSuRVMPWUxLGYeHKWT |
4750 | +498 8.44 csEBPlIuKcPLYqFpgvPo |
4751 | +317 9.90 xjmCWWuJVyyZLJWitSJu |
4752 | +449 8.45 lbOTYARhIKjsvZrJDDLc |
4753 | +535 4.71 xNsPAvTVOJOTpbGYcaEj |
4754 | +852 2.64 gnlfHhaGDbesWXHqERdF |
4755 | +304 9.69 ZrHCaNXDmQybfSYrvTVw |
4756 | +710 3.79 dRCihjVEcQxXJWqMDxeo |
4757 | +773 2.1 jJdelWwqPoqWfTmWGsZk |
4758 | +991 1.19 NjyCjfpFZupBOpetsrAx |
4759 | +507 9.34 WMiiOWvifiwGeyPfNYED |
4760 | +358 4.97 DhZcLFRhigrudPVyhnCq |
4761 | +662 3.98 vTXayBmDNqzJlYyfWZNt |
4762 | +507 7.75 YyOLbYGdMzcWLpUEMktX |
4763 | +738 8.59 HVANysGlgsFYYENRBJLv |
4764 | +295 8.82 ySqHYVFtksJmfZxZxIKy |
4765 | +984 1.64 SZiTCEsSQYPwEKGrUzXq |
4766 | +949 7.86 yxuIlvnpyHhwgSYCqfzG |
4767 | +168 7.18 lUULhUneHMLZQSAUHBTo |
4768 | +938 2.59 hkNHgcCmoyCsEkNcpXHe |
4769 | +878 1.22 IMlcVToHOvtQoAKtOAOZ |
4770 | +824 8.25 nWoHoqzsqrgmPMHhhBvp |
4771 | +677 8.81 GFlSdWJwuDbhibVxcJIe |
4772 | +754 0.79 lswvYmUipujZGssasZZs |
4773 | +875 3.83 aIiDifayDeyznpPAyDRg |
4774 | +565 5.23 unkzeWMvdDSFoMzpIlZO |
4775 | +120 9.83 gLDFeShLWfyYDoQfCSZM |
4776 | +65 5.57 zxGFAuwltfPNhmLXwGvq |
4777 | +605 6.72 FyjqLLXbmnUFQIifLGDl |
4778 | +962 5.64 FgGVEHmXtWbTjqlpXrZR |
4779 | +687 2.5 OXpbxAdsZzKcozqKashw |
4780 | +652 6.52 EOzUuWTiGudFkdfgvJPx |
4781 | +223 7.89 eXRuLdrMRislqVSPrOPN |
4782 | +825 7.96 wRFENOLBcgIggYOGVxdG |
4783 | +8 9.47 cjhAxVamOWsSdoQNKLqn |
4784 | +153 1.80 BVUyTTLXHmVldMLlywag |
4785 | +554 9.41 RDqlVDVrrKkEeZOWHONI |
4786 | +873 7.7 QriNidzzaKAwEMcrBRxG |
4787 | +726 5.49 YWvtTmqjSduziEzYjDPa |
4788 | +945 2.38 hIybylnSCPmHuEalnKfF |
4789 | +348 3.53 oSTjhbXyDhDYPriXkdAa |
4790 | +477 3.27 uwYAVKhGuNqrASpWjbhS |
4791 | +493 6.14 CVDcxFbnNZDykZFEOxKq |
4792 | +150 9.65 PvptXpcHWiOOOpcAlfUI |
4793 | +752 6.39 ouXYOzGCgKBPjscsJgtI |
4794 | +979 0.92 SPUtqGnWEnRUqggexxLf |
4795 | +394 9.66 tkgzNvlNjKhGxjQHqMTn |
4796 | +812 1.87 ytfRgWZTrXsCbKsMaDEm |
4797 | +75 8.9 gTRNMbGxyLbKegeBqCbk |
4798 | +60 2.59 LchJepJVTxDkSNSCBjwG |
4799 | +87 9.14 pAYJtODZsmItUEbKEHPq |
4800 | +214 8.69 MDODqGCuZbSIecdcNRjh |
4801 | +444 8.64 uQLEcXkaAszAuXtekKYW |
4802 | +273 3.67 caQpkUCIMRhADFxHOJdY |
4803 | +946 1.24 KHRszujDHEqzDWiNbUqn |
4804 | +459 3.0 CMVIjthRPWCGRriRPQNN |
4805 | +838 3.11 jdoZfKkpspAMQDcCHfSO |
4806 | +147 1.18 eWcCpPBfxtvbaKguEOgL |
4807 | +250 2.65 NlstFbCiVIsbFLSsvXyF |
4808 | +218 5.64 EBmbDNcybbLkgDoQyAPX |
4809 | +155 5.94 hqISVwRJGGcUpPsogHEp |
4810 | +757 2.15 qyZiYrZQPLbfEeeVwxbM |
4811 | +808 8.64 sQkcXHKphTqmbeMoQyKd |
4812 | +611 9.94 vANiaAgfgJyRIQhLzjhq |
4813 | +901 5.89 RtElsqTRXOrJfEYyTHNC |
4814 | +907 2.16 IAcqfqbLpIvXlIMbWFIh |
4815 | +599 6.1 uQLFvJlcZYQVNFKVkEOl |
4816 | +375 6.75 sPKkvIqNzbcnlzStgfeg |
4817 | +804 3.8 qCsreKtxOTTKwbpOCcXm |
4818 | +315 3.54 WnlQWsOVYUbosaOLOPQt |
4819 | +855 1.54 OVYVpZRzjEDJrOMibrSI |
4820 | +114 6.19 xnhCusHcpzhKmNNzXMDD |
4821 | +215 0.76 DFBElSengQCWWCKGTmeR |
4822 | +268 3.28 PmfavTNRPYZgNUCZivBI |
4823 | +544 5.53 ZDlQMLtDYNCOtbKWDgOp |
4824 | +120 8.8 vrjDnCVyugNDsKiAYpjX |
4825 | +162 9.85 cAyOTlMgPyJCqigjhHoM |
4826 | +117 4.20 UKURKmjuQxiYkZbrUOiX |
4827 | +972 8.10 ClTGSsUJebREwBUInuTy |
4828 | +772 7.44 lNsiOPZvYqshrPZFnxjC |
4829 | +808 1.33 laWEnkkaRHhnTFPWSRss |
4830 | +262 9.91 EDcVzMXlCgVQtaCeEcfP |
4831 | +702 9.0 rpkEwhnPzbQWRntwGXAM |
4832 | +700 6.52 lzFVaxgJMJOuQylTAUUs |
4833 | +929 5.58 irxLUjAYvhflrKcepdWv |
4834 | +386 7.37 bHxOrDcXxHgCpswxzeRS |
4835 | +946 7.10 mjBaKAnepQGhMbykfSpq |
4836 | +24 0.72 NTcNpjIWpboDmCRCLxkk |
4837 | +997 9.97 HkufAuDNOGmetgsgwKIF |
4838 | +691 1.91 qRuqQGMxObGGbyQhOuym |
4839 | +201 1.78 lJNeEOeENEiQTAJOMtWZ |
4840 | +932 1.63 gssjKuuiBWeKuyPZlXYv |
4841 | +496 6.70 BpXVgtsjPcJKnxoTVgzP |
4842 | +511 2.65 ZhCPNTqiSrZZYwnmIcMz |
4843 | +749 5.45 CriuhVmUitYuLKqVGeeM |
4844 | +652 3.73 JrDrGnOTHMIYgYKPKxqC |
4845 | +913 2.81 sRivrqAHczXCbGLjuWiA |
4846 | +723 7.70 TVolfTbnDLkMksYKwJwp |
4847 | +821 4.13 PgplIumUlymWWvHXFaBU |
4848 | +613 0.8 VAonZFIjlIYyyaZkjLUV |
4849 | +735 5.5 ipAtfieINhaqoTCfRuMB |
4850 | +79 3.90 hnFEUemQmwYOIsNsTnWP |
4851 | +703 4.72 pOkbGLDqEmkOaUhtnFaJ |
4852 | +775 3.29 kijKDMPrtLoDPQDPPdzm |
4853 | +258 4.63 IQhyQMOQkdLgqHwsyBQF |
4854 | +800 0.26 gaozoumOTyvzXPlpmDgv |
4855 | +766 7.3 AjwjksjnSKpZHMtwrzZP |
4856 | +440 0.3 BiChKYZUvwbTQOCmgunV |
4857 | +53 9.77 gVUfBCuOjRwNTSDhZDme |
4858 | +32 9.47 ifzLoYCDjXcYHbbVyvww |
4859 | +749 0.58 dipSHODvHkBzMTiVKcvY |
4860 | +285 5.31 ygoSgfRXudzxmsqNBkEZ |
4861 | +141 1.89 AAFopiHBwWYUPjRHuWZw |
4862 | +248 5.12 KFxTsNEWrMPlCKJIkGum |
4863 | +641 4.67 TojOvtPpaqetlWlpMwcd |
4864 | +649 1.28 ywUnZMHscsXVfAVnxpuq |
4865 | +774 5.4 QProygQPJTBuvQwutgVI |
4866 | +209 2.60 ZbBaaYLvQGfKtuzTSUVt |
4867 | +860 7.59 zmpTjLLVvRjJkfpSCOWW |
4868 | +957 3.87 dKkAuKAaXEgKaMjkDagl |
4869 | +412 4.31 VxAVuOKMQYEJMOIztvOW |
4870 | +930 4.98 lNSgzbFMpKXyAmKcUhPo |
4871 | +860 9.20 NAQYwxbDUXYuZDGtAwFM |
4872 | +846 7.85 NSiFtFPljAAPIRSKrXgy |
4873 | +819 0.33 RVxYhzUvdNprbqrsnjzz |
4874 | +192 6.23 XCuUdIbEpjprxcQzTtkz |
4875 | +446 3.64 tWiNzVnUFwNtaKCbyRHA |
4876 | +452 1.48 BpBbfkMXYcGhLwtogNCN |
4877 | +580 1.56 tseDNgBeKsRorIWkfrRo |
4878 | +823 5.32 CaEbQLnvKKttrComiNct |
4879 | +776 7.79 htvnWLZUPHoCMkCjFTqa |
4880 | +107 8.55 wUZTOVqWLcqWaShSWxrr |
4881 | +122 5.35 BipUWzNXtkrWhEcMebjN |
4882 | +303 5.59 AmfLvEqQeRwGbZmLrVfS |
4883 | +262 4.38 GSwTRNmMYBOFvAlLxBdw |
4884 | +812 6.54 OvfIaKsMVvLnrkNEONQp |
4885 | +980 6.67 bVglLpqYKQAjEuMTwTdk |
4886 | +98 6.21 rFDMoKNLdhnDdAgTTgAe |
4887 | +91 8.11 WTaActKUdEikgQxNlZNC |
4888 | +283 3.62 tkHGYDapLUWEKShowzre |
4889 | +301 8.81 weLWvyBPDBcVNsVhkTgx |
4890 | +764 8.98 luWWpGgxEbsEndwRSSoC |
4891 | +976 0.4 myMJoqbDaleEXfDhDuJh |
4892 | +334 1.63 VpFHTtsUWyeIDmTPRCdN |
4893 | +879 5.64 FeMEZpbfGcJatvxvXvvG |
4894 | +458 3.58 PZbWWATDgivhdQQBycoS |
4895 | +389 3.79 YQTPfQdrfOqYZETgLmMW |
4896 | +969 8.82 jEwGRRFhFrIssnQvQfvC |
4897 | +880 3.81 hAYIuvNZMHxYckABDlOh |
4898 | +482 0.15 xZSzCFAIAnZPprYxFtpO |
4899 | +315 8.48 kwNiyIFCiILOkaRXyKpm |
4900 | +972 2.10 fgbcTJkoRRNsALhHwngZ |
4901 | +906 8.97 IdtZEgnFNzmtsEAicYlm |
4902 | +153 7.28 QBMGyWImeRrrEKEtdMYk |
4903 | +725 1.11 ABKrNPrTXbVbQYfZRdVG |
4904 | +246 7.84 BfGyFnjQkPRmbbNWUCgT |
4905 | +210 4.93 EveCQKDDLMXOzntjTmsW |
4906 | +513 1.0 BNLtwyvUlLuJxUrEdZaf |
4907 | +636 5.41 DLLkJtXfIXCAXCEbwJIw |
4908 | +252 1.28 MOojcVHswqSQxYIBOfAo |
4909 | +768 7.49 usFqWGXJdkMbMVXRYebk |
4910 | +235 6.64 bQtTNXELHzpFStdtlwRt |
4911 | +458 6.47 nBNgHCfoHHegbKFMEAEl |
4912 | +291 2.20 wYUySuiufmsRWfwQrMfj |
4913 | +212 4.30 TeUuWTTXzjhpEOoUFdCw |
4914 | +67 9.4 HbMUofhJJbzIuujOEszx |
4915 | +211 8.80 lUrYCeAhPUNbhOMGzSVs |
4916 | +75 7.30 SFUoPFeFUCpLnSVsPGrI |
4917 | +895 6.50 RdDUXXzeYdaVYSVcENHA |
4918 | +484 7.96 UJNdoiiatlqTfjAihsXE |
4919 | +774 6.8 amkNaHVMzbsbaJtNsNLp |
4920 | +960 9.45 MwIGIBdfGSHSLOMhNdFA |
4921 | +613 3.27 jLizwWOcZiwBECMDhaLS |
4922 | +198 6.8 aQFgqrbjjCYKxVElbPix |
4923 | +763 0.32 NpuoPFLKBkkJxpaZHVDP |
4924 | +233 0.91 jTzFaWskVbkNlwWMmvDp |
4925 | +474 2.73 NIfjcrWlJSAEhtAJPBsM |
4926 | +241 9.62 elsjNxvuxGKyZRwNHTvq |
4927 | +685 9.11 ctjuXmvjOWOqcHVEIEzT |
4928 | +797 0.35 apvUfTtJMDKaHNCZzLyA |
4929 | +405 1.57 KwjnJCmTlzUYoXsXEReA |
4930 | +344 8.60 XyvChRXhioGEsAGKDKZS |
4931 | +256 6.73 ovrqINvYzNaTHyZuBGMZ |
4932 | +364 1.3 CWVleOfvIkiaPqUZyJdK |
4933 | +845 6.16 xrqIYWdMJJMskdxaMWhZ |
4934 | +974 6.14 JFjbDNpaYLtvgbtItCQZ |
4935 | +819 2.40 CdrkqWiCUnMQOVjZFwey |
4936 | +285 7.26 NKHuZkNUlIfzoGhvGZNQ |
4937 | +435 6.81 DiieFEAIbWGMhrdRaPRR |
4938 | +960 1.90 nXOfUqZzHriiPAzqXlmY |
4939 | +518 8.40 yMXUXKrBfCYOphxlWQmZ |
4940 | +599 2.18 VWaVlkkHXNXQssoiVolb |
4941 | +544 5.8 MAicdYDIxNbRpfGuHspL |
4942 | +933 1.67 ZFFUKAsVWEOjbpiwIsSD |
4943 | +547 4.65 YwUJBSJdKNbJfIMSqQJk |
4944 | +185 5.62 qmEnfTsRUFqJHeeBijsQ |
4945 | +798 7.69 EWqDLYUJwrumsCSTjtMz |
4946 | +963 3.69 jwwOloyGyrSEojGfuthl |
4947 | +527 8.81 yNqQBCxVnINNBrymFAcG |
4948 | +615 6.42 pqVBjvmIvOLNLXZrqEVa |
4949 | +564 8.79 PvjyJclAHPjaOGoTJwVc |
4950 | +476 2.53 ivYxeUzAMEKUEQhqupID |
4951 | +775 8.79 JQVhTQcIMJxgvcpsveFB |
4952 | +356 8.51 hOCxGmnEdnrYcKZPxeTl |
4953 | +933 6.38 HyYEXxNvQIUBgtAqiHqP |
4954 | +734 1.25 KUjasKiikmTbOtfqTbFR |
4955 | +522 8.45 WamSGQZFHlSVurtwNRxm |
4956 | +878 3.34 ldCMEyyYjOqIKpvlIrSM |
4957 | +973 0.81 ynUbpbUhuzGREmfJpUGo |
4958 | |
4959 | === added file 'plugin/filesystem_engine/tests/t/select_big_file.test' |
4960 | --- plugin/filesystem_engine/tests/t/select_big_file.test 1970-01-01 00:00:00 +0000 |
4961 | +++ plugin/filesystem_engine/tests/t/select_big_file.test 2010-07-30 13:27:46 +0000 |
4962 | @@ -0,0 +1,9 @@ |
4963 | +--disable_warnings |
4964 | +DROP TABLE IF EXISTS t1; |
4965 | +--enable_warnings |
4966 | + |
4967 | +CREATE TABLE t1 (c1 INT, c2 DECIMAL(3, 2), c3 VARCHAR(20)) ENGINE=FILESYSTEM,FILE="../filesystem_ln/select_big_file.data"; |
4968 | + |
4969 | +SELECT * FROM t1; |
4970 | + |
4971 | +DROP TABLE t1; |
4972 | |
4973 | === added file 'plugin/filesystem_engine/tests/t/select_chop_line-master.opt' |
4974 | --- plugin/filesystem_engine/tests/t/select_chop_line-master.opt 1970-01-01 00:00:00 +0000 |
4975 | +++ plugin/filesystem_engine/tests/t/select_chop_line-master.opt 2010-07-30 13:27:46 +0000 |
4976 | @@ -0,0 +1,1 @@ |
4977 | +--plugin_add=filesystem_engine |
4978 | |
4979 | === added file 'plugin/filesystem_engine/tests/t/select_chop_line.data' |
4980 | --- plugin/filesystem_engine/tests/t/select_chop_line.data 1970-01-01 00:00:00 +0000 |
4981 | +++ plugin/filesystem_engine/tests/t/select_chop_line.data 2010-07-30 13:27:46 +0000 |
4982 | @@ -0,0 +1,4 @@ |
4983 | +618 9.60 LSkNQAZjODwYvOYUeAVb uncessary junk characters |
4984 | +847 2.60 yphkuCaGsgbReRQTcUob test this also |
4985 | +814 3.25 rJDEnFNRTVftDpWPLeRa in create table only two fields |
4986 | +571 4.84 bjQkbVIPlNmlHpKvDBVv |
4987 | |
4988 | === added file 'plugin/filesystem_engine/tests/t/select_chop_line.test' |
4989 | --- plugin/filesystem_engine/tests/t/select_chop_line.test 1970-01-01 00:00:00 +0000 |
4990 | +++ plugin/filesystem_engine/tests/t/select_chop_line.test 2010-07-30 13:27:46 +0000 |
4991 | @@ -0,0 +1,9 @@ |
4992 | +--disable_warnings |
4993 | +DROP TABLE IF EXISTS t1; |
4994 | +--enable_warnings |
4995 | + |
4996 | +CREATE TABLE t1 (c1 INT, c2 DECIMAL(3, 2)) ENGINE=FILESYSTEM,FILE="../filesystem_ln/select_chop_line.data"; |
4997 | + |
4998 | +SELECT * FROM t1; |
4999 | + |
5000 | +DROP TABLE t1; |
Hi!
A few things:
1) "i" is difficult for us with older eyes to distinguish (please use x, or something with more characters).
2) Your style is off in a couple of places ( for (size_t x= 0 ; ....).
3) Why don't you declare no need for store_lock()?
4) It would be nice to see a test showing what happens if you get a file that parses incorrectly.
5) Why xread()?
6) Your copyright is off in a few places (I believe).
Cheers,
-Brian