You've already forked macports-base
mirror of
https://github.com/macports/macports-base.git
synced 2026-07-12 18:18:43 -07:00
Remove tdbc{mysql,odbc,postgres}
We don't use these for anything, and they can be re-added if that changes.
This commit is contained in:
@@ -67,8 +67,9 @@ tdbc1.1.3 tdbcmysql1.1.3 tdbcodbc1.1.3 tdbcpostgres1.1.3 \
|
||||
tdbc1.1.5 tdbcmysql1.1.5 tdbcodbc1.1.5 tdbcpostgres1.1.5 \
|
||||
tdbc1.1.7 tdbcmysql1.1.7 tdbcodbc1.1.7 tdbcpostgres1.1.7 \
|
||||
tdbc1.1.9 tdbcmysql1.1.9 tdbcodbc1.1.9 tdbcpostgres1.1.9 \
|
||||
tdbc1.1.10 tdbcmysql1.1.10 tdbcodbc1.1.10 tdbcpostgres1.1.10\
|
||||
tdbc1.1.12 tdbcmysql1.1.12 tdbcodbc1.1.12 tdbcpostgres1.1.12"
|
||||
tdbc1.1.10 tdbcmysql1.1.10 tdbcodbc1.1.10 tdbcpostgres1.1.10 \
|
||||
tdbc1.1.12 tdbcmysql1.1.12 tdbcodbc1.1.12 tdbcpostgres1.1.12 \
|
||||
tdbcmysql1.1.13 tdbcodbc1.1.13 tdbcpostgres1.1.13"
|
||||
|
||||
# Create config files from defaults if not present
|
||||
function setup_configs {
|
||||
|
||||
+2
-1
@@ -139,7 +139,8 @@ OLD_TCL_FILES= $(DESTDIR)$(TCL_PACKAGE_PATH)/tcl8 \
|
||||
$(DESTDIR)$(TCL_PACKAGE_PATH)/sqlite3.45.3 \
|
||||
$(DESTDIR)$(TCL_PACKAGE_PATH)/sqlite3.47.2 \
|
||||
$(DESTDIR)$(TCL_PACKAGE_PATH)/sqlite3.50.4 \
|
||||
$(DESTDIR)$(TCL_PACKAGE_PATH)/tdbc{,mysql,odbc,postgres}1.1.{3,5,7,9,10,12}
|
||||
$(DESTDIR)$(TCL_PACKAGE_PATH)/tdbc1.1.{3,5,7,9,10,12} \
|
||||
$(DESTDIR)$(TCL_PACKAGE_PATH)/tdbc{mysql,odbc,postgres}*
|
||||
|
||||
install-tcl:
|
||||
rm -rf $(OLD_TCL_FILES)
|
||||
|
||||
-384
@@ -1,384 +0,0 @@
|
||||
2014-01-23 Don Porter <dgp@users.sourceforge.net>
|
||||
|
||||
* configure.in:
|
||||
* README: Advanced version number to 1.0.3.
|
||||
* configure: TEA update; autoconf 2.69
|
||||
|
||||
2014-10-23 Don Porter <dgp@users.sourceforge.net>
|
||||
|
||||
* configure.in:
|
||||
* README: Advanced version number to 1.0.2.
|
||||
* configure: TEA update; autoconf 2.68
|
||||
|
||||
* doc/*.n: [TDBC Bug 00b792] OpenBSD friendly docs.
|
||||
|
||||
2014-08-14 Don Porter <dgp@users.sourceforge.net>
|
||||
|
||||
* configure.in:
|
||||
* README: Advanced version number to 1.0.1.
|
||||
* configure autoconf 2.68
|
||||
|
||||
2012-11-15 KevinB. Kenny <kennykb@acm.org>
|
||||
|
||||
* configure.in: Made change so that `make test` works even
|
||||
* Makefile.in: against an uninstalled version of tdbc.
|
||||
* configure: autoconf 2.68
|
||||
*** ADVANCED THE VERSION OF AUTOCONF IN USE ***
|
||||
|
||||
2012-11-08 Don Porter <dgp@users.sourceforge.net>
|
||||
|
||||
* configure.in:
|
||||
* README: Advanced version number to 1.0.0.
|
||||
* configure: autoconf 2.59
|
||||
|
||||
2012-07-26 Jan Nijtmans <jan.nijtmans@gmail.com>
|
||||
|
||||
* generic/mysqlStubInit.c: Fix [14a8b7c3bd]: package tdbc::mysql fails
|
||||
to load under Fedora 17. Make some tables "const".
|
||||
* tclconfig/install-sh: Update to latest TEA
|
||||
* tclconfig/tcl.m4
|
||||
* configure: autoconf-2.59
|
||||
|
||||
2012-07-13 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* test/tdbcmysql.test: Make functional tests refuse to run unless
|
||||
the environment variable TDBCMYSQL_TEST_DB
|
||||
explicitly designates a database.
|
||||
|
||||
2012-07-10 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* generic/tdbcmysql.c: Fixed a non-static table argument to
|
||||
Tcl_GetIndexFromObjStruct.
|
||||
|
||||
2012-06-10 Jan Nijtmans <jan.nijtmans@gmail.com>
|
||||
|
||||
* configure.in: make TDBC API functions MODULE_SCOPE
|
||||
* configure: autoconf-2.59
|
||||
|
||||
2012-06-08 Jan Nijtmans <jan.nijtmans@gmail.com>
|
||||
|
||||
* tclconfig/tcl.m4: Update to latest TEA
|
||||
* configure: autoconf-2.59
|
||||
|
||||
2011-09-19 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* Makefie.in: Added a 'valgrind' rule for memory leak checking.
|
||||
* tests/all.tcl: Changed behaviour to 'fall off the end' to
|
||||
facilitate 'valgrind.
|
||||
|
||||
2011-07-19 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* configure.in:
|
||||
* Makefile.in:
|
||||
* README: Advanced version number to 1.0b17.
|
||||
|
||||
* configure: autoconf 2.59
|
||||
|
||||
2011-07-18 Don Porter <dgp@users.sourceforge.net>
|
||||
|
||||
* configure.in: Update to latest TEA 3.9 revisions.
|
||||
* Makefile.in:
|
||||
* tclconfig/*:
|
||||
|
||||
* configure: autoconf-2.59
|
||||
|
||||
2011-02-20 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* tests/tdbcmysql.test:
|
||||
Added rudimentary test for 'nextresults' - the method
|
||||
is a dummy because the calls supported by tdbc::mysql
|
||||
do not allow for multiple result sets.
|
||||
|
||||
2011-01-26 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* doc/tdbc_mysql.n:
|
||||
Added empty comment at the start of each manpage because 'man'
|
||||
interprets comments there as directives. Thanks to Konstantin
|
||||
Kohmoutov for reporting and diagnosing this error.
|
||||
|
||||
2011-01-25 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* generic/tdbcmysql.c: Fixed a bug in data types of small integers
|
||||
on 64-bit machines. Who would have imagined
|
||||
that MSYQL_TYPE_LONG doesn't mean 'long' but
|
||||
rather 'int'?
|
||||
* tests/tdbcmysql.test (tdbc::mysql-1.6,24.[4567]):
|
||||
Quieted test cases on 64-bit machines and on MySQL earlier
|
||||
than 5.1.16, which is the first version on which
|
||||
'foreignkeys' functions correctly.
|
||||
Thanks to Damon Courtney for reporting these bugs.
|
||||
|
||||
2010-12-28 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* generic/fakemysql.h: Added the MYSQL data structure and the
|
||||
nest of other definitions that it depends on.
|
||||
* generic/mysqlStubDefs.txt: Added mysql_affected_rows and
|
||||
mysql_field_count.
|
||||
* generic/mysqlStubInit.c, generic/mysqlStubs.h: Regenerated.
|
||||
* generic/tdbcmysql.c: Added 'evaldirect' method that allows
|
||||
executing statements that are unimplemented
|
||||
in the MySQL prepared statement API.
|
||||
* generic/tdbcmysql.tcl: Did a rough (not really functional) hack
|
||||
at formatting prepared statements.
|
||||
* tests/tdbcmysql.test (tdbc::mysql-25.*): Added two tests for
|
||||
creating a (parameterless) stored procedure and executing it.
|
||||
|
||||
2010-09-03 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* configure.in: Added missing TCLOO_CFLAGS because Windows build
|
||||
failed to link without it.
|
||||
* configure: autoconf 2-59
|
||||
|
||||
* generic/mysqlStubInit.c:
|
||||
Made changes to attempt to open the
|
||||
MySQL client library by SONAME as well as
|
||||
pathname, in an effort to fit in better
|
||||
with systems where libmysqlclient-devel
|
||||
is not installed.
|
||||
|
||||
* library/tdbcmysql.tcl:
|
||||
* tests/tdbcmysql.test:
|
||||
Changed 'keySequence' to 'ordinalPosition' in
|
||||
'foreignkeys' for consistency with 'primarykeys'.
|
||||
|
||||
* configure.in:
|
||||
* Makefile.in:
|
||||
* pkgIndex.tcl.in (new file):
|
||||
* README:
|
||||
* tclconfig/: Upgraded the build to use TEA 3.9. Changed the
|
||||
approach to pkgIndex.tcl generation. (It's now built
|
||||
at configure time, rather than from the Makefile.)
|
||||
Advanced version number to 1.0b16.
|
||||
|
||||
* configure: autoconf 2.59
|
||||
|
||||
2010-06-19 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* Makefile.in: Revised the code at the suggestion
|
||||
* generic/tdbcmysql.c: of Andreas Kupries to avoid using
|
||||
* tests/all.tcl: 'tcl_findLibrary' and instead execute
|
||||
* tests/tdbcmysql.test: both 'source' and 'load' commands from
|
||||
'pkgIndex.tcl'. Revised the 'make test'
|
||||
rule, and the test scripts, to
|
||||
test successfully under the new regime.
|
||||
Thanks to Andreas for providing the
|
||||
original patch, and to Joe English
|
||||
for providing ideas for simplifying
|
||||
and repairing 'make test' under the
|
||||
new regime.
|
||||
|
||||
2010-05-23 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* library/tdbcmysql.tcl: Added a 'BuildForeignKeysStatement' method
|
||||
to tdbcmysql::connection that overrides the
|
||||
one in the base class and accommodates the
|
||||
nonstandard INFORMATION_SCHEMA provided in
|
||||
MySQL.
|
||||
* tests/tdbcmysql.test: Added test cases for '$db primarykeys'
|
||||
and '$db foreignkeys'
|
||||
|
||||
2010-05-12 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* generic/fakesql.h:
|
||||
Added dual definitions of data structures that change
|
||||
between MySQL 5.0 and 5.1.
|
||||
* generic/mysqlStubDefs.h:
|
||||
Added code to link to mysqlclient_r and mysqlclient
|
||||
as well as mysql so that client libs can be found
|
||||
on Unix. Added query of the client lib version.
|
||||
* generic/mysqlStubInit.c:
|
||||
Regenerate
|
||||
* generic/mysqlStubs.h:
|
||||
Regenerate
|
||||
* generic/tdbcmysql.c:
|
||||
Modified to make MYSQL_BIND and MYSQL_FIELD accesses
|
||||
go through accessor functions that hit the correct
|
||||
versions of the structures according to the client
|
||||
library version. (Tcl can provide ABI stability,
|
||||
even if MySQL can't!)
|
||||
* configure.in: Advance release to 1.0b15.1
|
||||
* README: Advance release to 1.0b15.1
|
||||
* configure: autoconf-2.59
|
||||
|
||||
2010-05-10 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* aclocal.m4: Synchronize with tdbc.
|
||||
* configure.in: Advance TEA version to 3.7. Advance release to 1.0b15.
|
||||
Corrected the TDBC stub library specification so that
|
||||
it works under MSVC.
|
||||
* generic/mysqlStubDefs.txt:
|
||||
Split out the linkage convention so that
|
||||
genExtStubs.tcl can generate syntactically correct
|
||||
VC++ pointer-to-function declarations.
|
||||
* generic/mysqlStubInit.c:
|
||||
* generic/mysqlStubs.h:
|
||||
Regenerate
|
||||
* generic/tdbcmysql.c:
|
||||
Added code to silence VC++ warnings.
|
||||
* README: Advance release to 1.0b15
|
||||
* tclconfig/: Advance to TEA 3.7
|
||||
* configure: autoconf-2.59
|
||||
|
||||
2010-05-10 Andreas Kupries <andreask@activestate.com>
|
||||
|
||||
* generic/tdbcmysql.c: Fixed violations of strict C89.
|
||||
* Makefile.in: Removed attempt to generate a stub library. Drivers
|
||||
do not export stub tables.
|
||||
|
||||
2010-05-07 Andreas Kupries <andreask@activestate.com>
|
||||
|
||||
* configure.in: Disabled TEA_*_TKCONFIG. Code doesn't depend on Tk.
|
||||
* configure: Regenerated.
|
||||
|
||||
2010-04-30 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* Makefile.in: Added explicit reference to the TDBC library in the
|
||||
TCLSH_ENV. Updated the 'dist' rule to include new files.
|
||||
Added a 'genstubs' rule to make the stubs to load
|
||||
the MySQL libraries at run time.
|
||||
* configure.in: Removed compile-time references to the MySQL headers
|
||||
and libraries. Added new files to SOURCES and HEADERS.
|
||||
* generic/fakemysql.h (new file):
|
||||
Minimal subset of mysql.h needed to make tdbc::mysql compile.
|
||||
* generic/mysqlStubDefs.txt (new file):
|
||||
Definitions of MySQL runtime library routines brought
|
||||
in by dynamic loading.
|
||||
* generic/mysqlStubInit.c (new file):
|
||||
Code to load the MySQL runtime library and build a stub
|
||||
table for it.
|
||||
* generic/mysqlStubDefs.txt (new file):
|
||||
Definitions of the routines to be resolved when loading
|
||||
the MySQL library at run time.
|
||||
* generic/tdbcmysql.c:
|
||||
Changed tdbc::mysql to load the MySQL library at run time
|
||||
and to have no compile-time dependencies on MySQL.
|
||||
* tests/tdbcodbc.test (tdbc::mysql-14.8):
|
||||
Corrected a misnamed test.
|
||||
|
||||
2010-04-25 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* configure.in: Adjusted TDBC_* environment vars to be tdbc_*
|
||||
* README: for better TEA compatibility. Advanced version number
|
||||
to 1.0b14.
|
||||
* configure: autoconf-2.59
|
||||
|
||||
2009-09-29 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* tests/tdbcmysql.test: Changed all TEST_* environment variables
|
||||
to TDBCMYSQL_* for easier high-level scripting
|
||||
of the tests.
|
||||
|
||||
2009-09-20 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* README:
|
||||
* configure.in: Advance version number to 1.0b13
|
||||
* configure: autoconf-2.59
|
||||
|
||||
2009-07-03 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* README:
|
||||
* configure.in: Advance version number to 1.0b12
|
||||
* configure: autoconf-2.59
|
||||
|
||||
2009-05-29 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* README:
|
||||
* configure.in: Advance version number to 1.0b11
|
||||
* configure: autoconf-2.59
|
||||
|
||||
2009-04-19 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* generic/tdbcmysql.c: Silenced a compiler warning about 'fields'
|
||||
being used uninitialized.
|
||||
* doc/tdbc_mysql.n: Added missing documentation for 'new' constructors.
|
||||
|
||||
2009-04-18 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* generic/tdbcmysql.c: Changed so that an inappropriate access to
|
||||
an array or a failing read trace yields NULL.
|
||||
* tests/tdbcmysql.test: Revised test cases according to the above
|
||||
change.
|
||||
* doc/tdbc_mysql.n: Made changes so that NROFF formatting matches
|
||||
the Tcl standard.
|
||||
|
||||
2009-04-16 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* README:
|
||||
* configure.in: Advance version number to 1.0b10
|
||||
* configure: autoconf-2.59
|
||||
|
||||
* generic/tdbcmysql.c: Reworked the allocation of result buffers
|
||||
so that they belong to the result set and
|
||||
are not allocated per row. Pushed binding the
|
||||
results up before mysql_stmt_execute,
|
||||
avoiding a crash if the same statement handle
|
||||
has been used before [Ticket 39a78606aa].
|
||||
No update made to test suite because
|
||||
valgrind detected the error with existing
|
||||
tests on a -DPURIFY build.
|
||||
|
||||
2009-03-03 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* generic/tdbcmysql.c:
|
||||
* library/tdbcmysql.tcl: Replaced 'init' methods with constructors
|
||||
written in C. Added 'statementCreate' and 'resultSetCreate' forwarding
|
||||
in place of the 'statementClass' and 'resultSetClass' variables.
|
||||
Removed some classes that were the result of overeager copying
|
||||
from tclodbc. Replaced 'my variable' with variables declared at
|
||||
class level.
|
||||
|
||||
2009-02-14 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* doc/tdbc_mysql.n: Many small format changes to make 'man2html'
|
||||
work.
|
||||
* README:
|
||||
* configure.in: Advance version number to 1.0b8
|
||||
* configure: autoconf-2.59
|
||||
|
||||
2009-02-01 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* generic/tdbcmysql.c:
|
||||
* configure.in: Changed the <my_global.h> tests to use the
|
||||
correct conditionals on mingw.
|
||||
* configure: Autoconf 2.59
|
||||
|
||||
2009-01-31 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* README:
|
||||
* configure.in: Advanced version to 1.0b7.
|
||||
* configure: Regenerated.
|
||||
* generic/tdbcmysql.c: Revised errorCode generation to be
|
||||
more [try]-friendly. Changed include to <mysql/mysql.h> so that
|
||||
the include path isn't necessary.
|
||||
* tests/tdbcmysql.test: Added test flags so that a nonstandard port
|
||||
or socket can be specified. Changed errorCode-dependent tests to
|
||||
look for the new form of errorCode.
|
||||
|
||||
2009-01-05 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* README: Added a few more hints for building on Windows.
|
||||
* configure.in: Changes to make tdbcmysql build on Windows.
|
||||
* generic/tdbcmysql.c: Changed to #include <my_global.h> on Windows.
|
||||
Advanced release to 1.0b6
|
||||
* configure: autoconf 2.59
|
||||
|
||||
2009-01-04 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
* README:
|
||||
* Makefile.in:
|
||||
* doc/tdbc_mysql.n: Updated so that files are no longer clones
|
||||
of the 'tdbcodbc' package. Added installation and distribution code.
|
||||
* configure.in: Advanced version to 1.0b5
|
||||
* generic/tdbcmysql.c: Added code to track the declared data types
|
||||
of parameters and the actual data types of results. Added code to
|
||||
do direct binary conversions of integers, floating point numbers,
|
||||
and bit strings. Added checks for binary data on results.
|
||||
Added disambiguation of duplicated colmn names.
|
||||
* tests/tdbcmysql.test: Revised test cases to include all the
|
||||
MySQL data types handled in this driver. Added a test case that
|
||||
column names are correctly disambiguated.
|
||||
* configure: autoconf 2.59
|
||||
|
||||
2009-01-02 Kevin B. Kenny <kennykb@acm.org>
|
||||
|
||||
Initial baseline of a TDBC driver for MySQL.
|
||||
-514
File diff suppressed because it is too large
Load Diff
-80
@@ -1,80 +0,0 @@
|
||||
README: tdbcmysql
|
||||
|
||||
This is the 1.1.13 source distribution of the driver for Tcl
|
||||
Database Connectivity (TDBC) to access MySQL databases.. TDBC and
|
||||
its drivers are available from a Fossil version control repository
|
||||
at http://tdbc.tcl.tk/
|
||||
|
||||
RCS: @(#) $Id: $
|
||||
|
||||
1. Introduction
|
||||
|
||||
This directory contains the source code, documentation, and test
|
||||
scripts for the MySQL driver for Tcl Database Connectivity. This
|
||||
module, plus TDBC itself, allow you to access MySQL databases using a
|
||||
standard application programming interface (API) from a Tcl script.
|
||||
This module is also available from http://tdbc.tcl.tk along with the
|
||||
source code of TDBC itself. A bug database and Wiki are available at
|
||||
the same location.
|
||||
|
||||
Tdbc::mysql is a freely-available open source package. You can do
|
||||
virtually anything you like with it, such as modifying it,
|
||||
redistributing it, and selling it either in whole or in part. See the
|
||||
file "license.terms" for complete information.
|
||||
|
||||
2. Compilation and Installation
|
||||
|
||||
This module follows the general configuration and installation
|
||||
rules described in the README file for tdbc. In addition to the
|
||||
options described there, the 'configure' script for tdbcmysql
|
||||
accepts the following two options:
|
||||
|
||||
--with-mysql-includedir=PATH
|
||||
|
||||
Specifies PATH as the path to the directory that contains
|
||||
'mysql.h' and related header files.
|
||||
|
||||
--with-mysql-libdir=PATH
|
||||
|
||||
Specifies PATH as the path to the directory that contains
|
||||
the MySQL link libraries.
|
||||
|
||||
Building on Windows is tested only with msys/mingw, and only with
|
||||
the version of MySQL present in XAMPP (https://sourceforge.net/projects/xampp)
|
||||
You need the 'xampp-win32-devel' package as well as the 'xampp-win32'
|
||||
package.
|
||||
|
||||
In order to build the code under msys/mingw, you need to rebuild the
|
||||
import library for use by mingw. (This also requires the 'reimp'
|
||||
utility from mingw-utils.) The recipe for this step is:
|
||||
|
||||
reimp -d drive:/path/to/xampp/lib/mysql/libmysql.lib
|
||||
dlltool -k -d libmysql.def -l libmysql.a
|
||||
cp libmysql.a drive:/path/to/mingw/lib
|
||||
|
||||
It is also convenient to make sure that the MySQL headers are available
|
||||
without the --with option:
|
||||
|
||||
cp -r drive:/path/to/xampp/include/mysql/* drive:/path/to/mingw/include/
|
||||
|
||||
Then an ordinary 'configure' and 'make' should function to build the
|
||||
load module.
|
||||
|
||||
NOTE THAT ON WINDOWS, THE 'libmysql.dll' LIBRARY MUST BE ON THE PATH
|
||||
AT RUNTIME. Probably the easiest way to ensure this happens is to
|
||||
put it either in the Windows 'system32' directory or the 'bin'
|
||||
directory of your Tcl distribution.
|
||||
|
||||
3. Documentation
|
||||
|
||||
The 'doc' subdirectory in this release contains a set of reference
|
||||
manual entries for tdbc::mysql. Files with an extension '.n' are for
|
||||
Tcl classes and commands; files with an extension '.3' are for C
|
||||
library functions. The file, 'doc/tdbcmysql.n' gives an overview,
|
||||
listing the classes and functions
|
||||
|
||||
4. See also
|
||||
|
||||
More information about TDBC and its drivers are available in the
|
||||
README file for TDBC itself; refer to that file for compilation and
|
||||
installation instructions, and support information.
|
||||
-86
@@ -1,86 +0,0 @@
|
||||
#
|
||||
# Include the TEA standard macro set
|
||||
#
|
||||
|
||||
builtin(include,tclconfig/tcl.m4)
|
||||
|
||||
#
|
||||
# Add here whatever m4 macros you want to define for your package
|
||||
#
|
||||
|
||||
dnl Helper macros
|
||||
AC_DEFUN([TEAX_LAPPEND], [$1="[$]{$1} $2"])
|
||||
AC_DEFUN([TEAX_FOREACH], [for $1 in $2; do $3; done])
|
||||
AC_DEFUN([TEAX_IFEQ], [AS_IF([test "x$1" = "x$2"], [$3])])
|
||||
AC_DEFUN([TEAX_IFNEQ], [AS_IF([test "x$1" != "x$2"], [$3])])
|
||||
AC_DEFUN([TEAX_SWITCH], [case "$1" in TEAX_SWITCH_Cases(m4_shift($@)) esac])
|
||||
AC_DEFUN([TEAX_SWITCH_Cases], [m4_if([$#],0,,[$#],1,,[TEAX_SWITCH_OneCase($1,$2)TEAX_SWITCH_Cases(m4_shift(m4_shift($@)))])])
|
||||
AC_DEFUN([TEAX_SWITCH_OneCase],[ $1) $2;;])
|
||||
AC_DEFUN([CygPath],[`${CYGPATH} $1`])
|
||||
|
||||
dnl Interesting macros
|
||||
AC_DEFUN([TEAX_SUBST_RESOURCE], [
|
||||
AC_REQUIRE([TEA_CONFIG_CFLAGS])dnl
|
||||
TEAX_IFEQ($TEA_PLATFORM, windows, [
|
||||
AC_CHECK_PROGS(RC_, 'windres -o' 'rc -nologo -fo', none)
|
||||
TEAX_SWITCH($RC_,
|
||||
windres*, [
|
||||
rcdef_inc="--include "
|
||||
rcdef_start="--define "
|
||||
rcdef_q='\"'
|
||||
AC_SUBST(RES_SUFFIX, [res.o])
|
||||
TEAX_LAPPEND(PKG_OBJECTS, ${PACKAGE_NAME}.res.o)],
|
||||
rc*, [
|
||||
rcdef_inc="-i "
|
||||
rcdef_start="-d "
|
||||
rcdef_q='"'
|
||||
AC_SUBST(RES_SUFFIX, [res])
|
||||
TEAX_LAPPEND(PKG_OBJECTS, ${PACKAGE_NAME}.res)],
|
||||
*, [
|
||||
AC_MSG_WARN([could not find resource compiler])
|
||||
RC_=: ])])
|
||||
# This next line is because of the brokenness of TEA...
|
||||
AC_SUBST(RC, $RC_)
|
||||
TEAX_FOREACH(i, $1, [
|
||||
TEAX_LAPPEND(RES_DEFS, ${rcdef_inc}\"CygPath($i)\")])
|
||||
TEAX_FOREACH(i, $2, [
|
||||
TEAX_LAPPEND(RES_DEFS, ${rcdef_start}$i='${rcdef_q}\$($i)${rcdef_q}')])
|
||||
AC_SUBST(RES_DEFS)])
|
||||
AC_DEFUN([TEAX_ADD_PRIVATE_HEADERS], [
|
||||
TEAX_FOREACH(i, $@, [
|
||||
# check for existence, be strict because it should be present!
|
||||
AS_IF([test ! -f "${srcdir}/$i"], [
|
||||
AC_MSG_ERROR([could not find header file '${srcdir}/$i'])])
|
||||
TEAX_LAPPEND(PKG_PRIVATE_HEADERS, $i)])
|
||||
AC_SUBST(PKG_PRIVATE_HEADERS)])
|
||||
|
||||
AC_DEFUN([TEAX_SDX], [
|
||||
AC_PATH_PROG(SDX, sdx, none)
|
||||
TEAX_IFEQ($SDX, none, [
|
||||
AC_PATH_PROG(SDX_KIT, sdx.kit, none)
|
||||
TEAX_IFNEQ($SDX_KIT, none, [
|
||||
# We assume that sdx.kit is on the path, and that the default
|
||||
# tclsh is activetcl
|
||||
SDX="tclsh '${SDX_KIT}'"])])
|
||||
TEAX_IFEQ($SDX, none, [
|
||||
AC_MSG_WARN([cannot find sdx; building starkits will fail])
|
||||
AC_MSG_NOTICE([building as a normal library still supported])])])
|
||||
dnl TODO: Adapt this for OSX Frameworks...
|
||||
dnl This next bit is a bit ugly, but it makes things for tclooConfig.sh...
|
||||
AC_DEFUN([TEAX_PATH_LINE], [
|
||||
eval "$1=\"[]CygPath($2)\""
|
||||
AC_SUBST($1)])
|
||||
AC_DEFUN([TEAX_INCLUDE_LINE], [
|
||||
eval "$1=\"-I[]CygPath($2)\""
|
||||
AC_SUBST($1)])
|
||||
AC_DEFUN([TEAX_LINK_LINE], [
|
||||
AS_IF([test ${TCL_LIB_VERSIONS_OK} = nodots], [
|
||||
eval "$1=\"-L[]CygPath($2) -l$3${TCL_TRIM_DOTS}\""
|
||||
], [
|
||||
eval "$1=\"-L[]CygPath($2) -l$3${PACKAGE_VERSION}\""
|
||||
])
|
||||
AC_SUBST($1)])
|
||||
|
||||
dnl Local Variables:
|
||||
dnl mode: autoconf
|
||||
dnl End:
|
||||
-11156
File diff suppressed because it is too large
Load Diff
-239
@@ -1,239 +0,0 @@
|
||||
#!/bin/bash -norc
|
||||
dnl This file is an input file used by the GNU "autoconf" program to
|
||||
dnl generate the file "configure", which is run during Tcl installation
|
||||
dnl to configure the system for the local environment.
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Sample configure.ac for Tcl Extensions. The only places you should
|
||||
# need to modify this file are marked by the string __CHANGE__
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# __CHANGE__
|
||||
# Set your package name and version numbers here.
|
||||
#
|
||||
# This initializes the environment with PACKAGE_NAME and PACKAGE_VERSION
|
||||
# set as provided. These will also be added as -D defs in your Makefile
|
||||
# so you can encode the package version directly into the source files.
|
||||
# This will also define a special symbol for Windows (BUILD_<PACKAGE_NAME>
|
||||
# so that we create the export library with the dll.
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
AC_INIT([tdbcmysql],[1.1.13])
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Call TEA_INIT as the first TEA_ macro to set up initial vars.
|
||||
# This will define a ${TEA_PLATFORM} variable == "unix" or "windows"
|
||||
# as well as PKG_LIB_FILE and PKG_STUB_LIB_FILE.
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
TEA_INIT()
|
||||
|
||||
AC_CONFIG_AUX_DIR(tclconfig)
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Load the tclConfig.sh file
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
TEA_PATH_TCLCONFIG
|
||||
TEA_LOAD_TCLCONFIG
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Load the tkConfig.sh file if necessary (Tk extension)
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
#TEA_PATH_TKCONFIG
|
||||
#TEA_LOAD_TKCONFIG
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Load the tclooConfig.sh file on Tcl versions where oo is an
|
||||
# extension.
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
if test "${TCL_MAJOR_VERSION}" -lt 8 ; then
|
||||
AC_MSG_ERROR([${PACKAGE_NAME} ${PACKAGE_VERSION} requires Tcl 8.6 or newer.
|
||||
Found configuration for Tcl ${TCL_VERSION}.])
|
||||
fi
|
||||
if test "${TCL_MAJOR_VERSION}" -eq 8 ; then
|
||||
if test "${TCL_MINOR_VERSION}" -lt 6 ; then
|
||||
AC_MSG_ERROR([${PACKAGE_NAME} ${PACKAGE_VERSION} requires Tcl 8.6 or newer.
|
||||
Found configuration for Tcl ${TCL_VERSION}.])
|
||||
fi
|
||||
TCLOO_CFLAGS=''
|
||||
fi
|
||||
TCL_VERSION_REQ=8.6; AC_SUBST(TCL_VERSION_REQ)
|
||||
|
||||
TEA_PATH_CONFIG(tdbc)
|
||||
TEA_LOAD_CONFIG(tdbc)
|
||||
# The next bit probably ought to be in TEA_LOAD_CONFIG
|
||||
AC_MSG_WARN([Looking for "${tdbc_BIN_DIR}/Makefile"])
|
||||
if test -f "${tdbc_BIN_DIR}/Makefile" ; then
|
||||
AC_MSG_WARN([Found Makefile - using build include spec and lib specs for tdbc])
|
||||
tdbc_INCLUDE_SPEC=${tdbc_BUILD_INCLUDE_SPEC}
|
||||
tdbc_LIBRARY_PATH=${tdbc_BUILD_LIBRARY_PATH}
|
||||
fi
|
||||
AC_SUBST(tdbc_LIBRARY_PATH)
|
||||
AC_SUBST(TDBC_VERSION)
|
||||
AC_SUBST(tdbc_SRC_DIR)
|
||||
AC_SUBST(tdbc_BIN_DIR)
|
||||
AC_SUBST(TDBC_LIB_FILE)
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Handle the --prefix=... option by defaulting to what Tcl gave.
|
||||
# Must be called after TEA_LOAD_TCLCONFIG and before TEA_SETUP_COMPILER.
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
TEA_PREFIX
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Standard compiler checks.
|
||||
# This sets up CC by using the CC env var, or looks for gcc otherwise.
|
||||
# This also calls AC_PROG_CC and a few others to create the basic setup
|
||||
# necessary to compile executables.
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
TEA_SETUP_COMPILER
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Setup inlining if available. Check sizeof long long, long.
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
AC_C_INLINE
|
||||
AC_CHECK_TYPE([long long],[
|
||||
AC_DEFINE([HAVE_LONG_LONG],[1])
|
||||
AC_CHECK_SIZEOF([long long])
|
||||
],[],[])
|
||||
AC_CHECK_SIZEOF([long])
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# __CHANGE__
|
||||
# Specify the C source files to compile in TEA_ADD_SOURCES,
|
||||
# public headers that need to be installed in TEA_ADD_HEADERS,
|
||||
# stub library C source files to compile in TEA_ADD_STUB_SOURCES,
|
||||
# and runtime Tcl library files in TEA_ADD_TCL_SOURCES.
|
||||
# This defines PKG(_STUB)_SOURCES, PKG(_STUB)_OBJECTS, PKG_HEADERS
|
||||
# and PKG_TCL_SOURCES.
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
TEA_ADD_SOURCES(generic/tdbcmysql.c generic/mysqlStubInit.c)
|
||||
TEA_ADD_HEADERS(generic/fakemysql.h generic/mysqlStubs.h)
|
||||
if test "${TCL_MAJOR_VERSION}" -eq 8 ; then
|
||||
if test "${TCL_MINOR_VERSION}" -eq 5 ; then
|
||||
TEA_ADD_INCLUDES([${TCLOO_INCLUDE_SPEC}])
|
||||
TEA_ADD_LIBS([${TCLOO_STUB_LIB_SPEC}])
|
||||
fi
|
||||
fi
|
||||
TEA_ADD_CFLAGS([${TCLOO_CFLAGS}])
|
||||
TEA_ADD_INCLUDES([${tdbc_INCLUDE_SPEC}])
|
||||
if test "x${TEA_PLATFORM}" = "xwindows" -a "x${GCC}" != "xyes" ; then
|
||||
TEA_ADD_LIBS([\"`${CYGPATH} ${tdbc_STUB_LIB_PATH}`\"])
|
||||
else
|
||||
TEA_ADD_LIBS([${tdbc_STUB_LIB_SPEC}])
|
||||
fi
|
||||
TEA_ADD_CFLAGS([${tdbc_CFLAGS}])
|
||||
TEA_ADD_STUB_SOURCES()
|
||||
TEA_ADD_TCL_SOURCES([library/tdbcmysql.tcl])
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# __CHANGE__
|
||||
#
|
||||
# You can add more files to clean if your extension creates any extra
|
||||
# files by extending CLEANFILES.
|
||||
# Add pkgIndex.tcl if it is generated in the Makefile instead of ./configure
|
||||
# and change Makefile.in to move it from CONFIG_CLEAN_FILES to BINARIES var.
|
||||
#
|
||||
# A few miscellaneous platform-specific items:
|
||||
# TEA_ADD_* any platform specific compiler/build info here.
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
#CLEANFILES="$CLEANFILES pkgIndex.tcl"
|
||||
if test "${TEA_PLATFORM}" = "windows" ; then
|
||||
# Ensure no empty if clauses
|
||||
:
|
||||
#TEA_ADD_SOURCES([win/winFile.c])
|
||||
#TEA_ADD_INCLUDES([-I\"$(${CYGPATH} ${srcdir}/win)\"])
|
||||
else
|
||||
# Ensure no empty else clauses
|
||||
:
|
||||
#TEA_ADD_SOURCES([unix/unixFile.c])
|
||||
#TEA_ADD_LIBS([-lsuperfly])
|
||||
fi
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# __CHANGE__
|
||||
# Choose which headers you need. Extension authors should try very
|
||||
# hard to only rely on the Tcl public header files. Internal headers
|
||||
# contain private data structures and are subject to change without
|
||||
# notice.
|
||||
# This MUST be called after TEA_LOAD_TCLCONFIG / TEA_LOAD_TKCONFIG
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
TEA_PUBLIC_TCL_HEADERS
|
||||
#TEA_PRIVATE_TCL_HEADERS
|
||||
|
||||
#TEA_PUBLIC_TK_HEADERS
|
||||
#TEA_PRIVATE_TK_HEADERS
|
||||
#TEA_PATH_X
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Check whether --enable-threads or --disable-threads was given.
|
||||
# This auto-enables if Tcl was compiled threaded.
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
TEA_ENABLE_THREADS
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# The statement below defines a collection of symbols related to
|
||||
# building as a shared library instead of a static library.
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
TEA_ENABLE_SHARED
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# This macro figures out what flags to use with the compiler/linker
|
||||
# when building shared/static debug/optimized objects. This information
|
||||
# can be taken from the tclConfig.sh file, but this figures it all out.
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
TEA_CONFIG_CFLAGS
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Set the default compiler switches based on the --enable-symbols option.
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
TEA_ENABLE_SYMBOLS
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Integer pointer types used by the (U)INT2PTR / PTR2(U)INT macros.
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
AC_TYPE_INTPTR_T
|
||||
AC_TYPE_UINTPTR_T
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# This macro generates a line to use when building a library. It
|
||||
# depends on values set by the TEA_ENABLE_SHARED, TEA_ENABLE_SYMBOLS,
|
||||
# and TEA_LOAD_TCLCONFIG macros above.
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
TEA_MAKE_LIB
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Determine the name of the tclsh and/or wish executables in the
|
||||
# Tcl and Tk build directories or the location they were installed
|
||||
# into. These paths are used to support running test cases only,
|
||||
# the Makefile should not be making use of these paths to generate
|
||||
# a pkgIndex.tcl file or anything else at extension build time.
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
TEA_PROG_TCLSH
|
||||
#TEA_PROG_WISH
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Finally, substitute all of the various values into the Makefile.
|
||||
# You may alternatively have a special pkgIndex.tcl.in or other files
|
||||
# which require substituting the AC variables in. Include these here.
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
AC_CONFIG_FILES([Makefile pkgIndex.tcl])
|
||||
AC_OUTPUT
|
||||
@@ -1,175 +0,0 @@
|
||||
'\"
|
||||
.\" tdbc_mysql.n --
|
||||
.\"
|
||||
.\" Copyright (c) 2008 by Kevin B. Kenny.
|
||||
.\"
|
||||
.\" See the file "license.terms" for information on usage and redistribution of
|
||||
.\" this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
.TH "tdbc::mysql" n 8.6 Tcl "Tcl Database Connectivity"
|
||||
.\" .so man.macros
|
||||
.if t .wh -1.3i ^B
|
||||
.nr ^l \n(.l
|
||||
.ad b
|
||||
.\" # BS - start boxed text
|
||||
.\" # ^y = starting y location
|
||||
.\" # ^b = 1
|
||||
.de BS
|
||||
.br
|
||||
.mk ^y
|
||||
.nr ^b 1u
|
||||
.if n .nf
|
||||
.if n .ti 0
|
||||
.if n \l'\\n(.lu\(ul'
|
||||
.if n .fi
|
||||
..
|
||||
.\" # BE - end boxed text (draw box now)
|
||||
.de BE
|
||||
.nf
|
||||
.ti 0
|
||||
.mk ^t
|
||||
.ie n \l'\\n(^lu\(ul'
|
||||
.el \{\
|
||||
.\" Draw four-sided box normally, but don't draw top of
|
||||
.\" box if the box started on an earlier page.
|
||||
.ie !\\n(^b-1 \{\
|
||||
\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
|
||||
.\}
|
||||
.el \}\
|
||||
\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
|
||||
.\}
|
||||
.\}
|
||||
.fi
|
||||
.br
|
||||
.nr ^b 0
|
||||
..
|
||||
.\" # CS - begin code excerpt
|
||||
.de CS
|
||||
.RS
|
||||
.nf
|
||||
.ta .25i .5i .75i 1i
|
||||
..
|
||||
.\" # CE - end code excerpt
|
||||
.de CE
|
||||
.fi
|
||||
.RE
|
||||
..
|
||||
.BS
|
||||
.SH "NAME"
|
||||
tdbc::mysql \- TDBC-MYSQL bridge
|
||||
.SH "SYNOPSIS"
|
||||
package require \fBtdbc::mysql 1.0\fR
|
||||
.sp
|
||||
\fBtdbc::mysql::connection create\fR \fIdb\fR ?\fI-option value...\fR?
|
||||
.br
|
||||
\fBtdbc::mysql::connection new\fR ?\fI-option value...\fR?
|
||||
.sp
|
||||
\fBtdbc::mysql::datasources\fR ?\fB-system\fR|\fB-user\fR?
|
||||
.sp
|
||||
\fBtdbc::mysql::drivers\fR
|
||||
.sp
|
||||
\fBtdbc::mysql::datasource\fR \fIcommand\fR \fIdriverName\fR ?\fIkeyword\fR-\fIvalue\fR?...
|
||||
.BE
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
The \fBtdbc::mysql\fR driver provides a database interface that conforms
|
||||
to Tcl DataBase Connectivity (TDBC) and allows a Tcl script to connect
|
||||
to a MySQL database.
|
||||
.PP
|
||||
Connection to an MYSQL database is established by invoking
|
||||
\fBtdbc::mysql::connection create\fR, passing it the name to give the
|
||||
database handle and a set of \fI-option-value\fR pairs. The available
|
||||
options are enumerated under CONNECTION OPTIONS below.
|
||||
As an alternative, \fBtdbc::mysql::connection new\fR may be used to create
|
||||
a database connection with an automatically assigned name. The return value
|
||||
from \fBtdbc::mysql::connection new\fR is the name that was chosen for the
|
||||
connection handle.
|
||||
.PP
|
||||
The side effect of \fBtdbc::mysql::connection create\fR is to create a
|
||||
new database connection.. See \fBtdbc::connection(n)\fR for the
|
||||
details of how to use the connection to manipulate a database.
|
||||
.SH "CONNECTION OPTIONS"
|
||||
.PP
|
||||
The \fBtdbc::mysql::connection create\fR object command supports the
|
||||
\fB-encoding\fR, \fB-isolation\fR, \fB-readonly\fR and \fB-timeout\fR
|
||||
options common to all TDBC drivers. The \fB-encoding\fR option will
|
||||
always fail unless the encoding is \fButf-8\fR; the database connection
|
||||
always uses UTF-8 encoding to be able to transfer arbitrary Unicode
|
||||
characters. The \fB-readonly\fR option must be \fB0\fR, because
|
||||
MySQL does not offer read-only connections.
|
||||
.PP
|
||||
In addition, the following options are recognized:
|
||||
.IP "\fB-host\fR \fIhostname\fR"
|
||||
Connects to the host specified by \fIhostname\fR. This option must be
|
||||
set on the initial creation of the connection; it cannot be changed
|
||||
after connecting. Default is to connect to the local host.
|
||||
.IP "\fB-port\fR \fInumber\fR"
|
||||
Connects to a MySQL server listening on the port specified by \fInumber\fR.
|
||||
This option may not be changed after connecting. It is used only when
|
||||
\fIhost\fR is specified and is not \fBlocalhost\fR.
|
||||
.IP "\fB-socket\fR \fIpath\fR"
|
||||
Connects to a MySQL server listening on the Unix socket or named
|
||||
pipe specified by \fIpath\fR . This option may not be changed after connecting.
|
||||
It is used only when \fI-host\fR is not specified or is \fBlocalhost\fR.
|
||||
.IP "\fB-user\fR \fIname\fR"
|
||||
Presents \fIname\fR as the user name to the MySQL server. Default is the
|
||||
current user ID.
|
||||
.IP "\fB-passwd\fR \fIpassword\fR"
|
||||
.IP "\fB-password\fR \fIpassword\fR"
|
||||
These two options are synonymous. They present the given \fIpassword\fR as
|
||||
the user's password to the MySQL server. Default is not to present a password.
|
||||
.IP "\fB-database\fR \fIname\fR"
|
||||
.IP "\fB-db\fR \fIname\fR"
|
||||
These two options are synonymous. They present the given \fIname\fR as the
|
||||
name of the default database to use in MySQL queries. If not specified,
|
||||
the default database for the current user is used.
|
||||
.IP "\fB-interactive\fR \fIflag\fR"
|
||||
The \fIflag\fR value must be a Boolean value. If it is \fBtrue\fR (or
|
||||
any equivalent), the default timeout is set for an interactive user,
|
||||
otherwise, the default timeout is set for a batch user. This option
|
||||
is meaningful only on initial connection. When using the \fBconfigure\fR
|
||||
method on a MySQL connection use the \fB-timeout\fR option to set the
|
||||
timeout desired.
|
||||
.IP \fB-ssl_ca\fR \fIstring\fR
|
||||
.IP \fB-ssl_capath\fR \fIstring\fR
|
||||
.IP \fB-ssl_cert\fR \fIstring\fR
|
||||
.IP \fB-ssl_cipher\fR \fIstring\fR
|
||||
.IP \fB-ssl_key\fR \fIstring\fR
|
||||
These five options set the certificate authority, certificate authority
|
||||
search path, SSL certificate, transfer cipher, and SSL key to the
|
||||
given \fIstring\fR arguments. These options may be specified only
|
||||
on initial connection to a database, not in the \fBconfigure\fR method
|
||||
of an existing connection. Default is not to use SSL.
|
||||
.SH EXAMPLES
|
||||
.PP
|
||||
.CS
|
||||
tdbc::mysql::connection -user joe -passwd sesame -db joes_database
|
||||
.CE
|
||||
Connects to the MySQL server on the local host using the default
|
||||
connection method, presenting user ID 'joe' and password 'sesame'.
|
||||
Uses 'joes_database' as the default database name.
|
||||
.SH "ADDITIONAL CONNECTION METHODS"
|
||||
In addition to the usual methods on the tdbc::connection(n) object,
|
||||
connections to a MySQL database support one additional method:
|
||||
.IP "\fI$connection\fR \fBevaldirect\fR \fIsqlStatement\fR"
|
||||
This method takes the given \fIsqlStatement\fR and interprets as
|
||||
MySQL native SQL code and evaluates it without preparing it. The
|
||||
statement may not contain variable substitutions. The result set
|
||||
is returned as a list of lists, with each sublist being the list
|
||||
of columns of a result row formatted as character strings. Note that
|
||||
the string formatting is done by MySQL and not by Tcl, so details
|
||||
like the appearance of floating point numbers may differ.
|
||||
\fIThis command is not recommended\fR for anything where the usual
|
||||
\fIprepare\fR or \fIpreparecall\fR methods work correctly. It is
|
||||
provided so that data management language statements that are
|
||||
not implemented in MySQL's prepared statement API, such as
|
||||
\fBCREATE DATABASE\fR or \fBCREATE PROCEDURE\fR, can be executed.
|
||||
.SH "SEE ALSO"
|
||||
tdbc(n), tdbc::connection(n), tdbc::resultset(n), tdbc::statement(n)
|
||||
.SH "KEYWORDS"
|
||||
TDBC, SQL, MySQL, database, connectivity, connection
|
||||
.SH "COPYRIGHT"
|
||||
Copyright (c) 2009 by Kevin B. Kenny.
|
||||
.\" Local Variables:
|
||||
.\" mode: nroff
|
||||
.\" End:
|
||||
.\"
|
||||
@@ -1,335 +0,0 @@
|
||||
/*
|
||||
* fakemysql.h --
|
||||
*
|
||||
* Fake definitions of the MySQL API sufficient to build tdbc::mysql
|
||||
* without having an MySQL installation on the build system. This file
|
||||
* comprises only data type, constant and function definitions.
|
||||
*
|
||||
* The programmers of this file believe that it contains material not
|
||||
* subject to copyright under the doctrines of scenes a faire and
|
||||
* of merger of idea and expression. Accordingly, this file is in the
|
||||
* public domain.
|
||||
*
|
||||
*-----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef FAKEMYSQL_H_INCLUDED
|
||||
#define FAKEMYSQL_H_INCLUDED
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#ifndef MODULE_SCOPE
|
||||
#define MODULE_SCOPE extern
|
||||
#endif
|
||||
|
||||
MODULE_SCOPE Tcl_LoadHandle MysqlInitStubs(Tcl_Interp*);
|
||||
|
||||
#ifdef _WIN32
|
||||
#define STDCALL __stdcall
|
||||
#else
|
||||
#define STDCALL /* nothing */
|
||||
#endif
|
||||
|
||||
enum enum_field_types {
|
||||
MYSQL_TYPE_DECIMAL=0,
|
||||
MYSQL_TYPE_TINY=1,
|
||||
MYSQL_TYPE_SHORT=2,
|
||||
MYSQL_TYPE_LONG=3,
|
||||
MYSQL_TYPE_FLOAT=4,
|
||||
MYSQL_TYPE_DOUBLE=5,
|
||||
MYSQL_TYPE_NULL=6,
|
||||
MYSQL_TYPE_TIMESTAMP=7,
|
||||
MYSQL_TYPE_LONGLONG=8,
|
||||
MYSQL_TYPE_INT24=9,
|
||||
MYSQL_TYPE_DATE=10,
|
||||
MYSQL_TYPE_TIME=11,
|
||||
MYSQL_TYPE_DATETIME=12,
|
||||
MYSQL_TYPE_YEAR=13,
|
||||
MYSQL_TYPE_NEWDATE=14,
|
||||
MYSQL_TYPE_VARCHAR=15,
|
||||
MYSQL_TYPE_BIT=16,
|
||||
MYSQL_TYPE_NEWDECIMAL=246,
|
||||
MYSQL_TYPE_ENUM=247,
|
||||
MYSQL_TYPE_SET=248,
|
||||
MYSQL_TYPE_TINY_BLOB=249,
|
||||
MYSQL_TYPE_MEDIUM_BLOB=250,
|
||||
MYSQL_TYPE_LONG_BLOB=251,
|
||||
MYSQL_TYPE_BLOB=252,
|
||||
MYSQL_TYPE_VAR_STRING=253,
|
||||
MYSQL_TYPE_STRING=254,
|
||||
MYSQL_TYPE_GEOMETRY=255
|
||||
};
|
||||
|
||||
enum mysql_option {
|
||||
MYSQL_SET_CHARSET_NAME=7,
|
||||
};
|
||||
|
||||
enum mysql_status {
|
||||
MYSQL_STATUS_READY=0,
|
||||
};
|
||||
|
||||
#define CLIENT_COMPRESS 32
|
||||
#define CLIENT_INTERACTIVE 1024
|
||||
#define MYSQL_DATA_TRUNCATED 101
|
||||
#define MYSQL_ERRMSG_SIZE 512
|
||||
#define MYSQL_NO_DATA 100
|
||||
#define SCRAMBLE_LENGTH 20
|
||||
#define SQLSTATE_LENGTH 5
|
||||
|
||||
typedef struct st_list LIST;
|
||||
typedef struct st_mem_root MEM_ROOT;
|
||||
typedef struct st_mysql MYSQL;
|
||||
typedef struct st_mysql_bind MYSQL_BIND;
|
||||
typedef struct st_mysql_field MYSQL_FIELD;
|
||||
typedef struct st_mysql_res MYSQL_RES;
|
||||
typedef char** MYSQL_ROW;
|
||||
typedef struct st_mysql_stmt MYSQL_STMT;
|
||||
typedef char my_bool;
|
||||
#ifndef Socket_defined
|
||||
typedef int my_socket;
|
||||
#define INVALID_SOCKET -1
|
||||
#endif
|
||||
typedef Tcl_WideUInt my_ulonglong;
|
||||
typedef struct st_net NET;
|
||||
typedef struct st_used_mem USED_MEM;
|
||||
typedef struct st_vio Vio;
|
||||
|
||||
struct st_mem_root {
|
||||
USED_MEM *free;
|
||||
USED_MEM *used;
|
||||
USED_MEM *pre_alloc;
|
||||
size_t min_malloc;
|
||||
size_t block_size;
|
||||
unsigned int block_num;
|
||||
unsigned int first_block_usage;
|
||||
void (*error_handler)(void);
|
||||
};
|
||||
|
||||
struct st_mysql_options {
|
||||
unsigned int connect_timeout;
|
||||
unsigned int read_timeout;
|
||||
unsigned int write_timeout;
|
||||
unsigned int port;
|
||||
unsigned int protocol;
|
||||
unsigned long client_flag;
|
||||
char *host;
|
||||
char *user;
|
||||
char *password;
|
||||
char *unix_socket;
|
||||
char *db;
|
||||
struct st_dynamic_array *init_commands;
|
||||
char *my_cnf_file;
|
||||
char *my_cnf_group;
|
||||
char *charset_dir;
|
||||
char *charset_name;
|
||||
char *ssl_key;
|
||||
char *ssl_cert;
|
||||
char *ssl_ca;
|
||||
char *ssl_capath;
|
||||
char *ssl_cipher;
|
||||
char *shared_memory_base_name;
|
||||
unsigned long max_allowed_packet;
|
||||
my_bool use_ssl;
|
||||
my_bool compress,named_pipe;
|
||||
my_bool rpl_probe;
|
||||
my_bool rpl_parse;
|
||||
my_bool no_master_reads;
|
||||
#if !defined(CHECK_EMBEDDED_DIFFERENCES) || defined(EMBEDDED_LIBRARY)
|
||||
my_bool separate_thread;
|
||||
#endif
|
||||
enum mysql_option methods_to_use;
|
||||
char *client_ip;
|
||||
my_bool secure_auth;
|
||||
my_bool report_data_truncation;
|
||||
int (*local_infile_init)(void **, const char *, void *);
|
||||
int (*local_infile_read)(void *, char *, unsigned int);
|
||||
void (*local_infile_end)(void *);
|
||||
int (*local_infile_error)(void *, char *, unsigned int);
|
||||
void *local_infile_userdata;
|
||||
void *extension;
|
||||
};
|
||||
|
||||
struct st_net {
|
||||
#if !defined(CHECK_EMBEDDED_DIFFERENCES) || !defined(EMBEDDED_LIBRARY)
|
||||
Vio *vio;
|
||||
unsigned char *buff;
|
||||
unsigned char *buff_end;
|
||||
unsigned char *write_pos;
|
||||
unsigned char *read_pos;
|
||||
my_socket fd;
|
||||
unsigned long remain_in_buf;
|
||||
unsigned long length;
|
||||
unsigned long buf_length;
|
||||
unsigned long where_b;
|
||||
unsigned long max_packet;
|
||||
unsigned long max_packet_size;
|
||||
unsigned int pkt_nr;
|
||||
unsigned int compress_pkt_nr;
|
||||
unsigned int write_timeout;
|
||||
unsigned int read_timeout;
|
||||
unsigned int retry_count;
|
||||
int fcntl;
|
||||
unsigned int *return_status;
|
||||
unsigned char reading_or_writing;
|
||||
char save_char;
|
||||
my_bool unused0;
|
||||
my_bool unused;
|
||||
my_bool compress;
|
||||
my_bool unused1;
|
||||
#endif
|
||||
unsigned char *query_cache_query;
|
||||
unsigned int last_errno;
|
||||
unsigned char error;
|
||||
my_bool unused2;
|
||||
my_bool return_errno;
|
||||
char last_error[MYSQL_ERRMSG_SIZE];
|
||||
char sqlstate[SQLSTATE_LENGTH+1];
|
||||
void *extension;
|
||||
#if defined(MYSQL_SERVER) && !defined(EMBEDDED_LIBRARY)
|
||||
my_bool skip_big_packet;
|
||||
#endif
|
||||
};
|
||||
|
||||
/*
|
||||
* st_mysql differs between 5.0 and 5.1, but the 5.0 version is a
|
||||
* strict subset, we don't use any of the 5.1 fields, and we don't
|
||||
* ever allocate the structure ourselves.
|
||||
*/
|
||||
|
||||
struct st_mysql {
|
||||
NET net;
|
||||
unsigned char *connector_fd;
|
||||
char *host;
|
||||
char *user;
|
||||
char *passwd;
|
||||
char *unix_socket;
|
||||
char *server_version;
|
||||
char *host_info;
|
||||
char *info;
|
||||
char *db;
|
||||
struct charset_info_st *charset;
|
||||
MYSQL_FIELD *fields;
|
||||
MEM_ROOT field_alloc;
|
||||
my_ulonglong affected_rows;
|
||||
my_ulonglong insert_id;
|
||||
my_ulonglong extra_info;
|
||||
unsigned long thread_id;
|
||||
unsigned long packet_length;
|
||||
unsigned int port;
|
||||
unsigned long client_flag;
|
||||
unsigned long server_capabilities;
|
||||
unsigned int protocol_version;
|
||||
unsigned int field_count;
|
||||
unsigned int server_status;
|
||||
unsigned int server_language;
|
||||
unsigned int warning_count;
|
||||
struct st_mysql_options options;
|
||||
enum mysql_status status;
|
||||
my_bool free_me;
|
||||
my_bool reconnect;
|
||||
char scramble[SCRAMBLE_LENGTH+1];
|
||||
my_bool rpl_pivot;
|
||||
struct st_mysql *master;
|
||||
struct st_mysql *next_slave;
|
||||
struct st_mysql* last_used_slave;
|
||||
struct st_mysql* last_used_con;
|
||||
LIST *stmts;
|
||||
const struct st_mysql_methods *methods;
|
||||
void *thd;
|
||||
my_bool *unbuffered_fetch_owner;
|
||||
char *info_buffer;
|
||||
};
|
||||
|
||||
/*
|
||||
* There are different version of the MYSQL_BIND structure before and after
|
||||
* MySQL 5.1. We go after the fields of the structure using accessor functions
|
||||
* so that the code in this file is compatible with both versions.
|
||||
*/
|
||||
|
||||
struct st_mysql_bind_51 { /* Post-5.1 */
|
||||
unsigned long* length;
|
||||
my_bool* is_null;
|
||||
void* buffer;
|
||||
my_bool* error;
|
||||
unsigned char* row_ptr;
|
||||
void (*store_param_func)(NET* net, MYSQL_BIND* param);
|
||||
void (*fetch_result)(MYSQL_BIND*, MYSQL_FIELD*, unsigned char**);
|
||||
void (*skip_result)(MYSQL_BIND*, MYSQL_FIELD*, unsigned char**);
|
||||
unsigned long buffer_length;
|
||||
unsigned long offset;
|
||||
unsigned long length_value;
|
||||
unsigned int param_number;
|
||||
unsigned int pack_length;
|
||||
enum enum_field_types buffer_type;
|
||||
my_bool error_value;
|
||||
my_bool is_unsigned;
|
||||
my_bool long_data_used;
|
||||
my_bool is_null_value;
|
||||
void* extension;
|
||||
};
|
||||
|
||||
struct st_mysql_bind_50 { /* Pre-5.1 */
|
||||
unsigned long* length;
|
||||
my_bool* is_null;
|
||||
void* buffer;
|
||||
my_bool* error;
|
||||
enum enum_field_types buffer_type;
|
||||
unsigned long buffer_length;
|
||||
unsigned char* row_ptr;
|
||||
unsigned long offset;
|
||||
unsigned long length_value;
|
||||
unsigned int param_number;
|
||||
unsigned int pack_length;
|
||||
my_bool error_value;
|
||||
my_bool is_unsigned;
|
||||
my_bool long_data_used;
|
||||
my_bool is_null_value;
|
||||
void (*store_param_func)(NET* net, MYSQL_BIND* param);
|
||||
void (*fetch_result)(MYSQL_BIND*, MYSQL_FIELD*, unsigned char**);
|
||||
void (*skip_result)(MYSQL_BIND*, MYSQL_FIELD*, unsigned char**);
|
||||
};
|
||||
|
||||
/*
|
||||
* There are also different versions of the MYSQL_FIELD structure; fortunately,
|
||||
* the 5.1 version is a strict extension of the 5.0 version.
|
||||
*/
|
||||
|
||||
struct st_mysql_field {
|
||||
char* name;
|
||||
char *org_name;
|
||||
char* table;
|
||||
char* org_table;
|
||||
char* db;
|
||||
char* catalog;
|
||||
char* def;
|
||||
unsigned long length;
|
||||
unsigned long max_length;
|
||||
unsigned int name_length;
|
||||
unsigned int org_name_length;
|
||||
unsigned int table_length;
|
||||
unsigned int org_table_length;
|
||||
unsigned int db_length;
|
||||
unsigned int catalog_length;
|
||||
unsigned int def_length;
|
||||
unsigned int flags;
|
||||
unsigned int decimals;
|
||||
unsigned int charsetnr;
|
||||
enum enum_field_types type;
|
||||
};
|
||||
struct st_mysql_field_50 {
|
||||
struct st_mysql_field field;
|
||||
};
|
||||
struct st_mysql_field_51 {
|
||||
struct st_mysql_field field;
|
||||
void* extension;
|
||||
};
|
||||
#define NOT_NULL_FLAG 1
|
||||
|
||||
#define IS_NUM(t) ((t) <= MYSQL_TYPE_INT24 || (t) == MYSQL_TYPE_YEAR || (t) == MYSQL_TYPE_NEWDECIMAL)
|
||||
|
||||
#define mysql_library_init mysql_server_init
|
||||
#define mysql_library_end mysql_server_end
|
||||
|
||||
#include "mysqlStubs.h"
|
||||
|
||||
#endif /* not FAKEMYSQL_H_INCLUDED */
|
||||
@@ -1,24 +0,0 @@
|
||||
/*
|
||||
* Macros used to cast between pointers and integers (e.g. when storing an int
|
||||
* in ClientData), on 64-bit architectures they avoid gcc warning about "cast
|
||||
* to/from pointer from/to integer of different size".
|
||||
*/
|
||||
|
||||
#if !defined(INT2PTR) && !defined(PTR2INT)
|
||||
# if defined(HAVE_INTPTR_T) || defined(intptr_t)
|
||||
# define INT2PTR(p) ((void *)(intptr_t)(p))
|
||||
# define PTR2INT(p) ((int)(intptr_t)(p))
|
||||
# else
|
||||
# define INT2PTR(p) ((void *)(p))
|
||||
# define PTR2INT(p) ((int)(p))
|
||||
# endif
|
||||
#endif
|
||||
#if !defined(UINT2PTR) && !defined(PTR2UINT)
|
||||
# if defined(HAVE_UINTPTR_T) || defined(uintptr_t)
|
||||
# define UINT2PTR(p) ((void *)(uintptr_t)(p))
|
||||
# define PTR2UINT(p) ((unsigned int)(uintptr_t)(p))
|
||||
# else
|
||||
# define UINT2PTR(p) ((void *)(p))
|
||||
# define PTR2UINT(p) ((unsigned int)(p))
|
||||
# endif
|
||||
#endif
|
||||
@@ -1,58 +0,0 @@
|
||||
# mysqlStubDefs.txt --
|
||||
#
|
||||
# Definitions of routines in the MySQL libraries that will be
|
||||
# resolved and imported at run time.
|
||||
#
|
||||
# This file contains only function declarations necessary to interoperability
|
||||
# with the SQL/CLI application programming interface. The programmers believe
|
||||
# that the material in this file is not subject to copyright, under the
|
||||
# doctrines of scenes a faire and of the merger of idea and expression.
|
||||
# Accordingly, this file is in the public domain.
|
||||
#
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
* STUBSTRUCT: mysqlStubs
|
||||
* LIBRARY: mariadbclient mariadb mysqlclient_r mysqlclient mysql
|
||||
* CONVENTION: STDCALL
|
||||
|
||||
int mysql_server_init(int, char**, char**);
|
||||
void mysql_server_end(void);
|
||||
my_ulonglong mysql_affected_rows(MYSQL*);
|
||||
my_bool mysql_autocommit(MYSQL*, my_bool);
|
||||
my_bool mysql_change_user(MYSQL*, const char*, const char*, const char*);
|
||||
my_bool mysql_close(MYSQL*);
|
||||
my_bool mysql_commit(MYSQL*);
|
||||
unsigned int mysql_errno(MYSQL*);
|
||||
const char* mysql_error(MYSQL*);
|
||||
MYSQL_FIELD* mysql_fetch_fields(MYSQL_RES*);
|
||||
unsigned long* mysql_fetch_lengths(MYSQL_RES*);
|
||||
MYSQL_ROW mysql_fetch_row(MYSQL_RES*);
|
||||
unsigned int mysql_field_count(MYSQL*);
|
||||
void mysql_free_result(MYSQL_RES*);
|
||||
unsigned long mysql_get_client_version(void);
|
||||
MYSQL* mysql_init(MYSQL*);
|
||||
MYSQL_RES* mysql_list_fields(MYSQL*, const char*, const char*);
|
||||
MYSQL_RES* mysql_list_tables(MYSQL*, const char*);
|
||||
unsigned int mysql_num_fields(MYSQL_RES*);
|
||||
int mysql_options(MYSQL*, enum mysql_option, const void*);
|
||||
int mysql_query(MYSQL*, const char*);
|
||||
MYSQL* mysql_real_connect(MYSQL*, const char*, const char*, const char*, const char*, unsigned int, const char*, unsigned long);
|
||||
my_bool mysql_rollback(MYSQL*);
|
||||
int mysql_select_db(MYSQL*, const char*);
|
||||
const char* mysql_sqlstate(MYSQL*);
|
||||
my_bool mysql_ssl_set(MYSQL*, const char*, const char*, const char*, const char*, const char*);
|
||||
my_ulonglong mysql_stmt_affected_rows(MYSQL_STMT*);
|
||||
my_bool mysql_stmt_bind_param(MYSQL_STMT*, MYSQL_BIND*);
|
||||
my_bool mysql_stmt_bind_result(MYSQL_STMT*, MYSQL_BIND*);
|
||||
my_bool mysql_stmt_close(MYSQL_STMT*);
|
||||
unsigned int mysql_stmt_errno(MYSQL_STMT*);
|
||||
const char* mysql_stmt_error(MYSQL_STMT*);
|
||||
int mysql_stmt_execute(MYSQL_STMT*);
|
||||
int mysql_stmt_fetch(MYSQL_STMT*);
|
||||
int mysql_stmt_fetch_column(MYSQL_STMT*, MYSQL_BIND*, unsigned int, unsigned long);
|
||||
MYSQL_STMT* mysql_stmt_init(MYSQL*);
|
||||
int mysql_stmt_prepare(MYSQL_STMT*, const char*, unsigned long);
|
||||
MYSQL_RES* mysql_stmt_result_metadata(MYSQL_STMT*);
|
||||
const char* mysql_stmt_sqlstate(MYSQL_STMT*);
|
||||
int mysql_stmt_store_result(MYSQL_STMT*);
|
||||
MYSQL_RES* mysql_store_result(MYSQL*);
|
||||
@@ -1,188 +0,0 @@
|
||||
/*
|
||||
* mysqlStubInit.c --
|
||||
*
|
||||
* Stubs tables for the foreign MySQL libraries so that
|
||||
* Tcl extensions can use them without the linker's knowing about them.
|
||||
*
|
||||
* @CREATED@ 2022-09-17 18:18:42Z by genExtStubs.tcl from ./generic/mysqlStubDefs.txt
|
||||
*
|
||||
* Copyright (c) 2010 by Kevin B. Kenny.
|
||||
*
|
||||
* Please refer to the file, 'license.terms' for the conditions on
|
||||
* redistribution of this file and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
*
|
||||
*-----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#include <tcl.h>
|
||||
#ifdef _WIN32
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#endif
|
||||
#include "fakemysql.h"
|
||||
|
||||
/*
|
||||
* Static data used in this file
|
||||
*/
|
||||
|
||||
/*
|
||||
* Names of the libraries that might contain the MySQL API
|
||||
*/
|
||||
|
||||
#if defined(__CYGWIN__) && !defined(LIBPREFIX)
|
||||
# define LIBPREFIX "cyg"
|
||||
#else
|
||||
# define LIBPREFIX "lib"
|
||||
#endif
|
||||
|
||||
static const char *const mysqlStubLibNames[] = {
|
||||
/* @LIBNAMES@: DO NOT EDIT THESE NAMES */
|
||||
"mariadbclient", "mariadb", "mysqlclient_r", "mysqlclient", "mysql", NULL
|
||||
/* @END@ */
|
||||
};
|
||||
|
||||
/* ABI Version numbers of the MySQL API that we can cope with */
|
||||
|
||||
static const char mysqlSuffixes[][4] = {
|
||||
"", ".3", ".21", ".20", ".19", ".18", ".17", ".16", ".15"
|
||||
};
|
||||
|
||||
/* Names of the functions that we need from MySQL */
|
||||
|
||||
static const char *const mysqlSymbolNames[] = {
|
||||
/* @SYMNAMES@: DO NOT EDIT THESE NAMES */
|
||||
"mysql_server_init",
|
||||
"mysql_server_end",
|
||||
"mysql_affected_rows",
|
||||
"mysql_autocommit",
|
||||
"mysql_change_user",
|
||||
"mysql_close",
|
||||
"mysql_commit",
|
||||
"mysql_errno",
|
||||
"mysql_error",
|
||||
"mysql_fetch_fields",
|
||||
"mysql_fetch_lengths",
|
||||
"mysql_fetch_row",
|
||||
"mysql_field_count",
|
||||
"mysql_free_result",
|
||||
"mysql_get_client_version",
|
||||
"mysql_init",
|
||||
"mysql_list_fields",
|
||||
"mysql_list_tables",
|
||||
"mysql_num_fields",
|
||||
"mysql_options",
|
||||
"mysql_query",
|
||||
"mysql_real_connect",
|
||||
"mysql_rollback",
|
||||
"mysql_select_db",
|
||||
"mysql_sqlstate",
|
||||
"mysql_ssl_set",
|
||||
"mysql_stmt_affected_rows",
|
||||
"mysql_stmt_bind_param",
|
||||
"mysql_stmt_bind_result",
|
||||
"mysql_stmt_close",
|
||||
"mysql_stmt_errno",
|
||||
"mysql_stmt_error",
|
||||
"mysql_stmt_execute",
|
||||
"mysql_stmt_fetch",
|
||||
"mysql_stmt_fetch_column",
|
||||
"mysql_stmt_init",
|
||||
"mysql_stmt_prepare",
|
||||
"mysql_stmt_result_metadata",
|
||||
"mysql_stmt_sqlstate",
|
||||
"mysql_stmt_store_result",
|
||||
"mysql_store_result",
|
||||
NULL
|
||||
/* @END@ */
|
||||
};
|
||||
|
||||
/*
|
||||
* Table containing pointers to the functions named above.
|
||||
*/
|
||||
|
||||
static mysqlStubDefs mysqlStubsTable;
|
||||
const mysqlStubDefs* mysqlStubs = &mysqlStubsTable;
|
||||
|
||||
/*
|
||||
*-----------------------------------------------------------------------------
|
||||
*
|
||||
* MysqlInitStubs --
|
||||
*
|
||||
* Initialize the Stubs table for the MySQL API
|
||||
*
|
||||
* Results:
|
||||
* Returns the handle to the loaded MySQL client library, or NULL
|
||||
* if the load is unsuccessful.
|
||||
*
|
||||
* Leaves the name of the loaded client library in the interpreter if
|
||||
* successful.
|
||||
*
|
||||
* Leaves an error message in the interpreter on failure.
|
||||
*
|
||||
*-----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
MODULE_SCOPE Tcl_LoadHandle
|
||||
MysqlInitStubs(Tcl_Interp* interp)
|
||||
{
|
||||
int status; /* Status of Tcl library calls */
|
||||
Tcl_Obj* path; /* Path name of a module to be loaded */
|
||||
Tcl_Obj* shlibext; /* Extension to use for load modules */
|
||||
Tcl_LoadHandle handle = NULL;
|
||||
/* Handle to a load module */
|
||||
int i;
|
||||
size_t j;
|
||||
|
||||
/* Determine the shared library extension */
|
||||
|
||||
status = Tcl_EvalEx(interp, "::info sharedlibextension", -1,
|
||||
TCL_EVAL_GLOBAL);
|
||||
if (status != TCL_OK) return NULL;
|
||||
shlibext = Tcl_GetObjResult(interp);
|
||||
Tcl_IncrRefCount(shlibext);
|
||||
|
||||
/* Walk the list of possible library names to find an MySQL client */
|
||||
|
||||
status = TCL_ERROR;
|
||||
for (i = 0; status == TCL_ERROR && mysqlStubLibNames[i] != NULL; ++i) {
|
||||
for (j = 0; status == TCL_ERROR && (j < sizeof(mysqlSuffixes)/sizeof(mysqlSuffixes[0])); ++j) {
|
||||
path = Tcl_NewStringObj(LIBPREFIX, -1);
|
||||
Tcl_AppendToObj(path, mysqlStubLibNames[i], -1);
|
||||
#ifdef __CYGWIN__
|
||||
if (*mysqlSuffixes[j]) {
|
||||
Tcl_AppendToObj(path, "-", -1);
|
||||
Tcl_AppendToObj(path, mysqlSuffixes[j]+1, -1);
|
||||
}
|
||||
#endif
|
||||
Tcl_AppendObjToObj(path, shlibext);
|
||||
#ifndef __CYGWIN__
|
||||
Tcl_AppendToObj(path, mysqlSuffixes[j], -1);
|
||||
#endif
|
||||
Tcl_IncrRefCount(path);
|
||||
|
||||
/* Try to load a client library and resolve symbols within it. */
|
||||
|
||||
Tcl_ResetResult(interp);
|
||||
status = Tcl_LoadFile(interp, path, mysqlSymbolNames, 0,
|
||||
&mysqlStubsTable, &handle);
|
||||
if (status != TCL_OK) {
|
||||
Tcl_DecrRefCount(path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Either we've successfully loaded a library (status == TCL_OK),
|
||||
* or we've run out of library names (in which case status==TCL_ERROR
|
||||
* and the error message reflects the last unsuccessful load attempt).
|
||||
*/
|
||||
Tcl_DecrRefCount(shlibext);
|
||||
if (status != TCL_OK) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Tcl_SetObjResult(interp, path);
|
||||
Tcl_DecrRefCount(path);
|
||||
|
||||
return handle;
|
||||
}
|
||||
@@ -1,101 +0,0 @@
|
||||
/*
|
||||
*-----------------------------------------------------------------------------
|
||||
*
|
||||
* ./generic/mysqlStubs.h --
|
||||
*
|
||||
* Stubs for procedures in mysqlStubDefs.txt
|
||||
*
|
||||
* Generated by genExtStubs.tcl: DO NOT EDIT
|
||||
* 2022-09-17 18:18:42Z
|
||||
*
|
||||
*-----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
typedef struct mysqlStubDefs {
|
||||
|
||||
/* Functions from libraries: mariadbclient mariadb mysqlclient_r mysqlclient mysql */
|
||||
|
||||
int (STDCALL*mysql_server_initPtr)(int, char**, char**);
|
||||
void (STDCALL*mysql_server_endPtr)(void);
|
||||
my_ulonglong (STDCALL*mysql_affected_rowsPtr)(MYSQL*);
|
||||
my_bool (STDCALL*mysql_autocommitPtr)(MYSQL*, my_bool);
|
||||
my_bool (STDCALL*mysql_change_userPtr)(MYSQL*, const char*, const char*, const char*);
|
||||
my_bool (STDCALL*mysql_closePtr)(MYSQL*);
|
||||
my_bool (STDCALL*mysql_commitPtr)(MYSQL*);
|
||||
unsigned int (STDCALL*mysql_errnoPtr)(MYSQL*);
|
||||
const char* (STDCALL*mysql_errorPtr)(MYSQL*);
|
||||
MYSQL_FIELD* (STDCALL*mysql_fetch_fieldsPtr)(MYSQL_RES*);
|
||||
unsigned long* (STDCALL*mysql_fetch_lengthsPtr)(MYSQL_RES*);
|
||||
MYSQL_ROW (STDCALL*mysql_fetch_rowPtr)(MYSQL_RES*);
|
||||
unsigned int (STDCALL*mysql_field_countPtr)(MYSQL*);
|
||||
void (STDCALL*mysql_free_resultPtr)(MYSQL_RES*);
|
||||
unsigned long (STDCALL*mysql_get_client_versionPtr)(void);
|
||||
MYSQL* (STDCALL*mysql_initPtr)(MYSQL*);
|
||||
MYSQL_RES* (STDCALL*mysql_list_fieldsPtr)(MYSQL*, const char*, const char*);
|
||||
MYSQL_RES* (STDCALL*mysql_list_tablesPtr)(MYSQL*, const char*);
|
||||
unsigned int (STDCALL*mysql_num_fieldsPtr)(MYSQL_RES*);
|
||||
int (STDCALL*mysql_optionsPtr)(MYSQL*, enum mysql_option, const void*);
|
||||
int (STDCALL*mysql_queryPtr)(MYSQL*, const char*);
|
||||
MYSQL* (STDCALL*mysql_real_connectPtr)(MYSQL*, const char*, const char*, const char*, const char*, unsigned int, const char*, unsigned long);
|
||||
my_bool (STDCALL*mysql_rollbackPtr)(MYSQL*);
|
||||
int (STDCALL*mysql_select_dbPtr)(MYSQL*, const char*);
|
||||
const char* (STDCALL*mysql_sqlstatePtr)(MYSQL*);
|
||||
my_bool (STDCALL*mysql_ssl_setPtr)(MYSQL*, const char*, const char*, const char*, const char*, const char*);
|
||||
my_ulonglong (STDCALL*mysql_stmt_affected_rowsPtr)(MYSQL_STMT*);
|
||||
my_bool (STDCALL*mysql_stmt_bind_paramPtr)(MYSQL_STMT*, MYSQL_BIND*);
|
||||
my_bool (STDCALL*mysql_stmt_bind_resultPtr)(MYSQL_STMT*, MYSQL_BIND*);
|
||||
my_bool (STDCALL*mysql_stmt_closePtr)(MYSQL_STMT*);
|
||||
unsigned int (STDCALL*mysql_stmt_errnoPtr)(MYSQL_STMT*);
|
||||
const char* (STDCALL*mysql_stmt_errorPtr)(MYSQL_STMT*);
|
||||
int (STDCALL*mysql_stmt_executePtr)(MYSQL_STMT*);
|
||||
int (STDCALL*mysql_stmt_fetchPtr)(MYSQL_STMT*);
|
||||
int (STDCALL*mysql_stmt_fetch_columnPtr)(MYSQL_STMT*, MYSQL_BIND*, unsigned int, unsigned long);
|
||||
MYSQL_STMT* (STDCALL*mysql_stmt_initPtr)(MYSQL*);
|
||||
int (STDCALL*mysql_stmt_preparePtr)(MYSQL_STMT*, const char*, unsigned long);
|
||||
MYSQL_RES* (STDCALL*mysql_stmt_result_metadataPtr)(MYSQL_STMT*);
|
||||
const char* (STDCALL*mysql_stmt_sqlstatePtr)(MYSQL_STMT*);
|
||||
int (STDCALL*mysql_stmt_store_resultPtr)(MYSQL_STMT*);
|
||||
MYSQL_RES* (STDCALL*mysql_store_resultPtr)(MYSQL*);
|
||||
} mysqlStubDefs;
|
||||
#define mysql_server_init (mysqlStubs->mysql_server_initPtr)
|
||||
#define mysql_server_end (mysqlStubs->mysql_server_endPtr)
|
||||
#define mysql_affected_rows (mysqlStubs->mysql_affected_rowsPtr)
|
||||
#define mysql_autocommit (mysqlStubs->mysql_autocommitPtr)
|
||||
#define mysql_change_user (mysqlStubs->mysql_change_userPtr)
|
||||
#define mysql_close (mysqlStubs->mysql_closePtr)
|
||||
#define mysql_commit (mysqlStubs->mysql_commitPtr)
|
||||
#define mysql_errno (mysqlStubs->mysql_errnoPtr)
|
||||
#define mysql_error (mysqlStubs->mysql_errorPtr)
|
||||
#define mysql_fetch_fields (mysqlStubs->mysql_fetch_fieldsPtr)
|
||||
#define mysql_fetch_lengths (mysqlStubs->mysql_fetch_lengthsPtr)
|
||||
#define mysql_fetch_row (mysqlStubs->mysql_fetch_rowPtr)
|
||||
#define mysql_field_count (mysqlStubs->mysql_field_countPtr)
|
||||
#define mysql_free_result (mysqlStubs->mysql_free_resultPtr)
|
||||
#define mysql_get_client_version (mysqlStubs->mysql_get_client_versionPtr)
|
||||
#define mysql_init (mysqlStubs->mysql_initPtr)
|
||||
#define mysql_list_fields (mysqlStubs->mysql_list_fieldsPtr)
|
||||
#define mysql_list_tables (mysqlStubs->mysql_list_tablesPtr)
|
||||
#define mysql_num_fields (mysqlStubs->mysql_num_fieldsPtr)
|
||||
#define mysql_options (mysqlStubs->mysql_optionsPtr)
|
||||
#define mysql_query (mysqlStubs->mysql_queryPtr)
|
||||
#define mysql_real_connect (mysqlStubs->mysql_real_connectPtr)
|
||||
#define mysql_rollback (mysqlStubs->mysql_rollbackPtr)
|
||||
#define mysql_select_db (mysqlStubs->mysql_select_dbPtr)
|
||||
#define mysql_sqlstate (mysqlStubs->mysql_sqlstatePtr)
|
||||
#define mysql_ssl_set (mysqlStubs->mysql_ssl_setPtr)
|
||||
#define mysql_stmt_affected_rows (mysqlStubs->mysql_stmt_affected_rowsPtr)
|
||||
#define mysql_stmt_bind_param (mysqlStubs->mysql_stmt_bind_paramPtr)
|
||||
#define mysql_stmt_bind_result (mysqlStubs->mysql_stmt_bind_resultPtr)
|
||||
#define mysql_stmt_close (mysqlStubs->mysql_stmt_closePtr)
|
||||
#define mysql_stmt_errno (mysqlStubs->mysql_stmt_errnoPtr)
|
||||
#define mysql_stmt_error (mysqlStubs->mysql_stmt_errorPtr)
|
||||
#define mysql_stmt_execute (mysqlStubs->mysql_stmt_executePtr)
|
||||
#define mysql_stmt_fetch (mysqlStubs->mysql_stmt_fetchPtr)
|
||||
#define mysql_stmt_fetch_column (mysqlStubs->mysql_stmt_fetch_columnPtr)
|
||||
#define mysql_stmt_init (mysqlStubs->mysql_stmt_initPtr)
|
||||
#define mysql_stmt_prepare (mysqlStubs->mysql_stmt_preparePtr)
|
||||
#define mysql_stmt_result_metadata (mysqlStubs->mysql_stmt_result_metadataPtr)
|
||||
#define mysql_stmt_sqlstate (mysqlStubs->mysql_stmt_sqlstatePtr)
|
||||
#define mysql_stmt_store_result (mysqlStubs->mysql_stmt_store_resultPtr)
|
||||
#define mysql_store_result (mysqlStubs->mysql_store_resultPtr)
|
||||
MODULE_SCOPE const mysqlStubDefs *mysqlStubs;
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,193 +0,0 @@
|
||||
# tdbcmysql.tcl --
|
||||
#
|
||||
# Class definitions and Tcl-level methods for the tdbc::mysql bridge.
|
||||
#
|
||||
# Copyright (c) 2008 by Kevin B. Kenny
|
||||
# See the file "license.terms" for information on usage and redistribution
|
||||
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
#
|
||||
# RCS: @(#) $Id: tdbcmysql.tcl,v 1.47 2008/02/27 02:08:27 kennykb Exp $
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
package require tdbc
|
||||
|
||||
::namespace eval ::tdbc::mysql {
|
||||
|
||||
namespace export connection datasources drivers
|
||||
|
||||
}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# tdbc::mysql::connection --
|
||||
#
|
||||
# Class representing a connection to a database through MYSQL.
|
||||
#
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
::oo::class create ::tdbc::mysql::connection {
|
||||
|
||||
superclass ::tdbc::connection
|
||||
|
||||
# The constructor is written in C. It takes alternating keywords
|
||||
# and values pairs as its argumenta. (See the manual page for the
|
||||
# available options.)
|
||||
|
||||
variable foreignKeysStatement
|
||||
|
||||
# The 'statementCreate' method delegates to the constructor of the
|
||||
# statement class
|
||||
|
||||
forward statementCreate ::tdbc::mysql::statement create
|
||||
|
||||
# The 'columns' method returns a dictionary describing the tables
|
||||
# in the database
|
||||
|
||||
method columns {table {pattern %}} {
|
||||
|
||||
# To return correct lengths of CHARACTER and BINARY columns,
|
||||
# we need to know the maximum lengths of characters in each
|
||||
# collation. We cache this information only once, on the first
|
||||
# call to 'columns'.
|
||||
|
||||
if {[my NeedCollationInfo]} {
|
||||
my SetCollationInfo {*}[my allrows -as lists {
|
||||
SELECT coll.id, cs.maxlen
|
||||
FROM INFORMATION_SCHEMA.COLLATIONS coll,
|
||||
INFORMATION_SCHEMA.CHARACTER_SETS cs
|
||||
WHERE cs.CHARACTER_SET_NAME = coll.CHARACTER_SET_NAME
|
||||
ORDER BY coll.id DESC
|
||||
}]
|
||||
}
|
||||
|
||||
return [my Columns $table $pattern]
|
||||
}
|
||||
|
||||
# The 'preparecall' method gives a portable interface to prepare
|
||||
# calls to stored procedures. It delegates to 'prepare' to do the
|
||||
# actual work.
|
||||
|
||||
method preparecall {call} {
|
||||
regexp {^[[:space:]]*(?:([A-Za-z_][A-Za-z_0-9]*)[[:space:]]*=)?(.*)} \
|
||||
$call -> varName rest
|
||||
if {$varName eq {}} {
|
||||
my prepare "CALL $rest"
|
||||
} else {
|
||||
my prepare \\{:$varName=$rest\\}
|
||||
}
|
||||
}
|
||||
|
||||
# The 'init', 'begintransaction', 'commit, 'rollback', 'tables'
|
||||
# 'NeedCollationInfo', 'SetCollationInfo', and 'Columns' methods
|
||||
# are implemented in C.
|
||||
|
||||
# The 'BuildForeignKeysStatements' method builds a SQL statement to
|
||||
# retrieve the foreign keys from a database. (It executes once the
|
||||
# first time the 'foreignKeys' method is executed, and retains the
|
||||
# prepared statements for reuse.) It is slightly nonstandard because
|
||||
# MYSQL doesn't name the PRIMARY constraints uniquely.
|
||||
|
||||
method BuildForeignKeysStatement {} {
|
||||
|
||||
foreach {exists1 clause1} {
|
||||
0 {}
|
||||
1 { AND fkc.REFERENCED_TABLE_NAME = :primary}
|
||||
} {
|
||||
foreach {exists2 clause2} {
|
||||
0 {}
|
||||
1 { AND fkc.TABLE_NAME = :foreign}
|
||||
} {
|
||||
set stmt [my prepare "
|
||||
SELECT rc.CONSTRAINT_SCHEMA AS \"foreignConstraintSchema\",
|
||||
rc.CONSTRAINT_NAME AS \"foreignConstraintName\",
|
||||
rc.UPDATE_RULE AS \"updateAction\",
|
||||
rc.DELETE_RULE AS \"deleteAction\",
|
||||
fkc.REFERENCED_TABLE_SCHEMA AS \"primarySchema\",
|
||||
fkc.REFERENCED_TABLE_NAME AS \"primaryTable\",
|
||||
fkc.REFERENCED_COLUMN_NAME AS \"primaryColumn\",
|
||||
fkc.TABLE_SCHEMA AS \"foreignSchema\",
|
||||
fkc.TABLE_NAME AS \"foreignTable\",
|
||||
fkc.COLUMN_NAME AS \"foreignColumn\",
|
||||
fkc.ORDINAL_POSITION AS \"ordinalPosition\"
|
||||
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc
|
||||
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE fkc
|
||||
ON fkc.CONSTRAINT_NAME = rc.CONSTRAINT_NAME
|
||||
AND fkc.CONSTRAINT_SCHEMA = rc.CONSTRAINT_SCHEMA
|
||||
WHERE 1=1
|
||||
$clause1
|
||||
$clause2
|
||||
"]
|
||||
dict set foreignKeysStatement $exists1 $exists2 $stmt
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# tdbc::mysql::statement --
|
||||
#
|
||||
# The class 'tdbc::mysql::statement' models one statement against a
|
||||
# database accessed through an MYSQL connection
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
::oo::class create ::tdbc::mysql::statement {
|
||||
|
||||
superclass ::tdbc::statement
|
||||
|
||||
# The 'resultSetCreate' method forwards to the constructor of the
|
||||
# result set.
|
||||
|
||||
forward resultSetCreate ::tdbc::mysql::resultset create
|
||||
|
||||
# Methods implemented in C:
|
||||
#
|
||||
# constructor connection SQLCode
|
||||
# The constructor accepts the handle to the connection and the SQL code
|
||||
# for the statement to prepare. It creates a subordinate namespace to
|
||||
# hold the statement's active result sets, and then delegates to the
|
||||
# 'init' method, written in C, to do the actual work of preparing the
|
||||
# statement.
|
||||
# params
|
||||
# Returns descriptions of the parameters of a statement.
|
||||
# paramtype paramname ?direction? type ?precision ?scale??
|
||||
# Declares the type of a parameter in the statement
|
||||
|
||||
}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# tdbc::mysql::resultset --
|
||||
#
|
||||
# The class 'tdbc::mysql::resultset' models the result set that is
|
||||
# produced by executing a statement against an MYSQL database.
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
::oo::class create ::tdbc::mysql::resultset {
|
||||
|
||||
superclass ::tdbc::resultset
|
||||
|
||||
# Methods implemented in C include:
|
||||
|
||||
# constructor statement ?dictionary?
|
||||
# -- Executes the statement against the database, optionally providing
|
||||
# a dictionary of substituted parameters (default is to get params
|
||||
# from variables in the caller's scope).
|
||||
# columns
|
||||
# -- Returns a list of the names of the columns in the result.
|
||||
# nextdict
|
||||
# -- Stores the next row of the result set in the given variable in
|
||||
# the caller's scope as a dictionary whose keys are
|
||||
# column names and whose values are column values, or else
|
||||
# as a list of cells.
|
||||
# nextlist
|
||||
# -- Stores the next row of the result set in the given variable in
|
||||
# the caller's scope as a list of cells.
|
||||
# rowcount
|
||||
# -- Returns a count of rows affected by the statement, or -1
|
||||
# if the count of rows has not been determined.
|
||||
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
This software is copyrighted by Kevin B. Kenny, and by other parties.
|
||||
The following terms apply to all files associated with the software
|
||||
unless explicitly disclaimed in individual files.
|
||||
|
||||
The authors hereby grant permission to use, copy, modify, distribute,
|
||||
and license this software and its documentation for any purpose, provided
|
||||
that existing copyright notices are retained in all copies and that this
|
||||
notice is included verbatim in any distributions. No written agreement,
|
||||
license, or royalty fee is required for any of the authorized uses.
|
||||
Modifications to this software may be copyrighted by their authors
|
||||
and need not follow the licensing terms described here, provided that
|
||||
the new terms are clearly indicated on the first page of each file where
|
||||
they apply.
|
||||
|
||||
IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
|
||||
FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
|
||||
ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
|
||||
DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
|
||||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
|
||||
IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
|
||||
NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
|
||||
MODIFICATIONS.
|
||||
|
||||
GOVERNMENT USE: If you are acquiring this software on behalf of the
|
||||
U.S. government, the Government shall have only "Restricted Rights"
|
||||
in the software and related documentation as defined in the Federal
|
||||
Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you
|
||||
are acquiring the software on behalf of the Department of Defense, the
|
||||
software shall be classified as "Commercial Computer Software" and the
|
||||
Government shall have only "Restricted Rights" as defined in Clause
|
||||
252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
|
||||
authors grant the U.S. Government and others acting in its behalf
|
||||
permission to use and distribute the software in accordance with the
|
||||
terms specified in this license.
|
||||
@@ -1 +0,0 @@
|
||||
1c06baec6ef4287a04cc1e6f8bf4d07cd38779a2cd7dd1476e4f2483b8efe249
|
||||
@@ -1,14 +0,0 @@
|
||||
# Index file to load the TDBC MySQL package.
|
||||
|
||||
if {![package vsatisfies [package provide Tcl] 8.6-]} {
|
||||
return
|
||||
}
|
||||
if {[package vsatisfies [package provide Tcl] 9.0-]} {
|
||||
package ifneeded tdbc::mysql @PACKAGE_VERSION@ \
|
||||
"[list source -encoding utf-8 [file join $dir @PACKAGE_NAME@.tcl]]\;\
|
||||
[list load [file join $dir @PKG_LIB_FILE9@] [string totitle @PACKAGE_NAME@]]"
|
||||
} else {
|
||||
package ifneeded tdbc::mysql @PACKAGE_VERSION@ \
|
||||
"[list source -encoding utf-8 [file join $dir @PACKAGE_NAME@.tcl]]\;\
|
||||
[list load [file join $dir @PKG_LIB_FILE8@] [string totitle @PACKAGE_NAME@]]"
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
These files comprise the basic building blocks for a Tcl Extension
|
||||
Architecture (TEA) extension. For more information on TEA see:
|
||||
|
||||
https://wiki.tcl-lang.org/page/TEA
|
||||
|
||||
This package is part of the Tcl project at SourceForge, but sources
|
||||
and bug/patch database are hosted on fossil here:
|
||||
|
||||
https://core.tcl-lang.org/tclconfig
|
||||
|
||||
This package is a freely available open source package. You can do
|
||||
virtually anything you like with it, such as modifying it, redistributing
|
||||
it, and selling it either in whole or in part.
|
||||
|
||||
CONTENTS
|
||||
========
|
||||
The following is a short description of the files you will find in
|
||||
the sample extension.
|
||||
|
||||
README.txt This file
|
||||
|
||||
install-sh Program used for copying binaries and script files
|
||||
to their install locations.
|
||||
|
||||
tcl.m4 Collection of Tcl autoconf macros. Included by a package's
|
||||
aclocal.m4 to define TEA_* macros.
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user