Packages

MySQL native client is written in Erlang and provides API that is very close to Connector/C library.

Current section

Files

Jump to
mysql_client priv todo.txt
Raw

priv/todo.txt

Fix up select_db command
Test select_db, {{plain, tableSelect4}, fun tableSelect4/2}
19. Investigate binary string representation and UTF-8 support.
20. Utility functions: convert response to list of maps (or like-JSON doc), mapping to record or new map and so on.
21. Adapters for type converting.
33. performance test. (stress test)
35. Add test for select_db, owner
36. Split my test to datasource and connection test
37. update article http://www.trapexit.org/MySQL_native_client
38. test ds close !!!
17-A. Issue Alpha release.
==done== 18. Use application, server and supervisor behaviors.
a) throws redesign;
b) delete connection during app termination and for other branches of supervisor tree;
c) rename:
'my_sup' -> 'conn_pool_sup'('conn_sup' = 'datasource'),
'my' split to 'conn_server' and 'my',
'conn_pool' -> 'conn_store'.
d) test for destroying resources.
e) do not throw exception if close previously closed connection.
==reject== 22. Optimize reverse operations on packet/fields lists during parsing response.
23. SSL connection
==reject== 24. TODO: each packet in separate processes
25. Choose socket mode: active or passive? for performance.
26. new module names (separation):
- io_socket | my_io
- io_send_cmd | send_cmd
- packet_response | response
- packet_parser | packet_parser
- packet_parser_binary | binary_row_data
- packet_parser_string | string_row_data
- conn_srv | conn_srv,
- connection | conn_srv, my
- helper_common | util
- helper_statement | statement
- helper_connection | conn:* my
- datasource
- resource_pool_srv | conn_pool_srv, conn_sup
- resource_pool_sup |
- | datasource_sup
- my | my, my_app, datasource_sup
==done== 27. Steps for 1.2.1 release:
- new picture mySQL.png =
- update doc tags in all files:
conn_srv | =
connection | =
datasorce | =
helper_common | =
helper_connection | =
helper_statement | =
io_send_cmd | =
io_socket | =
my | =
packet_parser_binary | =
packet_parser_string | =
packet_parser | =
packet_response | =
resource_factory | =
resource_pool_srv | =
- update overviev.edoc
- write script to generate console output
-done- 28. Change user and select DB have to apply to datasource object instead of connection. Need to change all connections of the pool/datasource.
-done- 29. Remove ping command, use is_open instead of.
-done- 30. check why can not catch exception when ACTIVE = active in client_settings.hrl.
-done- 31. remove field_value record.
-done- 32. reject using idle connection by reference (link connection to requestor process and unlink it when requestor returns connection to pool).
=reject= 34. add Options[{active, ..}, {buffer_size, ..}, ..] with configuration to client start
$$$$ 1.TODO: Add signed/unsigned field support and parsing flags from field metadata binaryRowData.erl line 52
#### 2.TODO: parsing field metadata after prepared statement OK packet
#### 3.TODO: parsing of metadata of prepared statement parameters
^^^^ 4.write tests for parameter values exceptions
#### 5.TODO: MYSQL_TYPE_YEAR does not work with prepared statement
@@@@ 6.TODO: stringRowData, binaryRowData: make more comprehensive data conversion by using flags value.
@@@@ 7.TODO: check range and type of parameters values in statement.erl - throw exception (write tests)
#### 8.TODO: change data types for parameters ENUM and SET.
#### 9. test on newest and oldest versions of MySQL 5.0, 5.1, 5.5, 5.6
$$$$ 10. transaction support
@@@@ 11. example application.
@@@@ 12. compressed (z-lib) connection
### 10. check 0 length binary and string
### 11. Add command 0x18 = COM_STMT_SEND_LONG_DATA.
### 11-A. edoc explanation of send long data.
### 12. Add source to mysql_error.
### 13. TODO: replace camel style of names to Erlang naming style ( serverStatus -> server_status)
### 14. test for big packets (compressed and not compressed)
### 15. introduce timeout for i/o operation during connection (with exception throws)
### 15. test for concurrent connection (active passive mode)
*** 16. set flags for statement execution.
*** 16-A. fetch command: test it
*** 16 B. Check Metadata in all tests
*** 16 C. recheck list field command !!!
*** 16.D. add exception generation when rest of parsed package is not empty.
==done== 17. isolation level for transaction (and other parameters) - datasource attribute ???
rebar version: 2 date: 20120125_163721 vcs: git 36b6b7a - Mac OS X
rebar clean update-deps compile eunit suites=my_tests,example_tests skip_deps=true
cat ../priv/cmd.txt | erl
erl < ../priv/cmd.txt