-
Notifications
You must be signed in to change notification settings - Fork 166
/
Copy pathTODO.freddy
67 lines (56 loc) · 2.13 KB
/
TODO.freddy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Well.. I don't know how to put these information so I'll put here
Probably I'm the only person who can fully understand these notes...
Cursor and dynamic
------------------
libTDS should handle real cursor/dynamic memory deallocation
search for tds_alloc_cursor, tds_free_cursor and similar for dynamic
cursor too complicate... reduce all states, handle more in libTDS
Tests:
- multiple RPCs check returns (possible??)
(see odbc_set_return_status, odbc_set_return_params and odbc_get_param_len
calls)
add multiple chained RPCs for odbc and mssql7+...
- cursor update and multiple tables (using view)
Row handling
------------
Upper layer should be able to read data from network and handle rows
Possibility to stop sending/receiving data for SQLPutData and similar
Allow upper layer to get if libTDS is sending a request (add new state??)
tds_process_tokens should "return" any row/done/other information,
not only done_flags
libTDS should handle multiple reply from server (cursors and so on)
Done handling
-------------
Callback when state goes to IDLE
Free unused cursors and dynamic and/or reuse them
check if ref_count == 1 and in connection list
ODBC SQL_C_CHAR with wide
-------------------------
Merge putdata and blob1 tests.
Check blob1 dialog, seems to prepare twice during insert.
Other
-----
build an array of "flags" to translate type -> flag like SYBCHAR ->
char, variable and so on
If application rebind with compatible types do not prepare twice.
Compatible (tds_match_dynamic ??) if:
- same query
- same # of parameters
- for every param
- same server type
(tds_get_conversion_type(curcol->on_server.column_type, curcol->on_server.column_size))
- same len (tds_fix_column_size(tds, curcol)) or len < previous
(for decimal/precision check curcol->column_prec and curcol->column_scale)
Tests
-----
check cross compiled odbc driver, exports, resource version (test-dist)
bcp
tests colfmt after init
test encodings loading data
extract to file and import again (t0016 test)
table with id
MARS
- support MARS under CTlib ??
see problems using DBD::ODBC
- SQLFreeStmt return error if pending queries return so ??
check