File: TODO

package info (click to toggle)
sqlrelay 1%3A0.35-10
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 11,944 kB
  • ctags: 6,102
  • sloc: cpp: 41,419; python: 11,007; ansic: 10,279; java: 9,833; perl: 9,500; php: 9,229; ruby: 9,182; sh: 8,700; makefile: 3,474; tcl: 5
file content (247 lines) | stat: -rw-r--r-- 6,789 bytes parent folder | download
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
perl apis -> CPAN

fedora-core-2 isn't set up
suse-9.1 isn't set up

--------------------------------------------------------------------------------

setting backlog:
	linux:
		looks like max is 128 on linux 2.0
		2.2/2.4 - /proc/sys/net/ipv4/tcp_max_syn_backlog
			Default is 1024 for systems with more than 128Mb
			of memory, and 128 for low memory machines.
			If you make it greater than 1024, change
			TCP_SYNQ_HSIZE in include/net/tcp.h to keep
			TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog
			and recompile kernel.
		syn cookies - no max backlog
	solaris:
		/usr/sbin/ndd -set /dev/tcp tcp_conn_req_max 32


Tests:
	stored procedures for mysql-5.0
	adodb using peardb driver
	db2 temp tables
	odbc temp tables
	zope
	tcl
	odbc tests
	mysql_stmt calls in drop-in library
	better pythondb/rubydbi tests
	test init scripts
	test send query w/length
	test upper/lower/mixed column case methods
	need database reconnect tests
	column flags
	getFieldAsXXX
	getOutputBindAsXXX
	Java "getXXXAsByteArray" methods
	check blob/lobs with binary data in them
	perl dbi driver
		execute_array
		bind_param_array
		selectall_arrayref with attr/binds
		selectall_hashref with attr/binds
		selectcol_arrayref with attr/binds
		selectrow_array with attr/binds
		selectrow_arrayref with attr/binds
		selectrow_hashref with attr/binds
		prepare_cached
		fetchall_arrayref with slice
		quote
		err
		errstr
		state
		begin_work
		available_drivers
		data_sources
	oldmysql test files for non-C++ api's

cygwin:
	mysql connection crashes on function call
	how to install as a service?
	languages:
		VB wrapper
		how to build a php extension?
			1) need php source 
		active state python
			http://sebsauvage.net/python/mingw.html
		non-cygwin ruby
			creates funny CFLAGS
		active state perl
			PERL5LIB env var points to Oracle's perl installation
			perl -V:prefix return C:\Perl
		active state tcl
			no doubt will have similar problems...
			-I/cygdrive/Tcl/include
			-L/cygdrive/c/Tcl/lib -ltcl84 -ltclstub84
		zope
			/cygdrive/c/Program Files/Zope-2.7.1/lib/python/Products
	databases:
		sqlite
			.dll and .def file wherever
		msql
			won't build, need older bison
		lago
			???
	doc
		installing packages
		optional cygwin components
		running sqlrelay clients
		add path to mysql dll to PATH

Compatibility:
	db2 dead-db/relogin doesn't work, query just hangs when db is down
	implement interbase dead-db/relogin
	support @,: or ? for fake bind variables
	rewrite queries with ?'s or @'s for oracle, rewrite
				queries with ?'s or :'s for
	mysql 4.1, 5.0
	support libmysqlclient_r
	daemontools
	SCO:
		ruby api won't build
		postgresql won't configure
		php api won't build

Documentation:
	how to use new features of Tony/Erik's perl dbi patch
	issue with sqlrelay.conf permissions and runasuser="nobody"
	getting started with odbc
	how to use pear db driver with adodb
	getting started docs for MS SQL Server
	getting started docs for odbc
	"how sqlrelay works" with diagrams and animations
	example sqlrelay.conf's for different configurations
	recommended settings for each db, scaling
	performance benchmark charts
	HOWTO for linuxdoc.org
	man pages for everything

Performance/Code Enhancements:
	idle client timeout
	client connect timeout
	store passwords in encrypted form in the config file
	use python distutils to build python
	call endSession() from perl DBD finish method
	sqlrclient classes shouldn't inherit from inet/unixclientsocket,
		rather should have member variables for each
	implement column flags as a bitmap
	persistent cursors - parse query, attach an id to it,
				make it available to other sessions
	client-side persistence/socket handoff daemon
	connection daemons could put buffers in shared memory and
		clients could send queries, access buffers using 
		shared memory and semaphores instead of unix sockets
	api methods to use preallocated buffers for result sets
	api methods for configuring optimistic buffer sizes
	configurable preallocated buffers on the server side
	result set compression during transmission for distant relays
	server side result set caching
	support batch DML in oracle8
	for databases that can return non-strings in their result sets, 
		send non strings to client
	seperate modules into standalone builds
	should be a single sqlr-connection daemon that dlopens the
		appropriate database module 
	login errors should be printed on the screen by sqlrconnection class,
		not by individual connections
	api for running queries in the background

Security:
	SSL encryption

Packages:
	FreeBSD
	NetBSD
	OpenBSD
	Solaris
	OpenServer
	Unixware/OpenUnix

Features:
	use PAM if possible as alternative to defining users in sqlrelay.conf
	support stored procedures that return result sets in
		sybase, interbase, db2
	support non-string output binds sybase stored procedures
	could debug logs be logrotate compatible?
	postgresql drop-in api lacks many features
	postgresql drop-in needs to parse out ; delimited queries for db's
		that don't support that, execute them seperately
	mysql drop-in api lacks a few features
	sybase/freetds (possibly others) need options for setting chained mode 
		and isolation mode when client connects
	sqlr-import/sqlr-export tools
	support vector binds
	handle output binds in Python-DB, Ruby-DBD
	datatype support:
		handle binary data correctly in all databases
		identical long/lob datatype support in all databases
		more advanced long/lob datatype support
		support for array datatypes
		handle blobs, quads in interbase
		handle timestamps
		handle enum types in mysql
	replication
	query filtering
	quotas
	logging
	handle commit/rollback for named transactions
	implement API's that handle errors with exceptions
	better transaction handling for postgresql
	query/fields cmdline tools need a timeout option
	maximum allowed clob bind value length should be configurable
	odbc connection should check the odbc definition
		for connect string arguments - SQLBrowseConnect
	solaris init script

Availability:
	connections should ping database server every so often to make sure
		it's up, if it's not, relogin
	master, fallback databases, where connection only goes to the fallback
		if the master is overloaded or down
	statistics, stat monitoring interface
	if a connection dies mysteriously, a new one should fire up

backends:
	pam_sqlrelay
	mod_auth_sqlrelay for apache
	samba auth module
	bind 9.1 backend
	dhcp backend
	qmail backend
	qpopper port
	bugzilla port

API's:
	JDBC
	ODBC
	QT3
	C# - have a driver, just need to incorporate it
	ADA
	Eiffel
	gnome-db
	D
	dbstep
	ADODB driver
		

Native DB Support:
	Informix
	SAP DB
	LocalSQL
	kekedb
	ThinkSQL
	picosql
	shsql

Config Tools:
	gtk2
	QT
	curses
	need keyboard shortcuts
	size should be less than 640x480
	connectstring editor
	wizard