Age | Commit message (Collapse) | Author |
|
odbc: Fix stack corruption in get_diagnos in odbcserver
|
|
SQLGetDiagRec can fill output buffer and return SQL_SUCCESS_WITH_INFO.
In that case we can not use strcat on diagnos.error_msg as it will write
outside allocated space.
Correctly set acc_errmsg_size in such case.
See also ERL-808 at bugs.erlang.org.
|
|
|
|
|
|
The regression was introduced by making byte type signed.
Bitwise OR (|) applied to signed char (byte) and any longer type reqires the former to expand to the same size.
When the char is negative it is expanded with sign bit filling the extra bytes causing the unexpected result.
|
|
These are signaled by -Wall
|
|
|
|
Three different pointer types are used for strings.
SQLCHAR pointer - used against ODBC driver
char pointer - used against erl_interface
byte pointer - used internally
SQLCHAR is 'unsigned char' while erl_interface is 'signed char'
byte pointer should probably not be used at all.
|
|
odbcserver.c:2772:12: warning: implicit declaration of function 'tolower' is invalid in C99
[-Wimplicit-function-declaration]
str[i] = tolower(str[i]);
^
|
|
and supplied incorrect data to stdin. A crash example:
echo -en "\x0\x0\x0\x1\x0" | ./odbcserver
|
|
|
|
|
|
* kp/odbc-oracle-autocommit-fix/OTP-10735:
Fix aotocommit for Oracle ODBC driver in Linux.
|
|
With silent rules, the output of make is less verbose and compilation
warnings are easier to spot. Silent rules are disabled by default and
can be disabled or enabled at will by make V=0 and make V=1.
|
|
Issue: Oracle ODBC driver for Linux ignores setup autocommit mode during driver initialization before a connection to database has been established. Whereas odbc module in erlang sets autocommit mode before a connection has been established and autocommit mode is true by default it is impossible to turn out autocommit mode for oracle connections.
Sulution: This patch sets autocommit mode after a connection to database has been established. The patch changes only C source file odbcserver.c and don't change any erlang source files of odbc module.
The patches for older versions of erlang/otp are here
https://github.com/RubberCthulhu/erlang-odbc-oracle-fix
|
|
This patch adds the extended_errors option to odbc:connect/2. When
enabled, this option alters the return code of ODBC operations that
produce errors to include the ODBC error code as well as the native
error code, in addition to the ODBC reason field which is returned by
default. The extended error information can be used to produce more
sophisticated error handling than is possible with the standard ODBC
Reason alone.
|
|
Under Unix enable TCP_NODELAY to disable Nagel's socket algorithm
(Removes ~40ms delay on Redhat ES 6).
|
|
|
|
|
|
OTP-10106
OTP-10107
|
|
Support atom 'null' in odbc:param_query as database NULL value
Fix "ODBC: received unexpected info:{tcp_closed, ...}" when connection is terminating.
Fix possible access violation with 64bit ODBC.
|
|
|
|
* dev:
Update copyright years
|
|
|
|
Force early creation of directories.
See 8d3a2dfa646ab2ceb41905c673adb15e57bf9cfd for more details.
|
|
cleaned causing the next call to param_query to missbehave.
Also corrected some test code
|
|
|
|
* ia/odbc/mysql:
Test odbc with MySQL
|
|
type casting even on 64 bit platforms
|
|
Updated test framework to also be able to test the erlang odbc application
with MySQL as database.
Made minor changes to error-handling to improve interoperability
with MySQL-drivers.
|
|
encode_data_type
|
|
|
|
|
|
|
|
Loopback address constants are used when connecting the c-side
to the erlang-side over local socket API avoiding getaddrinfo problems,
and the {ip, loopback} option is added as a listen option on the erlang-side.
Also cleaned up the TIME_STAMP contribution.
|
|
|
|
Now supports SQL_TYPE_TIMESTAMP on the format {{YY, MM, DD}, {HH, MM, SS}}.
Thanks to Juhani Ränkimies.
|
|
ODBC now handles the types SQL_WCHAR and SQL_WVARCHAR. ODBC also has a new
connection option to return all strings as binaries and also expect strings
to be binaries in the param_query function. This provides some but not a
full unicode support.
|
|
* kr/odbc-netinet:
Fix ODBC compilation error on FreeBSD by adding netinet/in.h to #include macros
OTP-8444 The odbc application can now be compiled on FreeBSD. (Thanks to
Kenji Rikitake.)
|
|
This fix modifies lib/odbc/c_src_odbcserver.c
This has been tested on FreeBSD port, and will not affect Linux.
|
|
* po/odbc-update-delete-no-rows:
SQL_NO_DATA and SQLSTATE 00000 indicate success for updates/deletes that affect no rows
|
|
improvements.
Most notable:
Lots of cross compilation improvements. The old cross compilation
support was more or less non-existing as well as broken. Please,
note that the cross compilation support should still be
considered as experimental. Also note that old cross compilation
configurations cannot be used without modifications. For more
information on cross compiling Erlang/OTP see the
$ERL_TOP/xcomp/README file.
Support for staged install using <url
href="http://www.gnu.org/prep/standards/html_node/DESTDIR.html">D
ESTDIR</url>. The old broken INSTALL_PREFIX has also been fixed.
For more information see the $ERL_TOP/README file.
Documentation of the release target of the top Makefile. For more
information see the $ERL_TOP/README file.
make install now by default creates relative symbolic links
instead of absolute ones. For more information see the
$ERL_TOP/README file.
$ERL_TOP/configure --help=recursive now works and prints help for
all applications with configure scripts.
Doing make install, or make release directly after make all no
longer triggers miscellaneous rebuilds.
Existing bootstrap system is now used when doing make install, or
make release without a preceding make all.
The crypto and ssl applications use the same runtime library path
when dynamically linking against libssl.so and libcrypto.so. The
runtime library search path has also been extended.
The configure scripts of erl_interface and odbc now search for
thread libraries and thread library quirks the same way as erts
do.
The configure script of the odbc application now also looks for
odbc libraries in lib64 and lib/64 directories when building on a
64-bit system.
The config.h.in file in the erl_interface application is now
automatically generated in instead of statically updated which
reduces the risk of configure tests without any effect.
|
|
affect no rows
I noticed the following when no rows were updated for an update statement:
4> odbc:param_query(Ref, "update tbadger set status = ? where
badger_id = ?", [{{sql_varchar,1},["R"]}, {sql_integer, [61111]}]).
{error,"No SQL-driver information available."}
5> odbc:param_query(Ref, "update tbadger set status = ? where
badger_id = ?", [{{sql_varchar,1},["R"]}, {sql_integer, [61]}]).
{updated,1}
The attached patch, which requires the ODBC patch from Andrew
Thompson, should fix it:
3> odbc:param_query(Ref, "update tbadger set status = ? where
badger_id = ?", [{{sql_varchar,1},["R"]}, {sql_integer, [61111]}]).
{updated,0}
4>
I've followed the advice given on MSDN
(http://msdn.microsoft.com/en-us/library/ms715424%28VS.85%29.aspx) and
checked for SQL_NO_DATA combined with SQLSTATE 000000
|
|
|