Merge mronstrom@bk-internal.mysql.com:/home/bk/bugs/bug18198
into c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/bug18198 sql/item_timefunc.h: Auto merged sql/partition_info.cc: Auto merged sql/share/errmsg.txt: manual merge
@ -1759,3 +1759,8 @@ vio/viotest.cpp
|
||||
zlib/*.ds?
|
||||
zlib/*.vcproj
|
||||
mysql-test/r/*.log
|
||||
client/mysql_upgrade
|
||||
unittest/examples/*.t
|
||||
unittest/mysys/*.t
|
||||
unittest/mytap/t/*.t
|
||||
unittest/unit
|
||||
|
@ -52,7 +52,9 @@ fi
|
||||
--with-federated-storage-engine \
|
||||
--with-berkeley-db \
|
||||
--with-innodb \
|
||||
--with-yassl \
|
||||
--enable-thread-safe-client \
|
||||
--with-extra-charsets=complex \
|
||||
--with-ndbcluster
|
||||
--with-ndbcluster \
|
||||
--with-zlib-dir=bundled
|
||||
make
|
||||
|
@ -1,11 +0,0 @@
|
||||
cd /usr/local/mysql
|
||||
bin/mysqladmin shutdown
|
||||
libexec/mysqld --basedir . &
|
||||
cd sql-bench
|
||||
rm output/*
|
||||
perl run-all-tests --comment "Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; egcs 1.1.2 + ccc" --user=monty --password="ds20-gryta"
|
||||
perl run-all-tests --comment "Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; egcs 1.1.2 + ccc" --user=monty --password="ds20-gryta" --log --use-old
|
||||
mv output/* output-ccc
|
||||
perl run-all-tests --comment "Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; egcs 1.1.2 + ccc" --user=monty --password="ds20-gryta" --fast
|
||||
perl run-all-tests --comment "Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; egcs 1.1.2 + ccc" --user=monty --password="ds20-gryta" --log --use-old --fast
|
||||
mv output/* output-ccc
|
1419
Docs/Books/algor.eps
Before Width: | Height: | Size: 15 KiB |
1212
Docs/Books/dbi.eps
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 2.0 KiB |
1149
Docs/Books/ecomm.eps
Before Width: | Height: | Size: 2.5 KiB |
1149
Docs/Books/in_21.eps
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 2.5 KiB |
1221
Docs/Books/msql.eps
Before Width: | Height: | Size: 8.6 KiB |
1167
Docs/Books/prof.eps
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 8.3 KiB |
Before Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 13 KiB |
@ -14,7 +14,7 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
noinst_SCRIPTS = Support/generate-text-files.pl
|
||||
noinst_SCRIPTS = generate-text-files.pl
|
||||
|
||||
EXTRA_DIST = $(noinst_SCRIPTS) mysql.info INSTALL-BINARY
|
||||
|
||||
@ -42,7 +42,7 @@ DISTCLEANFILES = $(TXT_FILES)
|
||||
CLEAN_FILES: $(TXT_FILES)
|
||||
touch $(TXT_FILES)
|
||||
|
||||
GT = $(srcdir)/Support/generate-text-files.pl
|
||||
GT = $(srcdir)/generate-text-files.pl
|
||||
|
||||
../INSTALL-SOURCE: mysql.info $(GT)
|
||||
perl -w $(GT) mysql.info "installing-source" "windows-source-build" > $@
|
||||
|
Before Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 716 B |
Before Width: | Height: | Size: 909 B |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 42 KiB |
@ -1,2 +0,0 @@
|
||||
manual.html
|
||||
manual_toc.html
|
@ -1,78 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
#
|
||||
# Script to rewrite colspecs from relative values to absolute values
|
||||
#
|
||||
|
||||
# arjen 2002-03-14 append "cm" specifier to colwidth field.
|
||||
|
||||
use strict;
|
||||
|
||||
my $table_width = 12.75; # Specify the max width of the table in cm
|
||||
my $gutter_width = 0.55; # Specify the width of the gutters in cm
|
||||
|
||||
my $str = join '', <>; # Push stdin (or file)
|
||||
|
||||
$str =~ s{([\t ]*(<colspec colwidth=\".+?\" />\s*)+)}
|
||||
{&rel2abs($1)}ges;
|
||||
|
||||
print STDOUT $str;
|
||||
exit;
|
||||
|
||||
#
|
||||
# Definitions for helper sub-routines
|
||||
#
|
||||
|
||||
sub msg {
|
||||
print STDERR shift, "\n";
|
||||
}
|
||||
|
||||
sub rel2abs {
|
||||
my $str = shift;
|
||||
my $colnum = 1;
|
||||
|
||||
my @widths = ();
|
||||
my $total = 0;
|
||||
my $output = '';
|
||||
|
||||
my $gutters;
|
||||
my $content_width;
|
||||
my $total_width;
|
||||
my @num_cache;
|
||||
|
||||
$str =~ /^(\s+)/;
|
||||
my $ws = $1;
|
||||
|
||||
while ($str =~ m/<colspec colwidth="(\d+)\*" \/>/g) {
|
||||
$total += $1;
|
||||
push @widths, $1;
|
||||
}
|
||||
|
||||
msg("!!! WARNING: Total Percent > 100%: $total%") if $total > 100;
|
||||
|
||||
if (! $total) {
|
||||
die 'Something bad has happened - the script believes that there are no columns';
|
||||
}
|
||||
|
||||
$gutters = $#widths * $gutter_width;
|
||||
$content_width = $table_width - $gutters;
|
||||
# Don't forget that $#... is the last offset not the count
|
||||
|
||||
foreach (@widths) {
|
||||
my $temp = sprintf ("%0.2f", $_/100 * $content_width);
|
||||
$total_width += $temp;
|
||||
|
||||
if ($total_width > $content_width) {
|
||||
$temp -= $total_width - $content_width;
|
||||
msg("!!! WARNING: Column width reduced from " .
|
||||
($temp + ($total_width - $content_width)) . " to $temp !!!");
|
||||
$total_width -= $total_width - $content_width;
|
||||
}
|
||||
|
||||
$output .= $ws . '<colspec colnum="'. $colnum .'" colwidth="'. $temp .'cm" />' . "\n";
|
||||
++$colnum;
|
||||
push @num_cache, $temp;
|
||||
}
|
||||
|
||||
return $output . "\n$ws";
|
||||
}
|
@ -1,200 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
# Fix the output of `makeinfo --docbook` version 4.0c
|
||||
# Convert the broken docbook output to well-formed XML that conforms to the O'Reilly idiom
|
||||
# See code for detailed comments
|
||||
# Authors: Arjen Lentz and Zak Greant (original code by Jeremy Cole)
|
||||
|
||||
use strict;
|
||||
|
||||
my $data = '';
|
||||
my @apx = ();
|
||||
my $apx = '';
|
||||
my @nodes = ();
|
||||
my $nodes = '';
|
||||
|
||||
msg ("-- Post-processing `makeinfo --docbook` output --");
|
||||
msg ("** Written to work with makeinfo version 4.0c **\n");
|
||||
|
||||
msg ("Discarding DTD - not required by subsequent scripts");
|
||||
# <> is a magic filehandle - either reading lines from stdin or from file(s) specified on the command line
|
||||
<>;
|
||||
|
||||
msg ("Create an XML PI with ISO-8859-1 character encoding");
|
||||
$data = "<?xml version='1.0' encoding='ISO-8859-1'?>";
|
||||
|
||||
msg ("Get the rest of the data");
|
||||
$data = $data . join "", <>;
|
||||
|
||||
msg ("Add missing <bookinfo> and <abstract> opening tags");
|
||||
# Note the absence of the g (global) pattern modified. This situation can only happen once.
|
||||
# ...as soon as we find the first instance, we can stop looking.
|
||||
$data =~ s/<book lang="en">/<book lang="en"><bookinfo><abstract>/;
|
||||
|
||||
|
||||
# arjen 2002-05-01
|
||||
msg ("Processing docbook-prefix special strings");
|
||||
$data =~ s/FIXUPmdashFIXUP/\&mdash\;/g;
|
||||
|
||||
$data =~ s/FIXUPdoubledashFIXUP/--/g;
|
||||
|
||||
$data =~ s/FIXUPstrongFIXUP/<emphasis\ role\=\"bold\">/g;
|
||||
$data =~ s/FIXUPendstrongFIXUP/<\/emphasis>/g;
|
||||
|
||||
$data =~ s/FIXUPemphFIXUP/<emphasis>/g;
|
||||
$data =~ s/FIXUPendemphFIXUP/<\/emphasis>/g;
|
||||
|
||||
$data =~ s/FIXUPfileFIXUP/<filename>/g;
|
||||
$data =~ s/FIXUPendfileFIXUP/<\/filename>/g;
|
||||
|
||||
$data =~ s/FIXUPsampFIXUP/<literal>/g;
|
||||
$data =~ s/FIXUPendsampFIXUP/<\/literal>/g;
|
||||
|
||||
|
||||
msg ("Removing mailto: from email addresses...");
|
||||
$data =~ s/mailto://g;
|
||||
|
||||
msg ("Removing INFORMALFIGURE...");
|
||||
$data =~ s{<informalfigure>.+?</informalfigure>}
|
||||
{}gs;
|
||||
|
||||
msg ("Convert ampersand to XML escape sequence...");
|
||||
$data =~ s/&(?!\w+;)/&/g;
|
||||
|
||||
# arjen 2002-05-01
|
||||
msg ("Changing (TM) to XML escape sequence...");
|
||||
$data =~ s/MySQL \(TM\)/MySQL™/g;
|
||||
$data =~ s{<command>TM</command>}
|
||||
{™}g;
|
||||
|
||||
# arjen 2002-05-01
|
||||
msg ("Changing ' -- ' to XML escape sequence...");
|
||||
$data =~ s/ -- /—/g;
|
||||
|
||||
msg ("Changing @@ to @...");
|
||||
$data =~ s/@@/@/g;
|
||||
|
||||
msg ("Rework references of the notation '<n>'");
|
||||
# Need to talk to Arjen about what the <n> bits are for
|
||||
$data =~ s/<(\d)>/[$1]/g;
|
||||
|
||||
msg ("Changing '_' to '-' in references...");
|
||||
$data =~ s{((?:id|linkend)=\".+?\")}
|
||||
{&underscore2hyphen($1)}gex;
|
||||
|
||||
msg ("Changing ULINK to SYSTEMITEM...");
|
||||
$data =~ s{<ulink url=\"(.+?)\">\s*</ulink>}
|
||||
{<systemitem role=\"url\">$1</systemitem>}gs;
|
||||
|
||||
msg ("Adding PARA inside ENTRY...");
|
||||
$data =~ s{<entry>(.*?)</entry>}
|
||||
{<entry><para>$1</para></entry>}gs;
|
||||
|
||||
msg ("Fixing spacing problem with titles...");
|
||||
$data =~ s{(</\w+>)(\w{2,})}
|
||||
{$1 $2}gs;
|
||||
|
||||
msg ("Adding closing / to XREF and COLSPEC tags...");
|
||||
$data =~ s{<(xref|colspec) (.+?)>}
|
||||
{<$1 $2 />}gs;
|
||||
|
||||
# arjen 2002-04-26
|
||||
msg ("Removing separate target titles from LINKs and make them XREFs...");
|
||||
$data =~ s{<link (linkend=.+?)>.+?</link>}
|
||||
{<xref $1 />}gs;
|
||||
|
||||
# Probably need to strip these
|
||||
msg ('Adding "See " to XREFs that used to be @xref...');
|
||||
$data =~ s{([.'!)])\s*<xref }
|
||||
{$1 See <xref }gs;
|
||||
|
||||
msg ('Adding "see " to (XREFs) that used to be (@pxref)...');
|
||||
$data =~ s{([([,;])(\s*)<xref }
|
||||
{$1$2see <xref }gs;
|
||||
|
||||
msg ("Making first row in table THEAD...");
|
||||
$data =~ s{( *)<tbody>(\s*<row>.+?</row>)}
|
||||
{$1<thead>$2\n$1</thead>\n$1<tbody>}gs;
|
||||
|
||||
msg ("Removing EMPHASIS inside THEAD...");
|
||||
$data =~ s{<thead>(.+?)</thead>}
|
||||
{"<thead>".&strip_tag($1, 'emphasis')."</thead>"}gsex;
|
||||
|
||||
msg ("Removing empty PARA...");
|
||||
$data =~ s{<para>\s*</para>}
|
||||
{}gs;
|
||||
|
||||
msg ("Removing lf before /PARA in ENTRY...");
|
||||
$data =~ s{\n(</para></entry>)}
|
||||
{$1}gs;
|
||||
|
||||
msg ("Removing whitespace before /PARA if not on separate line...");
|
||||
$data =~ s{(\S+)[\t ]+</para>}
|
||||
{$1</para>}g;
|
||||
|
||||
msg ("Removing PARA around INDEXTERM if no text in PARA...");
|
||||
$data =~ s{<para>((?:<indexterm role=\"[^"]+\">(?:<(primary|secondary)>[^>]+</\2>)+?</indexterm>)+?)\s*</para>}
|
||||
{$1}gs;
|
||||
|
||||
@apx = ("Users", "MySQL Testimonials", "News", "GPL-license", "LGPL-license");
|
||||
|
||||
foreach $apx (@apx) {
|
||||
msg ("Removing appendix $apx...");
|
||||
$data =~ s{<appendix id=\"$apx\">(.+?)</appendix>}
|
||||
{}gs;
|
||||
|
||||
# Skip to next appendix regex if the regex did not match anything
|
||||
next unless (defined $&);
|
||||
|
||||
msg ("...Building list of removed nodes...");
|
||||
|
||||
# Split the last bracketed regex match into an array
|
||||
# Extract the node names from the tags and push them into an array
|
||||
foreach (split "\n", $&) {
|
||||
push @nodes, $1 if /<\w+ id=\"(.+?)\">/
|
||||
}
|
||||
}
|
||||
|
||||
# 2002-02-22 arjen@mysql.com (added fix " /" to end of regex, to make it match)
|
||||
msg ("Fixing references to removed nodes...");
|
||||
# Merge the list of node names into a set of regex alternations
|
||||
$nodes = join "|", @nodes;
|
||||
|
||||
# Find all references to removed nodes and convert them to absolute URLs
|
||||
$data =~ s{<\w+ linkend="($nodes)" />}
|
||||
{&xref2link($1)}ges;
|
||||
|
||||
print STDOUT $data;
|
||||
exit;
|
||||
|
||||
#
|
||||
# Definitions for helper sub-routines
|
||||
#
|
||||
|
||||
sub msg {
|
||||
print STDERR "docbook-fixup:", shift, "\n";
|
||||
}
|
||||
|
||||
sub strip_tag($$) {
|
||||
(my $str, my $tag) = @_;
|
||||
$str =~ s{<$tag>(.+?)</$tag>}{$1}gs;
|
||||
return $str;
|
||||
}
|
||||
|
||||
sub underscore2hyphen($) {
|
||||
my $str = shift;
|
||||
$str =~ tr/_/-/;
|
||||
return $str;
|
||||
}
|
||||
|
||||
sub xref2link {
|
||||
my $ref = shift;
|
||||
$ref =~ tr/ /_/;
|
||||
$ref =~ s{^((.)(.).+)$}{$2/$3/$1.html};
|
||||
return "http://www.mysql.com/doc/" . $ref;
|
||||
}
|
||||
|
||||
# We might need to encode the high-bit characters to ensure proper representation
|
||||
# msg ("Converting high-bit characters to entities");
|
||||
# $data =~ s/([\200-\400])/&get_entity($1)>/gs;
|
||||
# There is no get_entity function yet - no point writing it til we need it :)
|
@ -1,50 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
# Preprocess the input of `makeinfo --docbook` version 4.0c
|
||||
# Authors: Arjen Lentz and Zak Greant (started by arjen 2002-05-01)
|
||||
|
||||
use strict;
|
||||
|
||||
my $data = '';
|
||||
|
||||
msg ("-- Pre-processing `makeinfo --docbook` input --");
|
||||
msg ("** Written to work with makeinfo version 4.0c **\n");
|
||||
|
||||
# <> is a magic filehandle - either reading lines from stdin or from file(s) specified on the command line
|
||||
msg ("Get the data");
|
||||
$data = join "", <>;
|
||||
|
||||
msg ("Replacing '\@-' with FIXUPmdashFIXUP");
|
||||
$data =~ s/\@-/FIXUPmdashFIXUP/g;
|
||||
|
||||
msg ("Replacing '--' with FIXUPdoubledashFIXUP");
|
||||
$data =~ s/--/FIXUPdoubledashFIXUP/g;
|
||||
|
||||
msg ("Turning \@strong{} into LITERAL blocks");
|
||||
$data =~ s/\@strong\{(.*?)\}/FIXUPstrongFIXUP$1FIXUPendstrongFIXUP/gs;
|
||||
|
||||
msg ("Turning \@emph{} into LITERAL blocks");
|
||||
$data =~ s/\@emph\{(.*?)\}/FIXUPemphFIXUP$1FIXUPendemphFIXUP/gs;
|
||||
|
||||
msg ("Turning \@file{} into LITERAL blocks");
|
||||
$data =~ s/\@file\{(.*?)\}/FIXUPfileFIXUP$1FIXUPendfileFIXUP/gs;
|
||||
|
||||
msg ("Turning \@samp{} into LITERAL blocks");
|
||||
$data =~ s/\@samp\{\@\{\}/FIXUPsampFIXUP\@\{FIXUPendsampFIXUP/g;
|
||||
$data =~ s/\@samp\{\@\}\}/FIXUPsampFIXUP\@\}FIXUPendsampFIXUP/g;
|
||||
$data =~ s/\@samp\{\@\{n\@\}\}/FIXUPsampFIXUP\@\{n\@\}FIXUPendsampFIXUP/g;
|
||||
$data =~ s/\@samp\{(.*?)\}/FIXUPsampFIXUP$1FIXUPendsampFIXUP/gs;
|
||||
|
||||
|
||||
msg ("Write the data");
|
||||
print STDOUT $data;
|
||||
exit;
|
||||
|
||||
#
|
||||
# Definitions for helper sub-routines
|
||||
#
|
||||
|
||||
sub msg {
|
||||
print STDERR "docbook-prefix: ", shift, "\n";
|
||||
}
|
||||
|
@ -1,70 +0,0 @@
|
||||
#! /usr/bin/perl -w
|
||||
# O'Reilly's Perl script to chop mysql.xml into separate ch/apps/index files.
|
||||
# The indexes are actually not used, they're created straight from the xrefs.
|
||||
# Breaks the MySQL reference manual into chapters, appendices, and indexes.
|
||||
|
||||
use strict;
|
||||
|
||||
my $app_letter = "a"; # Start appendix letters at "a"
|
||||
my $chap_num = 1; # Start chapter numbers at one (there is no preface)
|
||||
my $directory = "mysql_refman_" . time;
|
||||
my $ext = ".xml";
|
||||
my $line = "";
|
||||
my $output_name = "";
|
||||
my $start_text = "";
|
||||
|
||||
mkdir $directory unless -d $directory;
|
||||
|
||||
while (defined $line) {
|
||||
if ($line =~ /(<chapter.+)/i ) {
|
||||
$start_text = $1;
|
||||
$output_name = sprintf("ch%02d%s", $chap_num, $ext);
|
||||
++$chap_num;
|
||||
&process_file("chapter");
|
||||
}
|
||||
elsif ($line =~ /(<appendix.+)/i ) {
|
||||
$start_text = $1 ;
|
||||
$output_name = "app$app_letter$ext";
|
||||
++$app_letter;
|
||||
&process_file("appendix");
|
||||
}
|
||||
elsif ($line =~ /(<index\s+id=")(.*?)(">.*)/i ) {
|
||||
$start_text = $1 . $2 . $3;
|
||||
$output_name = lc($2) . $ext;
|
||||
&process_file("index");
|
||||
}
|
||||
else {
|
||||
# Skip junk in between chapters, appendices and indexes.
|
||||
$line = <>;
|
||||
}
|
||||
}
|
||||
|
||||
sub process_file {
|
||||
my $marker = shift;
|
||||
my $path = "$directory/$output_name";
|
||||
|
||||
open (OUTPUT_FILE, ">$path") or die "Cannot open $path";
|
||||
|
||||
print STDERR "Creating $path\n";
|
||||
|
||||
# Print out XML PI
|
||||
print OUTPUT_FILE "<?xml version='1.0' encoding='ISO-8859-1'?>\n";
|
||||
|
||||
# Print whatever happened to appear at the end of the previous chapter.
|
||||
print OUTPUT_FILE "$start_text\n" if $start_text;
|
||||
|
||||
while (defined $line) {
|
||||
$line = <>;
|
||||
|
||||
# Note: Anything after the terminating marker is lost, just like
|
||||
# lines in between chapters.
|
||||
if ($line =~ /(.*<\/\s*$marker\s*>)/i ) {
|
||||
print OUTPUT_FILE "$1\n" if $1;
|
||||
close OUTPUT_FILE;
|
||||
return;
|
||||
}
|
||||
print OUTPUT_FILE $line;
|
||||
}
|
||||
}
|
||||
|
||||
exit 0;
|
@ -1,29 +0,0 @@
|
||||
#!/bin/sh
|
||||
# 2002-01-30 arjen@mysql.com
|
||||
# Use this to create mysql.xml (the DocBook XML format output of manual.texi)
|
||||
# Requires makeinfo 4.0c
|
||||
|
||||
#create include.texi with version/port #
|
||||
echo "@c This file is autogenerated by the Makefile" > include.texi
|
||||
echo -n "@set mysql_version " >> include.texi
|
||||
# grep "AM_INIT_AUTOMAKE(mysql, " ../configure.in | \
|
||||
# sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;' >> include.texi
|
||||
# 2002-04-26 arjen - the below just picks #.# instead of #.#.#-alpha
|
||||
# (code by mwagner - tnx)
|
||||
grep "AM_INIT_AUTOMAKE(mysql, " ../configure.in | \
|
||||
perl -p -e 's/AM_INIT_AUTOMAKE\(mysql,\s(\d+\.\d+)\..+/$1/' >> include.texi
|
||||
echo -n "@set default_port " >> include.texi
|
||||
grep "MYSQL_TCP_PORT_DEFAULT=" ../configure.in | \
|
||||
sed -e 's;MYSQL_TCP_PORT_DEFAULT=;;' >> include.texi
|
||||
|
||||
# produce DocBook XML
|
||||
Support/docbook-prefix.pl < manual.texi |\
|
||||
makeinfo --force --no-ifinfo --docbook -o - |\
|
||||
Support/docbook-fixup.pl > mysql.xml
|
||||
|
||||
# See if the XML output is well-formed
|
||||
xmlwf mysql.xml
|
||||
|
||||
# If all is well, keep processing
|
||||
cat mysql.xml | Support/colspec-fix.pl | Support/docbook-split;
|
||||
|
@ -1,7 +0,0 @@
|
||||
#!/bin/sh
|
||||
# Use this when you have deleted Makefile and do not want to do a full
|
||||
# build to get it back
|
||||
|
||||
cd ..
|
||||
automake --gnu Docs/Makefile
|
||||
CONFIG_FILES=Docs/Makefile CONFIG_HEADERS= sh ./config.status
|
@ -1,137 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
needed_flags=0
|
||||
needed_texi2html=0
|
||||
needed_texinfo_tex=0
|
||||
needed_include_texi=0
|
||||
|
||||
if [ -z $BROWSER ]; then
|
||||
BROWSER=netscape
|
||||
echo "BROWSER not set, using $BROWSER"
|
||||
fi
|
||||
|
||||
die ()
|
||||
{
|
||||
echo
|
||||
echo $1
|
||||
cleanup
|
||||
exit 1
|
||||
}
|
||||
|
||||
cleanup ()
|
||||
{
|
||||
echo "Cleaning up..."
|
||||
if [ $needed_flags ]; then
|
||||
bk clean Flags
|
||||
fi
|
||||
|
||||
if [ $needed_texi2html ]; then
|
||||
bk clean Support/texi2html
|
||||
fi
|
||||
|
||||
if [ $needed_texinfo_tex ]; then
|
||||
bk clean Support/texinfo.tex
|
||||
fi
|
||||
|
||||
if [ $needed_include_texi ]; then
|
||||
rm -f include.texi
|
||||
fi
|
||||
|
||||
for file in \
|
||||
manual.aux manual.cp manual.cps manual.dvi \
|
||||
manual.fn manual.fns manual.ky manual.html \
|
||||
manual.pg manual.toc manual.tp manual.vr \
|
||||
mysql.info manual_toc.html ;
|
||||
do
|
||||
rm -f $file
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
|
||||
if [ -e Flags/usa.txt ]; then
|
||||
echo "Good, Flags are there."
|
||||
else
|
||||
echo -n "Checking out Flags..."
|
||||
bk edit Flags >/dev/null 2>&1
|
||||
echo " Done."
|
||||
needed_flags=1
|
||||
fi
|
||||
|
||||
if [ -e Support/texi2html ]; then
|
||||
echo "Good, texi2html is there."
|
||||
else
|
||||
echo -n "Checking out texi2html..."
|
||||
bk edit Support/texi2html >/dev/null 2>&1
|
||||
echo " Done."
|
||||
needed_texi2html=1
|
||||
fi
|
||||
|
||||
if [ -e Support/texinfo.tex ]; then
|
||||
echo "Good, texinfo.tex is there."
|
||||
else
|
||||
echo -n "Checking out texinfo.tex..."
|
||||
bk edit Support/texinfo.tex >/dev/null 2>&1
|
||||
echo " Done."
|
||||
needed_texinfo_tex=1
|
||||
fi
|
||||
|
||||
if [ -e include.texi ]; then
|
||||
echo "Good, include.texi is there."
|
||||
else
|
||||
echo -n "Creating include.texi..."
|
||||
bk edit ../configure.in >/dev/null 2>&1
|
||||
echo "@c This file was generated by test-make-manual" > include.texi
|
||||
echo -n "@set mysql_version " >> include.texi
|
||||
grep "AM_INIT_AUTOMAKE(mysql, " ../configure.in | \
|
||||
sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;' >> include.texi
|
||||
echo -n "@set default_port " >> include.texi
|
||||
grep "MYSQL_TCP_PORT_DEFAULT=" ../configure.in | \
|
||||
sed -e 's;MYSQL_TCP_PORT_DEFAULT=;;' >> include.texi
|
||||
echo " Done."
|
||||
needed_include_texi=1
|
||||
fi
|
||||
|
||||
echo -n "Running makeinfo..."
|
||||
makeinfo --no-split -I . manual.texi
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
die "Manual has errors - fix before you commit"
|
||||
else
|
||||
echo " Looks good."
|
||||
fi
|
||||
|
||||
|
||||
echo -n "Running texi2html..."
|
||||
/usr/bin/perl ./Support/texi2html -iso -number manual.texi
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
die "Manual has errors - fix before you commit"
|
||||
else
|
||||
echo " Looks good."
|
||||
fi
|
||||
|
||||
|
||||
echo -n "Running texi2dvi..."
|
||||
texi2dvi --batch manual.texi > texi2dvi.out
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
die "Manual has errors - fix before you commit (saved in texi2dvi.out)"
|
||||
else
|
||||
rm texi2dvi.out
|
||||
echo " Looks good."
|
||||
fi
|
||||
|
||||
echo
|
||||
echo
|
||||
echo "Please examine your modifications in \`manual.html'."
|
||||
echo
|
||||
echo "If you would like to use a different browser, set the 'BROWSER' environment"
|
||||
echo "variable."
|
||||
echo
|
||||
|
||||
$BROWSER file:`pwd`/manual_toc.html
|
||||
|
||||
echo "-- Press Enter to Continue --"
|
||||
read junk
|
||||
cleanup
|
@ -1,137 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
needed_flags=0
|
||||
needed_texi2html=0
|
||||
needed_texinfo_tex=0
|
||||
needed_include_texi=0
|
||||
|
||||
if [ -z $BROWSER ]; then
|
||||
BROWSER=netscape
|
||||
echo "BROWSER not set, using $BROWSER"
|
||||
fi
|
||||
|
||||
die ()
|
||||
{
|
||||
echo
|
||||
echo $1
|
||||
cleanup
|
||||
exit 1
|
||||
}
|
||||
|
||||
cleanup ()
|
||||
{
|
||||
echo "Cleaning up..."
|
||||
if [ $needed_flags ]; then
|
||||
bk clean Flags
|
||||
fi
|
||||
|
||||
if [ $needed_texi2html ]; then
|
||||
bk clean Support/texi2html
|
||||
fi
|
||||
|
||||
if [ $needed_texinfo_tex ]; then
|
||||
bk clean Support/texinfo.tex
|
||||
fi
|
||||
|
||||
if [ $needed_include_texi ]; then
|
||||
rm -f include.texi
|
||||
fi
|
||||
|
||||
for file in \
|
||||
manual.de.aux manual.de.cp manual.de.cps manual.de.dvi \
|
||||
manual.de.fn manual.de.fns manual.de.ky manual.de.html \
|
||||
manual.de.pg manual.de.toc manual.de.tp manual.de.vr \
|
||||
mysql.de.info manual.de_toc.html ;
|
||||
do
|
||||
rm -f $file
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
|
||||
if [ -e Flags/usa.txt ]; then
|
||||
echo "Good, Flags are there."
|
||||
else
|
||||
echo -n "Checking out Flags..."
|
||||
bk edit Flags >/dev/null 2>&1
|
||||
echo " Done."
|
||||
needed_flags=1
|
||||
fi
|
||||
|
||||
if [ -e Support/texi2html ]; then
|
||||
echo "Good, texi2html is there."
|
||||
else
|
||||
echo -n "Checking out texi2html..."
|
||||
bk edit Support/texi2html >/dev/null 2>&1
|
||||
echo " Done."
|
||||
needed_texi2html=1
|
||||
fi
|
||||
|
||||
if [ -e Support/texinfo.tex ]; then
|
||||
echo "Good, texinfo.tex is there."
|
||||
else
|
||||
echo -n "Checking out texinfo.tex..."
|
||||
bk edit Support/texinfo.tex >/dev/null 2>&1
|
||||
echo " Done."
|
||||
needed_texinfo_tex=1
|
||||
fi
|
||||
|
||||
if [ -e include.texi ]; then
|
||||
echo "Good, include.texi is there."
|
||||
else
|
||||
echo -n "Creating include.texi..."
|
||||
bk edit ../configure.in >/dev/null 2>&1
|
||||
echo "@c This file was generated by test-make-manual" > include.texi
|
||||
echo -n "@set mysql_version " >> include.texi
|
||||
grep "AM_INIT_AUTOMAKE(mysql, " ../configure.in | \
|
||||
sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;' >> include.texi
|
||||
echo -n "@set default_port " >> include.texi
|
||||
grep "MYSQL_TCP_PORT_DEFAULT=" ../configure.in | \
|
||||
sed -e 's;MYSQL_TCP_PORT_DEFAULT=;;' >> include.texi
|
||||
echo " Done."
|
||||
needed_include_texi=1
|
||||
fi
|
||||
|
||||
echo -n "Running makeinfo..."
|
||||
makeinfo --no-split -I . manual.de.texi
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
die "Manual has errors - fix before you commit"
|
||||
else
|
||||
echo " Looks good."
|
||||
fi
|
||||
|
||||
|
||||
echo -n "Running texi2html..."
|
||||
/usr/bin/perl ./Support/texi2html -iso -number manual.de.texi
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
die "Manual has errors - fix before you commit"
|
||||
else
|
||||
echo " Looks good."
|
||||
fi
|
||||
|
||||
|
||||
echo -n "Running texi2dvi..."
|
||||
texi2dvi --batch manual.de.texi > texi2dvi.out
|
||||
|
||||
if [ $? != 0 ]; then
|
||||
die "Manual has errors - fix before you commit (saved in texi2dvi.out)"
|
||||
else
|
||||
rm texi2dvi.out
|
||||
echo " Looks good."
|
||||
fi
|
||||
|
||||
echo
|
||||
echo
|
||||
echo "Please examine your modifications in \`manual.de.html'."
|
||||
echo
|
||||
echo "If you would like to use a different browser, set the 'BROWSER' environment"
|
||||
echo "variable."
|
||||
echo
|
||||
|
||||
$BROWSER file:`pwd`/manual.de_toc.html
|
||||
|
||||
echo "-- Press Enter to Continue --"
|
||||
read junk
|
||||
cleanup
|
@ -1,11 +0,0 @@
|
||||
--- alt-multi.c Sun Apr 14 10:03:19 2002
|
||||
+++ multi.c Tue May 22 20:52:33 2001
|
||||
@@ -287,7 +287,7 @@
|
||||
&& *params != '\n' && *params != '@')
|
||||
params++;
|
||||
setup_output_environment (i,
|
||||
- (int) ((columnfrac * 100.00) + 0.49));
|
||||
+ (int) (columnfrac * (fill_column - current_indent) + .5));
|
||||
}
|
||||
}
|
||||
|
@ -1,67 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
#
|
||||
# Parse document and report first syntax (well-formedness) error found.
|
||||
#
|
||||
|
||||
use strict;
|
||||
use XML::Parser;
|
||||
use Getopt::Std;
|
||||
|
||||
my %opts;
|
||||
getopts('e', \%opts);
|
||||
my $ENTREFS = exists( $opts{'e'} ); # flag: check ent refs
|
||||
|
||||
my $parser = XML::Parser->new(
|
||||
ErrorContext => 2, # output error context
|
||||
);
|
||||
|
||||
# get input from files
|
||||
if( @ARGV ) {
|
||||
foreach( @ARGV ) {
|
||||
my $file = $_;
|
||||
unless( -r $file ) {
|
||||
print STDERR "ERROR: Can't open '$file'.\n";
|
||||
return;
|
||||
}
|
||||
my $input = '';
|
||||
open( F, $file );
|
||||
while( <F> ) { $input .= $_; }
|
||||
close F;
|
||||
|
||||
# parse and report errors
|
||||
if( &parse_string( $input )) {
|
||||
print STDERR "ERROR in $file:\n$@\n";
|
||||
} else {
|
||||
print STDERR "'$file' is well-formed.\n";
|
||||
}
|
||||
}
|
||||
print "All files checked.\n";
|
||||
|
||||
# get input from STDIN
|
||||
} else {
|
||||
my $input = "";
|
||||
while( <STDIN> ) { $input .= $_; }
|
||||
if( &parse_string( $input )) {
|
||||
print STDERR "ERROR in stream:\n$@\n";
|
||||
} else {
|
||||
print STDERR "No syntax errors found in XML stream.\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# parse the string and return error message
|
||||
#
|
||||
# NOTE: By default, entity refs are not expanded. XML::Parser can be
|
||||
# told not to expand entity refs, but will still try to find
|
||||
# replacement text just in case, which we don't want. Therefore, we
|
||||
# need to do a stupid regexp replacement, removing entities from input.
|
||||
#
|
||||
sub parse_string {
|
||||
my $string = shift;
|
||||
unless( $ENTREFS ) {
|
||||
$string =~ s/\&[^\s;]+;//g; # remove entity references
|
||||
}
|
||||
eval { $parser->parse( $string ); };
|
||||
$@ =~ s/at \/.*?$//s; # remove module line number
|
||||
return $@;
|
||||
}
|
65
Docs/bk.txt
@ -1,65 +0,0 @@
|
||||
Mail by sasha, should be rewritten as a HOWTO sometimes
|
||||
vva added point C) for Windows-project
|
||||
-----------
|
||||
|
||||
I have set up a repository with BitKeeper on work. There are still some things
|
||||
about it that I would like to learn, but I have gotten far enough with it to
|
||||
replace CVS functionality were are currently using, so let's just go ahead and
|
||||
get started on it. Please follow the instructions below (make sure to save the
|
||||
message for future reference):
|
||||
|
||||
a) http://www.bitmover.com/download
|
||||
user: beta
|
||||
password: get bitkeeper
|
||||
|
||||
get the version appropriate for your platform - download it to a temp
|
||||
directory, chmod +x and then run it. You will have to tell it which directory
|
||||
to install, for consistency, let's use /usr/local/bin
|
||||
|
||||
b) we will take advantage of bk capablity of working with master/slave
|
||||
repositories. The master will be on work.mysql.com, the slaves will be our
|
||||
individual machines. The master repository has already been set up on work, so
|
||||
you will need just to set up a slave repository on your machine:
|
||||
|
||||
mkdir bk
|
||||
cd bk
|
||||
bk clone yourusername@work:/home/bk/mysql mysql
|
||||
cd mysql
|
||||
bk -r edit
|
||||
|
||||
Now you have the entire source tree in the current directory. Let's compile it:
|
||||
|
||||
BUILD/compile-pentium-debug
|
||||
|
||||
C) Windows project.
|
||||
- Compile Linux-project (see points above)
|
||||
- run VC++Files/prepare
|
||||
- make repository accessible for Windows (using samba)
|
||||
- open VC++Files/mysql.dsw in Microsoft Visual Stidio (5.0 or above)
|
||||
|
||||
After you edit a file, you need to check it in using bk citool or bk ci
|
||||
filename. Note that ci is different than commit - you ci a file, but you commit
|
||||
a change set. This is a very nice concept - instead of thinking of each
|
||||
individual file as CVS does, bk groups the changes you are making and allows you
|
||||
to document what you actually did between the commits as a whole, rather than
|
||||
just commenting on every file. When you commit, bk will ask you to comment on
|
||||
the change set.
|
||||
|
||||
Commit is done just to your local repository. To make your changes global, you
|
||||
will need to run bk push. Be careful with that - it is a good idea to run bk
|
||||
push -l -n first too see what you are just about to push to the master
|
||||
repository.
|
||||
|
||||
When somebody does a push, you will be getting a email ( I will set this up to
|
||||
day). You will then need to execute bk pull to update your sources. If there are
|
||||
any conflicts, bk will force you to resolve them by asking you questions on what
|
||||
to do with each conflict.
|
||||
|
||||
To learn more about bk, use bk helptool - I will be doing this a lot in the next
|
||||
couple of days :-) If you find bugs or have questions/feature
|
||||
suggestions/comments for developers, feel free to e-mail dev@bitmover.com .
|
||||
Their developers, and especially the president of the company Larry McVoy really
|
||||
like MySQL and are very anxious to help us. Make sure it is obvious that you
|
||||
work for MySQL, of course. And, of course, do not bug them with little things
|
||||
that you can figure out on your own or with my help - they were nice to offer us
|
||||
support, but we should not abuse it.
|
@ -1,18 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
|
||||
<!--
|
||||
This is a dummy changelog file. Don't use it yet.
|
||||
It merges upward without conflict.
|
||||
-->
|
||||
<appendix id="news-4-0-x">
|
||||
|
||||
<title>
|
||||
Changes in release 4.0.x
|
||||
</title>
|
||||
|
||||
<para>
|
||||
This is a dummy changelog file. Don't use it yet.
|
||||
</para>
|
||||
|
||||
</appendix>
|
@ -1,18 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
|
||||
<!--
|
||||
This is a dummy changelog file. Don't use it yet.
|
||||
It merges upward without conflict.
|
||||
-->
|
||||
<appendix id="news-4-1-x">
|
||||
|
||||
<title>
|
||||
Changes in release 4.1.x
|
||||
</title>
|
||||
|
||||
<para>
|
||||
This is a dummy changelog file. Don't use it yet.
|
||||
</para>
|
||||
|
||||
</appendix>
|
@ -1,18 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
|
||||
<!--
|
||||
This is a dummy changelog file. Don't use it yet.
|
||||
It merges upward without conflict.
|
||||
-->
|
||||
<appendix id="news-5.0-x">
|
||||
|
||||
<title>
|
||||
Changes in release 5.0.x
|
||||
</title>
|
||||
|
||||
<para>
|
||||
This is a dummy changelog file. Don't use it yet.
|
||||
</para>
|
||||
|
||||
</appendix>
|
@ -1,112 +0,0 @@
|
||||
Stored Procedures implemented 2004-01-29:
|
||||
|
||||
|
||||
Summary of what's implemented:
|
||||
|
||||
- SQL PROCEDUREs/FUNCTIONs (CREATE/DROP)
|
||||
- CALL
|
||||
- DECLARE of local variables
|
||||
- BEGIN/END, SET, CASE, IF, LOOP, WHILE, REPEAT, ITERATE, LEAVE
|
||||
- SELECT INTO local variables
|
||||
- "Non-query" FUNCTIONs only
|
||||
- Prepared SP caching
|
||||
- CONDITIONs and HANDLERs
|
||||
- Simple read-only CURSORs.
|
||||
- SHOW CREATE PROCEDURE/FUNCTION and SHOW PROCEDURE/FUNCTION STATUS
|
||||
|
||||
|
||||
Summary of Not Yet Implemented:
|
||||
|
||||
- SQL statements using tables (like SELECT, INSERT, UPDATE etc) in FUNCTIONs
|
||||
- External languages
|
||||
- Access control
|
||||
- SQL-99 COMMIT (related to BEGIN/END)
|
||||
- FOR-loops
|
||||
- CASCADE/RESTRICT for ALTER and DROP
|
||||
- ALTER/DROP METHOD (as it implies User Defined Types)
|
||||
- SIGNAL and RESIGNAL, and UNDO handlers
|
||||
|
||||
|
||||
List of what's implemented:
|
||||
|
||||
- CREATE PROCEDURE|FUNCTION name ( args ) characteristics body
|
||||
where characteristics is:
|
||||
LANGUAGE SQL |
|
||||
[NOT] DETERMINISTIC |
|
||||
SQL SECURITY [DEFINER|INVOKER] |
|
||||
COMMENT string
|
||||
However the DETERMINISTIC setting is not currently used.
|
||||
|
||||
- ALTER PROCEDURE|FUNCTION name characteristics
|
||||
CASCADE/RESTRICT is not implemented.
|
||||
characteristics is:
|
||||
COMMENT string |
|
||||
SQL SECURITY [DEFINER|INVOKER] |
|
||||
NAME newname
|
||||
|
||||
- DROP PROCEDURE|FUNCTION [IF EXISTS] name
|
||||
CASCADE/RESTRICT is not implemented.
|
||||
|
||||
- CALL name (args)
|
||||
OUT and INOUT parameters are also works for user variables ("global"
|
||||
variables) - i.e., if a procedure is defined as:
|
||||
CREATE PROCEDURE foo(OUT p INT) ...;
|
||||
a call like:
|
||||
CALL foo(@x);
|
||||
will set @x to the output value.
|
||||
|
||||
- Function/Procedure body:
|
||||
- BEGIN/END
|
||||
Is parsed, but not the real thing with (optional) transaction
|
||||
control, it only serves as block syntax for multiple statements (and
|
||||
local variable binding).
|
||||
Note: Multiple statements requires a client that can send bodies
|
||||
containing ";". This is handled in the CLI clients mysql and
|
||||
mysqltest with the "delimiter" command. Changing the end-of-query
|
||||
delimiter ";" to for instance "|" allows ";" to be used in the
|
||||
routine body.
|
||||
- SET of local variables
|
||||
Implemented as part of the pre-existing SET syntax. This allows an
|
||||
extended syntax of "SET a=x, b=y, ..." where different variable types
|
||||
(SP local and global) can be mixed. This also allows combinations
|
||||
of local variables and some options that only make sense for
|
||||
global/system variables; in that case the options are accepted but
|
||||
ignored.
|
||||
- The flow control constructs: CASE, IF, LOOP, WHILE, ITERATE and LEAVE
|
||||
are fully implemented.
|
||||
- SELECT ... INTO local variables (as well as global session variables)
|
||||
is implemented. (Note: This is not SQL-99 feature, but common in other
|
||||
databases.)
|
||||
- A FUNCTION can have flow control contructs, but must not contain
|
||||
an SQL query/statement, like SELECT, INSERT, UPDATE, etc. The reason
|
||||
is that it's hard to allow this is that a FUNCTION is executed as part
|
||||
of another query (unlike a PROCEDURE, which is called as a statement).
|
||||
The table locking scheme used makes it difficult to allow "subqueries"
|
||||
during FUNCTION invokation.
|
||||
- SPs are cached, but with a separate cache for each thread (THD).
|
||||
There are still quite a few non-reentrant constructs in the lexical
|
||||
context which makes sharing prepared SPs impossible. And, even when
|
||||
this is resolved, it's not necessarily the case that it will be faster
|
||||
than a cache per thread. A global cache requires locks, which might
|
||||
become a bottleneck. (It would save memory though.)
|
||||
- CONDITIONs and HANDLERs are implemented, but not the SIGNAL and
|
||||
RESIGNAL statements. (It's unclear if these can be implemented.)
|
||||
The semantics of CONDITIONs is expanded to allow catching MySQL error
|
||||
codes as well. UNDO handlers are not implemented (since we don't have
|
||||
SQL-99 style transaction control yet).
|
||||
- Simple read-only CURSORs are implemented, but not yet any of the
|
||||
optional arguments to DECLARE (SCROLL, SENSITIVE, etc) or FETCH
|
||||
(NEXT, PRIOR, etc). Cursors are ASENSITIVE, READ-ONLY, non-SCROLLing.
|
||||
(The additional syntax will be added for completeness, but for the
|
||||
most part unsupported with the current underlying cursor mechanism.)
|
||||
N.B. The current implementation is temporary and only works within a
|
||||
stored procedure, and may not perform well for very large result sets.
|
||||
A "real" cursor implementation is under development; this will replace
|
||||
the current one when it's finished.
|
||||
|
||||
- SHOW procedures and functions
|
||||
SHOW CREATE PROCEDURE|FUNCTION <name>
|
||||
returns the definition of a routine.
|
||||
SHOW PROCEDURE|FUNCTION STATUS [LIKE <pattern>]
|
||||
returns characteristics of routines, like the name, type, creator,
|
||||
creation and modification dates, etc.
|
59
Makefile.am
@ -21,25 +21,17 @@ AUTOMAKE_OPTIONS = foreign
|
||||
# These are built from source in the Docs directory
|
||||
EXTRA_DIST = INSTALL-SOURCE INSTALL-WIN-SOURCE \
|
||||
README COPYING EXCEPTIONS-CLIENT cmakelists.txt
|
||||
SUBDIRS = . include @docs_dirs@ @zlib_dir@ @yassl_dir@ \
|
||||
SUBDIRS = . include @docs_dirs@ @zlib_dir@ \
|
||||
@readline_topdir@ sql-common \
|
||||
@thread_dirs@ pstack \
|
||||
@sql_union_dirs@ @mysql_se_dirs@ \
|
||||
@sql_union_dirs@ storage \
|
||||
@sql_server@ scripts @man_dirs@ tests \
|
||||
@mysql_se_plugins@ \
|
||||
netware @libmysqld_dirs@ \
|
||||
@bench_dirs@ support-files @tools_dirs@ \
|
||||
plugin win
|
||||
mysql-test support-files @tools_dirs@ \
|
||||
plugin unittest win
|
||||
|
||||
DIST_SUBDIRS = . include @docs_dirs@ zlib \
|
||||
@readline_topdir@ sql-common \
|
||||
@thread_dirs@ pstack \
|
||||
strings mysys dbug extra regex storage \
|
||||
vio sql libmysql_r libmysql client scripts \
|
||||
@man_dirs@ tests SSL\
|
||||
BUILD netware os2 @libmysqld_dirs@\
|
||||
@bench_dirs@ support-files server-tools tools \
|
||||
plugin win
|
||||
DIST_SUBDIRS = $(SUBDIRS) BUILD
|
||||
|
||||
# Run these targets before any others, also make part of clean target,
|
||||
# to make sure we create new links after a clean.
|
||||
@ -100,9 +92,11 @@ dist-hook:
|
||||
rm -rf `find $(distdir) -type d -name SCCS -print`
|
||||
if echo "$(distdir)" | grep -q '^/' ; then \
|
||||
scripts/mysql_install_db --no-defaults --windows \
|
||||
--basedir=$(top_srcdir) \
|
||||
--datadir="$(distdir)/win/data"; \
|
||||
else \
|
||||
scripts/mysql_install_db --no-defaults --windows \
|
||||
--basedir=$(top_srcdir) \
|
||||
--datadir="$$(pwd)/$(distdir)/win/data"; \
|
||||
fi
|
||||
|
||||
@ -119,54 +113,37 @@ tags:
|
||||
# making sure each user use different ports.
|
||||
|
||||
test:
|
||||
cd mysql-test ; \
|
||||
./mysql-test-run --mysqld=--binlog-format=statement && \
|
||||
./mysql-test-run --ps-protocol --mysqld=--binlog-format=row
|
||||
|
||||
test-full:
|
||||
cd mysql-test ; \
|
||||
./mysql-test-run --mysqld=--binlog-format=statement && \
|
||||
./mysql-test-run --ps-protocol --mysqld=--binlog-format=statement && \
|
||||
./mysql-test-run --mysqld=--binlog-format=row && \
|
||||
./mysql-test-run --ps-protocol --mysqld=--binlog-format=row
|
||||
|
||||
test-force:
|
||||
cd mysql-test ; \
|
||||
./mysql-test-run --force --mysqld=--binlog-format=statement && \
|
||||
./mysql-test-run --ps-protocol --force --mysqld=--binlog-format=row
|
||||
|
||||
test-force-full:
|
||||
cd mysql-test ; \
|
||||
./mysql-test-run --force --mysqld=--binlog-format=statement && \
|
||||
./mysql-test-run --force --ps-protocol --mysqld=--binlog-format=statement && \
|
||||
./mysql-test-run --force --mysqld=--binlog-format=row && \
|
||||
./mysql-test-run --force --ps-protocol --mysqld=--binlog-format=row
|
||||
|
||||
# We are testing a new Perl version of the test script
|
||||
test-pl:
|
||||
cd mysql-test ; \
|
||||
./mysql-test-run.pl --mysqld=--binlog-format=statement && \
|
||||
./mysql-test-run.pl --ps-protocol --mysqld=--binlog-format=row
|
||||
|
||||
test-full-pl:
|
||||
test-full:
|
||||
cd mysql-test ; \
|
||||
./mysql-test-run.pl --mysqld=--binlog-format=statement && \
|
||||
./mysql-test-run.pl --ps-protocol --mysqld=--binlog-format=statement && \
|
||||
./mysql-test-run.pl --mysqld=--binlog-format=row && \
|
||||
./mysql-test-run.pl --ps-protocol --mysqld=--binlog-format=row
|
||||
|
||||
test-force-pl:
|
||||
test-force:
|
||||
cd mysql-test ; \
|
||||
./mysql-test-run.pl --force --mysqld=--binlog-format=statement && \
|
||||
./mysql-test-run.pl --ps-protocol --force --mysqld=--binlog-format=row
|
||||
|
||||
test-force-full-pl:
|
||||
test-force-full:
|
||||
cd mysql-test ; \
|
||||
./mysql-test-run.pl --force --mysqld=--binlog-format=statement && \
|
||||
./mysql-test-run.pl --force --ps-protocol --mysqld=--binlog-format=statement && \
|
||||
./mysql-test-run.pl --force --mysqld=--binlog-format=row && \
|
||||
./mysql-test-run.pl --force --ps-protocol --mysqld=--binlog-format=row
|
||||
|
||||
# Keep these for a while
|
||||
test-pl: test
|
||||
test-full-pl: test-full
|
||||
test-force-pl: test-force
|
||||
test-force-full-pl: test-force-full
|
||||
|
||||
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
||||
|
@ -1,24 +0,0 @@
|
||||
# Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
## Process this file with automake to create Makefile.in
|
||||
|
||||
EXTRA_DIST= NOTES cacert.pem client-cert.pem client-key.pem \
|
||||
client-req.pem run-client run-server server-cert.pem \
|
||||
server-key.pem server-req.pem
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
376
SSL/NOTES
@ -1,376 +0,0 @@
|
||||
Quick notes:
|
||||
--------------------------------------------
|
||||
[tonu@x153 mysql-4.0]$ cat /etc/my.cnf
|
||||
[mysqld]
|
||||
ssl-ca=SSL/cacert.pem
|
||||
ssl-cert=SSL/server-cert.pem
|
||||
ssl-key=SSL/server-key.pem
|
||||
|
||||
[mysql]
|
||||
ssl-ca=SSL/cacert.pem
|
||||
ssl-cert=SSL/client-cert.pem
|
||||
ssl-key=SSL/client-key.pem
|
||||
|
||||
[mysqldump]
|
||||
ssl-ca=SSL/cacert.pem
|
||||
ssl-cert=SSL/client-cert.pem
|
||||
ssl-key=SSL/client-key.pem
|
||||
|
||||
[tonu@x153 mysql-4.0]$
|
||||
--------------------------------------------
|
||||
To remove passwords from keyfiles:
|
||||
[tonu@x153 SSL]$ openssl rsa -inform pem < server-req.pem > server-key.pem
|
||||
read RSA key
|
||||
Enter PEM pass phrase:
|
||||
writing RSA key
|
||||
[tonu@x153 SSL]$
|
||||
--------------------------------------------
|
||||
To run server:
|
||||
|
||||
sql/mysqld --ssl-ca=SSL/cacert.pem --ssl-cert=SSL/server-cert.pem --ssl-key=SSL/server-key.pem --skip-grant --debug='d:t:O,-' > /tmp/mysqld.trace
|
||||
--------------------------------------------
|
||||
To run client:
|
||||
|
||||
client/mysql --ssl-ca=SSL/cacert.pem --ssl-cert=SSL/server-cert.pem --ssl-key=SSL/server-key.pem --debug='d:t:O,/tmp/client.trace' -h 127.0.0.1
|
||||
--------------------------------------------
|
||||
openssl s_client -host 127.0.0.1 -port 1111 -debug -verify 1 -cert ../SSL/client-cert.pem -key ../SSL/client-key.pem -CAfile ../SSL/cacert.pem -pause -showcerts -state
|
||||
|
||||
--------------------------------------------
|
||||
openssl s_server -port 1111 -cert ../SSL/server-cert.pem -key ../SSL/server-key.pem
|
||||
|
||||
|
||||
|
||||
|
||||
--------------------------------------------
|
||||
|
||||
CA stuff:
|
||||
|
||||
[tonu@x153 bin]$ pwd
|
||||
/usr/local/ssl/bin
|
||||
[tonu@x153 bin]$
|
||||
[tonu@x153 bin]$ ./CA.sh
|
||||
[tonu@x153 bin]$ ./CA.sh -h
|
||||
usage: CA -newcert|-newreq|-newca|-sign|-verify
|
||||
[tonu@x153 bin]$
|
||||
[root@x153 bin]# ./CA.sh -newca
|
||||
CA certificate filename (or enter to create)
|
||||
|
||||
Making CA certificate ...
|
||||
Using configuration from /usr/lib/ssl/openssl.cnf
|
||||
Generating a 1024 bit RSA private key
|
||||
.++++++
|
||||
................++++++
|
||||
writing new private key to './demoCA/private/./cakey.pem'
|
||||
Enter PEM pass phrase:
|
||||
Verifying password - Enter PEM pass phrase:
|
||||
phrase is too short, needs to be at least 4 chars
|
||||
Enter PEM pass phrase:
|
||||
Verifying password - Enter PEM pass phrase:
|
||||
-----
|
||||
You are about to be asked to enter information that will be incorporated
|
||||
into your certificate request.
|
||||
What you are about to enter is what is called a Distinguished Name or a DN.
|
||||
There are quite a few fields but you can leave some blank
|
||||
For some fields there will be a default value,
|
||||
If you enter '.', the field will be left blank.
|
||||
-----
|
||||
ountry Name (2 letter code) [AU]:FI
|
||||
State or Province Name (full name) [Some-State]:
|
||||
Locality Name (eg, city) []:Helsinki
|
||||
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MySQL Finland AB
|
||||
Organizational Unit Name (eg, section) []:
|
||||
Common Name (eg, YOUR name) []:Tonu Samuel
|
||||
Email Address []:tonu@mysql.com
|
||||
[root@x153 bin]#
|
||||
[root@x153 bin]# ls -la demoCA/
|
||||
total 13
|
||||
drwxr-xr-x 6 root root 232 Jun 24 18:50 ./
|
||||
drwxr-xr-x 3 root root 2136 Jun 24 18:41 ../
|
||||
-rw-r--r-- 1 root root 1241 Jun 24 18:50 cacert.pem
|
||||
drwxr-xr-x 2 root root 48 Jun 24 18:41 certs/
|
||||
drwxr-xr-x 2 root root 48 Jun 24 18:41 crl/
|
||||
-rw-r--r-- 1 root root 0 Jun 24 18:44 index.txt
|
||||
drwxr-xr-x 2 root root 48 Jun 24 18:41 newcerts/
|
||||
drwxr-xr-x 2 root root 80 Jun 24 18:44 private/
|
||||
-rw-r--r-- 1 root root 3 Jun 24 18:44 serial
|
||||
[root@x153 bin]#
|
||||
[root@x153 bin]# ls -la demoCA/private/
|
||||
total 5
|
||||
drwxr-xr-x 2 root root 80 Jun 24 18:44 ./
|
||||
drwxr-xr-x 6 root root 232 Jun 24 18:50 ../
|
||||
-rw-r--r-- 1 root root 963 Jun 24 18:50 cakey.pem
|
||||
[root@x153 bin]#
|
||||
[root@x153 bin]# ./CA.sh -newreq
|
||||
Using configuration from /usr/lib/ssl/openssl.cnf
|
||||
Generating a 1024 bit RSA private key
|
||||
..................++++++
|
||||
........................++++++
|
||||
writing new private key to 'newreq.pem'
|
||||
Enter PEM pass phrase: <- new key password, not CA
|
||||
Verifying password - Enter PEM pass phrase:
|
||||
-----
|
||||
You are about to be asked to enter information that will be incorporated
|
||||
into your certificate request.
|
||||
What you are about to enter is what is called a Distinguished Name or a DN.
|
||||
There are quite a few fields but you can leave some blank
|
||||
For some fields there will be a default value,
|
||||
If you enter '.', the field will be left blank.
|
||||
-----
|
||||
Country Name (2 letter code) [AU]:EE
|
||||
State or Province Name (full name) [Some-State]:
|
||||
Locality Name (eg, city) []:Tallinn
|
||||
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Noname
|
||||
Organizational Unit Name (eg, section) []:
|
||||
Common Name (eg, YOUR name) []:Mr Noname
|
||||
Email Address []:a@b.c
|
||||
|
||||
Please enter the following 'extra' attributes
|
||||
to be sent with your certificate request
|
||||
A challenge password []:
|
||||
An optional company name []:
|
||||
Request (and private key) is in newreq.pem
|
||||
[root@x153 bin]#
|
||||
[root@x153 bin]# ls -la newreq.pem
|
||||
-rw-r--r-- 1 root root 1623 Jun 24 18:54 newreq.pem
|
||||
[root@x153 bin]#
|
||||
[root@x153 bin]# ./CA.sh -sign
|
||||
Using configuration from /usr/lib/ssl/openssl.cnf
|
||||
Enter PEM pass phrase: <- CA's one!
|
||||
Check that the request matches the signature
|
||||
Signature ok
|
||||
The Subjects Distinguished Name is as follows
|
||||
countryName :PRINTABLE:'EE'
|
||||
stateOrProvinceName :PRINTABLE:'Some-State'
|
||||
localityName :PRINTABLE:'Tallinn'
|
||||
organizationName :PRINTABLE:'Noname'
|
||||
commonName :PRINTABLE:'Mr Noname'
|
||||
emailAddress :IA5STRING:'a@b.c'
|
||||
Certificate is to be certified until Jun 24 15:50:23 2002 GMT (365 days)
|
||||
Sign the certificate? [y/n]:y
|
||||
|
||||
|
||||
1 out of 1 certificate requests certified, commit? [y/n]y
|
||||
Write out database with 1 new entries
|
||||
Data Base Updated
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 1 (0x1)
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
Issuer: C=FI, ST=Some-State, L=Helsinki, O=MySQL Finland AB, CN=Tonu Samuel/Email=tonu@mysql.com
|
||||
Validity
|
||||
Not Before: Jun 24 15:50:23 2001 GMT
|
||||
Not After : Jun 24 15:50:23 2002 GMT
|
||||
Subject: C=EE, ST=Some-State, L=Tallinn, O=Noname, CN=Mr Noname/Email=a@b.c
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
RSA Public Key: (1024 bit)
|
||||
Modulus (1024 bit):
|
||||
00:ab:3b:7d:5b:6c:93:f6:46:1a:2c:46:73:6f:89:
|
||||
8a:99:bb:e9:6b:94:0d:74:aa:aa:c4:5c:a2:61:cf:
|
||||
56:bb:a1:a9:5a:37:c4:4e:b2:ec:5c:18:3a:a4:8d:
|
||||
af:3d:23:66:7c:85:7f:d1:f2:e3:fc:16:a7:4c:a2:
|
||||
d6:45:06:92:75:d8:a2:3b:f9:aa:77:da:26:b9:87:
|
||||
e0:df:50:54:e4:36:9f:35:87:39:8e:a6:7c:3e:a8:
|
||||
e4:49:1a:76:c2:6f:73:0b:22:93:2a:04:67:0d:7d:
|
||||
ae:34:5c:fe:7c:29:b8:a2:fe:1e:ef:d1:0c:4d:dd:
|
||||
5b:7a:67:b0:0a:22:88:a0:af
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints:
|
||||
CA:FALSE
|
||||
Netscape Comment:
|
||||
OpenSSL Generated Certificate
|
||||
X509v3 Subject Key Identifier:
|
||||
83:D1:0D:52:0F:DE:61:2D:A6:10:20:B8:46:0C:77:D5:D2:D0:BE:20
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:A5:0A:D6:72:B5:DF:E4:C2:2B:7B:07:5E:D3:4D:52:07:E1:83:6B:7F
|
||||
DirName:/C=FI/ST=Some-State/L=Helsinki/O=MySQL Finland AB/CN=Tonu Samuel/Email=tonu@mysql.com
|
||||
serial:00
|
||||
|
||||
Signature Algorithm: md5WithRSAEncryption
|
||||
60:85:f7:d0:54:2a:67:88:0e:37:a6:a8:8e:fd:a0:c9:a1:d7:
|
||||
c6:fc:4c:2e:59:8d:88:6d:69:0a:b8:b2:67:5f:81:94:39:0e:
|
||||
ab:67:fc:8b:62:de:85:f6:b3:8c:2d:1a:e3:dc:28:fc:f5:99:
|
||||
39:f0:3d:50:ca:88:c0:8e:f8:c2:02:5d:34:19:63:9f:c4:a2:
|
||||
f6:a8:81:c9:8d:6d:bd:c4:42:4a:0c:49:5a:cc:24:ea:65:80:
|
||||
dd:79:20:89:9e:ea:6b:80:7a:86:f9:bb:6d:24:3c:80:13:5b:
|
||||
e6:16:fc:3d:8d:f6:16:ea:33:25:c6:90:20:81:a4:b0:15:2e:
|
||||
9c:1c
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDfjCCAuegAwIBAgIBATANBgkqhkiG9w0BAQQFADCBhTELMAkGA1UEBhMCRkkx
|
||||
EzARBgNVBAgTClNvbWUtU3RhdGUxETAPBgNVBAcTCEhlbHNpbmtpMRkwFwYDVQQK
|
||||
ExBNeVNRTCBGaW5sYW5kIEFCMRQwEgYDVQQDEwtUb251IFNhbXVlbDEdMBsGCSqG
|
||||
SIb3DQEJARYOdG9udUBteXNxbC5jb20wHhcNMDEwNjI0MTU1MDIzWhcNMDIwNjI0
|
||||
MTU1MDIzWjBvMQswCQYDVQQGEwJFRTETMBEGA1UECBMKU29tZS1TdGF0ZTEQMA4G
|
||||
A1UEBxMHVGFsbGlubjEPMA0GA1UEChMGTm9uYW1lMRIwEAYDVQQDEwlNciBOb25h
|
||||
bWUxFDASBgkqhkiG9w0BCQEWBWFAYi5jMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
|
||||
iQKBgQCrO31bbJP2RhosRnNviYqZu+lrlA10qqrEXKJhz1a7oalaN8ROsuxcGDqk
|
||||
ja89I2Z8hX/R8uP8FqdMotZFBpJ12KI7+ap32ia5h+DfUFTkNp81hzmOpnw+qORJ
|
||||
GnbCb3MLIpMqBGcNfa40XP58Kbii/h7v0QxN3Vt6Z7AKIoigrwIDAQABo4IBETCC
|
||||
AQ0wCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg
|
||||
Q2VydGlmaWNhdGUwHQYDVR0OBBYEFIPRDVIP3mEtphAguEYMd9XS0L4gMIGyBgNV
|
||||
HSMEgaowgaeAFKUK1nK13+TCK3sHXtNNUgfhg2t/oYGLpIGIMIGFMQswCQYDVQQG
|
||||
EwJGSTETMBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UEBxMISGVsc2lua2kxGTAX
|
||||
BgNVBAoTEE15U1FMIEZpbmxhbmQgQUIxFDASBgNVBAMTC1RvbnUgU2FtdWVsMR0w
|
||||
GwYJKoZIhvcNAQkBFg50b251QG15c3FsLmNvbYIBADANBgkqhkiG9w0BAQQFAAOB
|
||||
gQBghffQVCpniA43pqiO/aDJodfG/EwuWY2IbWkKuLJnX4GUOQ6rZ/yLYt6F9rOM
|
||||
LRrj3Cj89Zk58D1QyojAjvjCAl00GWOfxKL2qIHJjW29xEJKDElazCTqZYDdeSCJ
|
||||
nuprgHqG+bttJDyAE1vmFvw9jfYW6jMlxpAggaSwFS6cHA==
|
||||
-----END CERTIFICATE-----
|
||||
Signed certificate is in newcert.pem
|
||||
[root@x153 bin]# ls -la demoCA/newcerts/
|
||||
total 5
|
||||
drwxr-xr-x 2 root root 72 Jun 24 18:58 ./
|
||||
drwxr-xr-x 6 root root 296 Jun 24 18:58 ../
|
||||
-rw-r--r-- 1 root root 3533 Jun 24 18:58 01.pem
|
||||
[root@x153 bin]#
|
||||
[root@x153 mysql-4.0]# ./sql/mysqld --ssl-cert=SSL/server-cert.pem --ssl-ca=SSL/cacert.pem --ssl-ke
|
||||
y=SSL/server-req.pem -L /home/tonu/mysql-4.0/sql/share/english/ -u root
|
||||
Enter PEM pass phrase:
|
||||
./sql/mysqld: ready for connections
|
||||
[tonu@x153 mysql-4.0]$ client/mysql --ssl-key=SSL/client-req.pem --ssl-ca=SSL/cacert.pem --ssl-cert
|
||||
=SSL/client-cert.pem
|
||||
Enter PEM pass phrase:
|
||||
ERROR:
|
||||
|
||||
[tonu@x153 mysql-4.0]$
|
||||
|
||||
|
||||
|
||||
|
||||
-8<------------------------
|
||||
SSL encrypts data between MySQL server and client.
|
||||
|
||||
You need openssl (formerly SSLeay) for MySQL SSL support. Development
|
||||
and testing was done on openssl version 0.9.3a
|
||||
|
||||
To compile MySQL one must do:
|
||||
./configure --with-openssl=/usr
|
||||
|
||||
or
|
||||
|
||||
./configure --with-openssl=yes
|
||||
|
||||
There are sample keys and certificates included with MySQL tarball in
|
||||
directory ./SSL. They are meant to be for quick start and
|
||||
testing only. Using them in production environment means same as not
|
||||
using encryption. This is because private keys are publicly
|
||||
accessible for everyone. You must use openssl distribution for new key
|
||||
and certificate generation for both client and server.
|
||||
|
||||
----------- for manual: ---------------------
|
||||
*New API calls:*
|
||||
|
||||
mysql_ssl_set() - Set SSL properties (key, certificate,
|
||||
certificates authority certificate). Must be called before
|
||||
mysql_real_connect();
|
||||
mysql_ssl_clear() - Clear and free resources occupied by
|
||||
mysql_ssl_set() API call.
|
||||
char *mysql_ssl_cipher(MYSQL *) - returns cipher in use. For example
|
||||
"DES-CDC3-SHA" means that you have combined triple DES symmetric
|
||||
algorithm and SHA
|
||||
hashing algorithm.
|
||||
|
||||
|
||||
*New command line switches:*
|
||||
--ssl Use SSL for connection (automatically set with
|
||||
other flags. This means one can use encrypted connection without strong
|
||||
cryptological authentication. Normally one must use all switches
|
||||
together including ssl-key, ssl-cert and ssl-ca and never mind about
|
||||
--ssl because this is assumed by defult if any of them (--ssl-...)
|
||||
included.
|
||||
--ssl-key X509 key in PEM format (implies --ssl)
|
||||
--ssl-cert X509 cert in PEM format (implies --ssl)
|
||||
--ssl-ca CA file in PEM format (check OpenSSL docs,
|
||||
implies --ssl)
|
||||
--ssl-capath CA directory (check OpenSSL docs, implies --ssl
|
||||
----------------
|
||||
This is about using SSL in MySQL privilege system. My idea is to make
|
||||
possible use of x509 certificates and keys instead of MySQL native
|
||||
passwords
|
||||
Some basic theory about crypt, SSL and x509:
|
||||
x509 is standard for certificates. SSL is standard for secure
|
||||
communication. Certificates are issued by someone anyone can trust. This
|
||||
trusted party is called "Certificate Authority" or "CA". This is
|
||||
someone, we MUST trust. Everyone must have some "fingerprint" of CA (so
|
||||
called "CA certificate" or "CA cert") using which one can verify
|
||||
authenticity of other
|
||||
certificates issued by this CA. CA uses his power to give certificates
|
||||
to persons (they can be physical (like "monty") or logical (like some
|
||||
process). Person is identified by "subject" like
|
||||
"/C=EE/ST=Harjumaa/L=Tallinn/O=MySQL client bogus certificate/CN=Tonu
|
||||
Samuel/Email=<EMAIL: PROTECTED>". and signed cryptologically. This sign can be
|
||||
verified using CA-cert. So, if we trust CA, then we can trust identity
|
||||
of user.
|
||||
There can be many CA-s (usually not but who knows). Also there can be
|
||||
some users we don`t trust or have different privileges. This means we
|
||||
must have one table to hold CA-certs and other table to hold so called
|
||||
"subjects" (users). I think it`s a good idea to use existing structure
|
||||
of host/user/db/field and add some x509 relationship. Then we can
|
||||
use usual simple user/host pair or x509 subject/CA pair.
|
||||
So I think user must grant rights using old method GRANT blabla ON
|
||||
blabla TO blabla IDENTIFIED BY blabla
|
||||
or new way:
|
||||
-----------8<---------------------------
|
||||
GRANT blabla ON blabla TO blabla
|
||||
IDENTIFIED BY X509 SUBJECT "/C=EE/ST=Harjumaa/L=Tallinn/O=MySQL client
|
||||
bogus certificate/CN=Tonu Samuel/Email=<EMAIL: PROTECTED>" AND ISSUER
|
||||
"/C=EE/ST=Harjumaa/L=Tallinn/O=TCX AB/CN=Tonu
|
||||
Samuel/Email=<EMAIL: PROTECTED>";
|
||||
-----------8<---------------------------
|
||||
Please note the difference in Subject and Issuer. This command requests
|
||||
user to authenticate itself with exact subject and exact certificate
|
||||
issuer. Next possibility is just have any certificate of some good CA:
|
||||
-----------8<---------------------------
|
||||
GRANT blabla ON blabla TO blabla IDENTIFIED BY X509 ISSUER
|
||||
"/C=EE/ST=Harjumaa/L=Tallinn/O=TCX
|
||||
AB/CN=Tonu Samuel/Email=<EMAIL: PROTECTED>";
|
||||
-----------8<---------------------------
|
||||
or if any registered CA is good enough (usual case when only one CA is
|
||||
registered)
|
||||
but we care about exact user, then something like:
|
||||
-----------8<---------------------------
|
||||
GRANT blabla ON blabla TO blabla IDENTIFIED BY X509 SUBJECT
|
||||
"/C=EE/ST=Harjumaa/L=Tallinn/O=MySQL client
|
||||
bogus certificate/CN=Tonu Samuel/Email=<EMAIL: PROTECTED>";
|
||||
-----------8<---------------------------
|
||||
And case if user must authenticate itself but we don`t care about exact
|
||||
person until he have some certificate issued by CA registered in our
|
||||
system:
|
||||
-----------8<---------------------------
|
||||
GRANT blabla ON blabla TO blabla IDENTIFIED BY X509;
|
||||
-----------8<---------------------------
|
||||
Then additionally we need one exception. Let`s assume we need SSL
|
||||
encryption
|
||||
for preventing eavesdropping but we don`t care who it is at all. We need
|
||||
privilege to exclude all non-SSL users but we accept anyone using SSL.
|
||||
How
|
||||
this must be done in GRANT syntax? Maybe:
|
||||
-----------8<---------------------------
|
||||
GRANT blabla ON blabla TO blabla
|
||||
IDENTIFIED BY blabla AND USING SSL
|
||||
-----------8<---------------------------
|
||||
But maybe we want to add in future possibility to check different
|
||||
algorithms and key lengths? Something like:
|
||||
-----------8<---------------------------
|
||||
GRANT blabla ON blabla TO blabla IDENTIFIED BY blabla AND USING SSL WITH
|
||||
CIPHER "DES-CBC3-SHA" OR "DES-CBC3-MD5"
|
||||
-----------8<---------------------------
|
||||
Also we need some command to include/exclude CA certificates. This must
|
||||
be some commands like INSERT/DELETE/UPDATE/REPLACE to do it.
|
||||
All examples is given for clarify my problem. I asking for help because
|
||||
I don`t know
|
||||
any similar command in other SQL-s.
|
||||
------------8<------------------------
|
||||
|
||||
So, at moment SSL communications is ready and working. I don`t have this
|
||||
command iterface at moment yet and this can be changed a lot if someone
|
||||
can suggest good idea or reason to change them. We are ready to listen
|
||||
every opinion.
|
||||
About Kerberos: I just don`t know much about it. I have to read this
|
||||
again before I can comment. I never used it itself and forgot most of
|
||||
theory. Sorry. Anyway now the problem/need is known and I will put
|
||||
thinking about this in personal TODO.
|
||||
|
||||
|
@ -1,12 +0,0 @@
|
||||
-----BEGIN CERTIFICATE REQUEST-----
|
||||
MIIBvDCCASUCAQAwfDELMAkGA1UEBhMCU0UxEDAOBgNVBAcTB1VwcHNhbGExETAP
|
||||
BgNVBAoTCE15U1FMIEFCMRUwEwYDVQQDEwxNeVNRTCBDbGllbnQxMTAvBgkqhkiG
|
||||
9w0BCQEWImFic3RyYWN0Lm15c3FsLmRldmVsb3BlckBteXNxbC5jb20wgZ8wDQYJ
|
||||
KoZIhvcNAQEBBQADgY0AMIGJAoGBAMQDCu7jsRL87rQZ9OFgHeAow5Yt34JpzXR8
|
||||
VFjQrrNZPwwZHJkQphLJzzpkBUOOv9JlNoCRC2WwJyY4ySPYNqJK8PfAL2g4cAEn
|
||||
Kf+yxVLha/HI18Nc7vA3bCqblhoFnuszojlad2ZiJ3UfL2842uWfeK/KayI/Vyu8
|
||||
po9H0ZlvAgMBAAGgADANBgkqhkiG9w0BAQQFAAOBgQAnKdk68dGJXvlj/GXwBUWN
|
||||
oXWF7hq4fDmwyhmcFUqk8qZKPKFUxkcER0GLzYeUgvD2URSfaS3/YW0d7K7kXGwP
|
||||
rB5edb+suaYf6mjm/w37xw/EJI9rdSKcB/3SSu8mALds7sUHDAO+MO0WkA/9d7t0
|
||||
LOsUqcDvMkKpZuYwNILwLw==
|
||||
-----END CERTIFICATE REQUEST-----
|
@ -1,10 +0,0 @@
|
||||
#! /bin/sh
|
||||
|
||||
cmd () {
|
||||
echo $*
|
||||
$*
|
||||
}
|
||||
|
||||
client/mysql --port=4407 --socket=/tmp/test.mysql.sock --ssl-ca=SSL/cacert.pem --ssl-cert=SSL/client-cert.pem --ssl-key=SSL/client-key.pem --debug='d:t:O,/tmp/client.trace' -h 127.0.0.1 -u root
|
||||
#--execute="select version();show status"
|
||||
|
@ -1,9 +0,0 @@
|
||||
#! /bin/sh
|
||||
|
||||
cmd () {
|
||||
echo $*
|
||||
$*
|
||||
}
|
||||
|
||||
cmd sql/mysqld --port=4407 --socket=/tmp/test.mysql.sock --ssl-ca=SSL/cacert.pem --ssl-cert=SSL/server-cert.pem --ssl-key=SSL/server-key.pem --debug='d:t:O,/tmp/mysqld.trace' -uroot >& /tmp/mysqld.output
|
||||
|
@ -1,12 +0,0 @@
|
||||
-----BEGIN CERTIFICATE REQUEST-----
|
||||
MIIBvDCCASUCAQAwfDELMAkGA1UEBhMCU0UxEDAOBgNVBAcTB1VwcHNhbGExETAP
|
||||
BgNVBAoTCE15U1FMIEFCMRUwEwYDVQQDEwxNeVNRTCBTZXJ2ZXIxMTAvBgkqhkiG
|
||||
9w0BCQEWImFic3RyYWN0Lm15c3FsLmRldmVsb3BlckBteXNxbC5jb20wgZ8wDQYJ
|
||||
KoZIhvcNAQEBBQADgY0AMIGJAoGBAOmGelWEiEy+pPiSczASSQt6hYc5NDkNfQuN
|
||||
GMIXlRNS0j9VEFfIP1r1svqL0GdJzKqC/J/OALRz8zbSOtPCsA4Uw9SyIXSh8DGB
|
||||
YIeYc1wQwbEaTfHzsJg/8NeXmyv91SF5si/rZBXJm538ni3U+ARb6ql1S0LDPQ5N
|
||||
Kqi4ypmNAgMBAAGgADANBgkqhkiG9w0BAQQFAAOBgQCagJxGHBC+G5aSh3OguFn6
|
||||
z+qAC7u3B181kPBgNv20zMgLeq7YiAh3iNx4XO2+QXRGzMznFKx1tFr/mavCpgLs
|
||||
p3+dCvQt5FHEFFK1D1pDeXy4146X07hOTtC9jc/jSWeVnH4ujuX5gMtZqisOyYWV
|
||||
/gpw6dBtkTYlhS+y86kM/Q==
|
||||
-----END CERTIFICATE REQUEST-----
|
71
VC++Files/client/mysql_upgrade.dsp
Normal file
@ -0,0 +1,71 @@
|
||||
# Microsoft Developer Studio Project File - Name="mysql_upgrade" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=mysql_upgrade - Win32 Release
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "mysql_upgrade.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "mysql_upgrade.mak" CFG="mysql_upgrade - Win32 Release"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "mysql_upgrade - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "mysql_upgrade___Win32_Release"
|
||||
# PROP BASE Intermediate_Dir "mysql_upgrade___Win32_Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "mysql_upgrade___Win32_Release"
|
||||
# PROP Intermediate_Dir "mysql_upgrade___Win32_Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /G6 /MT /W3 /O2 /I "../include" /D "NDEBUG" /D "DBUG_OFF" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /Fp"Release/mysql_upgrade.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
|
||||
# ADD BASE RSC /l 0x416 /d "NDEBUG"
|
||||
# ADD RSC /l 0x416 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib zlib.lib /nologo /subsystem:console /pdb:"release/mysql_upgrade.pdb" /machine:I386 /out:"../client_release/mysql_upgrade.exe" /libpath:"..\lib_release\\"
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
# Begin Target
|
||||
|
||||
# Name "mysql_upgrade - Win32 Release"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\mysql_upgrade.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
77
VC++Files/client/mysql_upgrade_ia64.dsp
Normal file
@ -0,0 +1,77 @@
|
||||
# Microsoft Developer Studio Project File - Name="mysql_upgrade" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=mysql_upgrade - Win32 Release
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "mysql_upgrade.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "mysql_upgrade.mak" CFG="mysql_upgrade - Win32 Release"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "mysql_upgrade - WinIA64 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "mysql - WinIA64 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "mysql_upgrade___WinIA64_Release"
|
||||
# PROP BASE Intermediate_Dir "mysql_upgrade___WinIA64_Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "mysql_upgrade___WinIA64_Release"
|
||||
# PROP Intermediate_Dir "mysql_upgrade___WinIA64_Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN64" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /I "../include" /D"NDEBUG" /D"DBUG_OFF" /D"_CONSOLE" /D"_MBCS" /D"_WINDOWS" /Fp"Release/mysql_upgrade.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c /O2 /G2 /EHsc /D"_IA64_" /Zi /D"WIN64" /D"WIN32" /D"_AFX_NO_DAO_SUPPORT" /Wp64 /Zm600
|
||||
# ADD BASE RSC /l 0x416 /d "NDEBUG"
|
||||
# ADD RSC /l 0x416 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:IA64
|
||||
# ADD LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib zlib.lib /nologo /subsystem:console /pdb:"release/mysql_upgrade.pdb" /machine:IA64 /out:"../client_release/mysql_upgrade.exe" /libpath:"..\lib_release\\" /incremental:no
|
||||
# SUBTRACT LINK32
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "mysql_upgrade - WinIA64 Release"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\mysql_upgrade.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
@ -71,7 +71,6 @@ REM Copy share, docs etc
|
||||
xcopy share\*.* c:\mysql\share /E /Y
|
||||
xcopy scripts\*.* c:\mysql\scripts /E /Y
|
||||
xcopy docs\*.* c:\mysql\docs /E /Y
|
||||
xcopy sql-bench\*.* c:\mysql\bench /E /Y
|
||||
copy docs\readme c:\mysql\
|
||||
|
||||
REM Copy privilege tables (Delete old ones as they may be from a newer version)
|
||||
|
@ -21,7 +21,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../include,../libmysqld,../sql,../regex,../extra/yassl/include,../storage/bdb/build_win32,../zlib"
|
||||
AdditionalIncludeDirectories="../include,../libmysqld,../sql,../regex,../extra/yassl/include,../storage/bdb/build_win32,../zlib,."
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;_MBCS;_DEBUG;SAFEMALLOC;USE_SYMDIR;SIGNAL_WITH_VIO_CLOSE;HAVE_DLOPEN;EMBEDDED_LIBRARY;MYSQL_SERVER;HAVE_INNOBASE_DB;WITH_INNOBASE_STORAGE_ENGINE;USE_TLS;__WIN__"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
@ -89,7 +89,7 @@
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
OptimizeForProcessor="2"
|
||||
AdditionalIncludeDirectories="../include,../regex,../extra/yassl/include,../libmysqld,../sql,../zlib"
|
||||
AdditionalIncludeDirectories="../include,../regex,../extra/yassl/include,../libmysqld,../sql,../zlib,."
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;_MBCS;NDEBUG;DBUG_OFF;USE_SYMDIR;SIGNAL_WITH_VIO_CLOSE;HAVE_DLOPEN;EMBEDDED_LIBRARY;MYSQL_SERVER;HAVE_INNOBASE_DB;WITH_INNOBASE_STORAGE_ENGINE;USE_TLS;__WIN__;LICENSE=Commercial"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="0"
|
||||
@ -155,7 +155,7 @@
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
OptimizeForProcessor="2"
|
||||
AdditionalIncludeDirectories="../include,../libmysqld,../sql,../regex,../extra/yassl/include,../storage/bdb/build_win32,../zlib"
|
||||
AdditionalIncludeDirectories="../include,../libmysqld,../sql,../regex,../extra/yassl/include,../storage/bdb/build_win32,../zlib,."
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;_MBCS;NDEBUG;DBUG_OFF;USE_SYMDIR;SIGNAL_WITH_VIO_CLOSE;HAVE_DLOPEN;EMBEDDED_LIBRARY;MYSQL_SERVER;HAVE_INNOBASE_DB;WITH_INNOBASE_STORAGE_ENGINE;USE_TLS;__WIN__"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="0"
|
||||
@ -221,7 +221,7 @@
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
OptimizeForProcessor="2"
|
||||
AdditionalIncludeDirectories="../include,../regex,../extra/yassl/include,../libmysqld,../sql,../zlib"
|
||||
AdditionalIncludeDirectories="../include,../regex,../extra/yassl/include,../libmysqld,../sql,../zlib,."
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;_MBCS;NDEBUG;DBUG_OFF;USE_SYMDIR;SIGNAL_WITH_VIO_CLOSE;HAVE_DLOPEN;EMBEDDED_LIBRARY;MYSQL_SERVER;USE_TLS;__WIN__;LICENSE=Commercial"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="0"
|
||||
|
@ -1,106 +0,0 @@
|
||||
# Microsoft Developer Studio Project File - Name="mysql_test_run_new" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=mysql_test_run_new - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "mysql_test_run_new.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "mysql_test_run_new.mak" CFG="mysql_test_run_new - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "mysql_test_run_new - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "mysql_test_run_new - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
MTL=midl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "mysql_test_run_new - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir ".\Debug"
|
||||
# PROP BASE Intermediate_Dir ".\Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir ".\Debug"
|
||||
# PROP Intermediate_Dir ".\Debug"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MTd /I "../include" /I "../" /Z7 /W3 /Od /G6 /D "_DEBUG" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN32" /Fp".\Debug/mysql_test_run_new.pch" /Fo".\Debug/" /Fd".\Debug/" /GZ /FD /c /GX
|
||||
# ADD CPP /nologo /MTd /I "../include" /I "../" /Z7 /W3 /Od /G6 /D "_DEBUG" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN32" /Fp".\Debug/mysql_test_run_new.pch" /Fo".\Debug/" /Fd".\Debug/" /GZ /FD /c /GX
|
||||
# ADD BASE MTL /nologo /tlb".\Debug\mysql_test_run_new.tlb" /win32
|
||||
# ADD MTL /nologo /tlb".\Debug\mysql_test_run_new.tlb" /win32
|
||||
# ADD BASE RSC /l 1033
|
||||
# ADD RSC /l 1033
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /incremental:yes /debug /pdb:".\Debug\mysql_test_run_new.pdb" /pdbtype:sept /map:".\Debug\mysql_test_run_new.map" /subsystem:console
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib zlib.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /incremental:yes /libpath:"..\lib_debug\" /debug /pdb:".\Debug\mysql_test_run_new.pdb" /pdbtype:sept /map:".\Debug\mysql_test_run_new.map" /subsystem:console
|
||||
|
||||
!ELSEIF "$(CFG)" == "mysql_test_run_new - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir ".\Release"
|
||||
# PROP BASE Intermediate_Dir ".\Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir ".\Release"
|
||||
# PROP Intermediate_Dir ".\Release"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MTd /I "../include" /I "../" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN32" /GF /Gy /Fp".\Release/mysql_test_run_new.pch" /Fo".\Release/" /Fd".\Release/" /FD /c /GX
|
||||
# ADD CPP /nologo /MTd /I "../include" /I "../" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN32" /GF /Gy /Fp".\Release/mysql_test_run_new.pch" /Fo".\Release/" /Fd".\Release/" /FD /c /GX
|
||||
# ADD BASE MTL /nologo /tlb".\Release\mysql_test_run_new.tlb" /win32
|
||||
# ADD MTL /nologo /tlb".\Release\mysql_test_run_new.tlb" /win32
|
||||
# ADD BASE RSC /l 1033
|
||||
# ADD RSC /l 1033
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /incremental:no /pdb:".\Release\mysql_test_run_new.pdb" /pdbtype:sept /subsystem:console
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib zlib.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\Release\mysql_test_run_new.pdb" /pdbtype:sept /subsystem:console
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "mysql_test_run_new - Win32 Debug"
|
||||
# Name "mysql_test_run_new - Win32 Release"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\my_create_tables.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\my_manage.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\my_manage.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\mysql_test_run_new.c
|
||||
# End Source File
|
||||
# End Target
|
||||
# End Project
|
||||
|
@ -1,204 +0,0 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="mysql_test_run_new"
|
||||
SccProjectName=""
|
||||
SccLocalPath="">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory=".\Debug"
|
||||
IntermediateDirectory=".\Debug"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
OptimizeForProcessor="2"
|
||||
AdditionalIncludeDirectories="../include,../"
|
||||
PreprocessorDefinitions="_DEBUG;_WINDOWS;SAFE_MUTEX;USE_TLS;MYSQL_CLIENT;__WIN__;_WIN32"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
PrecompiledHeaderFile=".\Debug/mysql_test_run_new.pch"
|
||||
AssemblerListingLocation=".\Debug/"
|
||||
ObjectFile=".\Debug/"
|
||||
ProgramDataBaseFileName=".\Debug/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"
|
||||
DebugInformationFormat="1"
|
||||
CompileAs="0"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="odbc32.lib odbccp32.lib Ws2_32.lib zlib.lib"
|
||||
OutputFile="..\mysql-test\mysql_test_run_new.exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
AdditionalLibraryDirectories="..\lib_debug\"
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile=".\Debug/mysql_test_run_new.pdb"
|
||||
GenerateMapFile="TRUE"
|
||||
MapFileName=".\Debug/mysql_test_run_new.map"
|
||||
SubSystem="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
SuppressStartupBanner="TRUE"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Debug/mysql_test_run_new.tlb"
|
||||
HeaderFileName=""/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
Culture="1033"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory=".\Release"
|
||||
IntermediateDirectory=".\Release"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="4"
|
||||
InlineFunctionExpansion="1"
|
||||
OptimizeForProcessor="2"
|
||||
AdditionalIncludeDirectories="../include,../"
|
||||
PreprocessorDefinitions="DBUG_OFF;_WINDOWS;SAFE_MUTEX;USE_TLS;MYSQL_CLIENT;__WIN__;_WIN32"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="1"
|
||||
EnableFunctionLevelLinking="TRUE"
|
||||
PrecompiledHeaderFile=".\Release/mysql_test_run_new.pch"
|
||||
AssemblerListingLocation=".\Release/"
|
||||
ObjectFile=".\Release/"
|
||||
ProgramDataBaseFileName=".\Release/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"
|
||||
CompileAs="0"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="odbc32.lib odbccp32.lib Ws2_32.lib zlib.lib"
|
||||
OutputFile="..\mysql-test\mysql_test_run_new.exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
AdditionalLibraryDirectories="..\lib_release\"
|
||||
ProgramDatabaseFile=".\Release/mysql_test_run_new.pdb"
|
||||
SubSystem="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
SuppressStartupBanner="TRUE"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Release/mysql_test_run_new.tlb"
|
||||
HeaderFileName=""/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
Culture="1033"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<File
|
||||
RelativePath="my_create_tables.c">
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
BasicRuntimeChecks="3"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="my_manage.c">
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
BasicRuntimeChecks="3"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="my_manage.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="mysql_test_run_new.c">
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
BasicRuntimeChecks="3"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
@ -1,142 +0,0 @@
|
||||
# Microsoft Developer Studio Project File - Name="mysql_test_run_new" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=mysql_test_run_new - WinIA64 Release
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "mysql_test_run_new_ia64.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "mysql_test_run_new_ia64.mak" CFG="mysql_test_run_new - WinIA64 Release"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "mysql_test_run_new - WinIA64 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "mysql_test_run_new - WinIA64 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "mysql_test_run_new - WinIA64 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir ".\Debug"
|
||||
# PROP BASE Intermediate_Dir ".\Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir ".\Debug"
|
||||
# PROP Intermediate_Dir ".\Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
MTL=midl.exe
|
||||
# ADD BASE MTL /nologo /tlb".\Debug\mysql_test_run_new.tlb" /WinIA64
|
||||
# ADD MTL /nologo /tlb".\Debug\mysql_test_run_new.tlb" /WinIA64
|
||||
# ADD BASE CPP /nologo /G6 /MTd /W3 /GX /Z7 /Od /I "../include" /I "../" /D "_DEBUG" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN64" /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Zi /Od /I "../include" /I "../" /D "_DEBUG" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN64" /D "_IA64_" /D "WIN64" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /GZ /G2 /EHsc /Wp64 /Zm600 /c
|
||||
# ADD BASE RSC /l 0x409
|
||||
# ADD RSC /l 0x409
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /map /debug /out:"..\mysql-test\mysql_test_run_new.exe" /machine:IA64
|
||||
# SUBTRACT BASE LINK32 /pdb:none
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib bufferoverflowU.lib zlib.lib /nologo /subsystem:console /incremental:no /libpath:"..\lib_debug\" /map /debug /out:"..\mysql-test\mysql_test_run_new.exe" /machine:IA64
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
|
||||
!ELSEIF "$(CFG)" == "mysql_test_run_new - WinIA64 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir ".\Release"
|
||||
# PROP BASE Intermediate_Dir ".\Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir ".\Release"
|
||||
# PROP Intermediate_Dir ".\Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
MTL=midl.exe
|
||||
# ADD BASE MTL /nologo /tlb".\Release\mysql_test_run_new.tlb" /WinIA64
|
||||
# ADD MTL /nologo /tlb".\Release\mysql_test_run_new.tlb" /WinIA64
|
||||
# ADD BASE CPP /nologo /G6 /MTd /W3 /GX /Ob1 /Gy /I "../include" /I "../" /D "DBUG_OFF" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN64" /GF /c
|
||||
# ADD CPP /nologo /MTd /W3 /Zi /O2 /I "../include" /I "../" /D "DBUG_OFF" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN64" /D "_IA64_" /D "WIN64" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /GF /G2 /EHsc /Wp64 /Zm600 /c
|
||||
# ADD BASE RSC /l 0x409
|
||||
# ADD RSC /l 0x409
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /out:"..\mysql-test\mysql_test_run_new.exe" /machine:IA64
|
||||
# SUBTRACT BASE LINK32 /pdb:none
|
||||
# ADD LINK32 t kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib bufferoverflowU.lib zlib.lib /nologo /subsystem:console /libpath:"..\lib_release\" /out:"..\mysql-test\mysql_test_run_new.exe" /machine:IA64
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "mysql_test_run_new - WinIA64 Debug"
|
||||
# Name "mysql_test_run_new - WinIA64 Release"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\my_create_tables.c
|
||||
DEP_CPP_MY_CR=\
|
||||
"..\include\config-netware.h"\
|
||||
"..\include\config-os2.h"\
|
||||
"..\include\config-win.h"\
|
||||
"..\include\m_string.h"\
|
||||
"..\include\my_config.h"\
|
||||
"..\include\my_dbug.h"\
|
||||
"..\include\my_global.h"\
|
||||
".\my_manage.h"\
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\my_manage.c
|
||||
DEP_CPP_MY_MA=\
|
||||
"..\include\config-netware.h"\
|
||||
"..\include\config-os2.h"\
|
||||
"..\include\config-win.h"\
|
||||
"..\include\m_string.h"\
|
||||
"..\include\my_config.h"\
|
||||
"..\include\my_dbug.h"\
|
||||
"..\include\my_global.h"\
|
||||
".\my_manage.h"\
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\my_manage.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\mysql_test_run_new.c
|
||||
DEP_CPP_MYSQL=\
|
||||
"..\include\config-netware.h"\
|
||||
"..\include\config-os2.h"\
|
||||
"..\include\config-win.h"\
|
||||
"..\include\m_string.h"\
|
||||
"..\include\my_config.h"\
|
||||
"..\include\my_dbug.h"\
|
||||
"..\include\my_global.h"\
|
||||
".\my_manage.h"\
|
||||
|
||||
# End Source File
|
||||
# End Target
|
||||
# End Project
|
@ -339,6 +339,27 @@ Package=<4>
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "mysql_upgrade"=".\client\mysql_upgrade.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name mysqlclient
|
||||
End Project Dependency
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name zlib
|
||||
End Project Dependency
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name mysys
|
||||
End Project Dependency
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "mysqlbinlog"=".\mysqlbinlog\mysqlbinlog.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
@ -415,6 +436,8 @@ Package=<4>
|
||||
End Project Dependency
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name mysqladmin
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name myqsl_upgrade
|
||||
End Project Dependency
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name mysqldump
|
||||
@ -787,27 +810,6 @@ Project: "mysql_client_test"=.\tests\mysql_client_test.dsp - Package Owner=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
|
||||
Project: "mysql_test_run_new"=".\mysql-test\mysql_test_run_new.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
Begin Project Dependency
|
||||
Project_Dep_Name mysqltest
|
||||
End Project Dependency
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name mysqladmin
|
||||
End Project Dependency
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name mysql_client_test
|
||||
End Project Dependency
|
||||
}}}
|
||||
|
||||
|
||||
###############################################################################
|
||||
|
||||
|
@ -251,13 +251,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mysql_client_test", "tests\
|
||||
{26383276-4843-494B-8BE0-8936ED3EBAAB} = {26383276-4843-494B-8BE0-8936ED3EBAAB}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mysql_test_run_new", "mysql-test\mysql_test_run_new.vcproj", "{6189F838-21C6-42A1-B2D0-9146316573F7}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{8961F149-C68A-4154-A499-A2AB39E607E8} = {8961F149-C68A-4154-A499-A2AB39E607E8}
|
||||
{DA224DAB-5006-42BE-BB77-16E8BE5326D5} = {DA224DAB-5006-42BE-BB77-16E8BE5326D5}
|
||||
{D2B00DE0-F6E9-40AF-B90D-A257D014F098} = {D2B00DE0-F6E9-40AF-B90D-A257D014F098}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mysqlmanager", "server-tools\instance-manager\mysqlmanager.vcproj", "{6D524B3E-210A-4FCD-8D41-FEC0D21E83AC}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{EEC1300B-85A5-497C-B3E1-F708021DF859} = {EEC1300B-85A5-497C-B3E1-F708021DF859}
|
||||
|
@ -436,6 +436,24 @@ Package=<4>
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "mysql_upgrade"=".\client\mysql_upgrade_ia64.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name mysqlclient
|
||||
End Project Dependency
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name zlib
|
||||
End Project Dependency
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "mysqlbinlog"=".\mysqlbinlog\mysqlbinlog_ia64.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
@ -500,6 +518,8 @@ Package=<4>
|
||||
End Project Dependency
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name mysqladmin_ia64
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name mysql_upgrade_ia64
|
||||
End Project Dependency
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name mysqldump
|
||||
|
@ -23,7 +23,7 @@
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
OptimizeForProcessor="2"
|
||||
AdditionalIncludeDirectories="../include,../regex,../zlib,../extra/yassl/include"
|
||||
AdditionalIncludeDirectories="../include,../regex,../zlib,../extra/yassl/include,."
|
||||
PreprocessorDefinitions="__NT__;DBUG_OFF;NDEBUG;MYSQL_SERVER;_WINDOWS;_CONSOLE;HAVE_DLOPEN;LICENSE=Commercial;HAVE_ROW_BASED_REPLICATION"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="0"
|
||||
@ -84,7 +84,7 @@
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
OptimizeForProcessor="2"
|
||||
AdditionalIncludeDirectories="../storage/bdb/build_win32,../include,../regex,../extra/yassl/include,../zlib"
|
||||
AdditionalIncludeDirectories="../storage/bdb/build_win32,../include,../regex,../extra/yassl/include,../zlib,."
|
||||
PreprocessorDefinitions="NDEBUG;DBUG_OFF;HAVE_INNOBASE_DB;HAVE_BERKELEY_DB;HAVE_ARCHIVE_DB;HAVE_BLACKHOLE_DB;HAVE_EXAMPLE_DB;HAVE_FEDERATED_DB;MYSQL_SERVER;_WINDOWS;_CONSOLE;HAVE_DLOPEN;WITH_INNOBASE_STORAGE_ENGINE;WITH_BERKELEY_STORAGE_ENGINE;WITH_ARCHIVE_STORAGE_ENGINE;WITH_BLACKHOLE_STORAGE_ENGINE;WITH_EXAMPLE_STORAGE_ENGINE;WITH_FEDERATED_STORAGE_ENGINE;WITH_PARTITION_STORAGE_ENGINE;HAVE_ROW_BASED_REPLICATION"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="0"
|
||||
@ -144,7 +144,7 @@
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
OptimizeForProcessor="2"
|
||||
AdditionalIncludeDirectories="../storage/bdb/build_win32,../include,../regex,../extra/yassl/include,../zlib"
|
||||
AdditionalIncludeDirectories="../storage/bdb/build_win32,../include,../regex,../extra/yassl/include,../zlib,."
|
||||
PreprocessorDefinitions="__NT__;NDEBUG;DBUG_OFF;HAVE_INNOBASE_DB;HAVE_BERKELEY_DB;HAVE_ARCHIVE_DB;HAVE_BLACKHOLE_DB;HAVE_EXAMPLE_DB;HAVE_FEDERATED_DB;MYSQL_SERVER;_WINDOWS;_CONSOLE;HAVE_DLOPEN;WITH_INNOBASE_STORAGE_ENGINE;WITH_BERKELEY_STORAGE_ENGINE;WITH_ARCHIVE_STORAGE_ENGINE;WITH_BLACKHOLE_STORAGE_ENGINE;WITH_EXAMPLE_STORAGE_ENGINE;WITH_FEDERATED_STORAGE_ENGINE;WITH_PARTITION_STORAGE_ENGINE;HAVE_ROW_BASED_REPLICATION"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="0"
|
||||
@ -207,7 +207,7 @@
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
OptimizeForProcessor="2"
|
||||
AdditionalIncludeDirectories="../include,../regex,../zlib,../extra/yassl/include"
|
||||
AdditionalIncludeDirectories="../include,../regex,../zlib,../extra/yassl/include,."
|
||||
PreprocessorDefinitions="__NT__;NDEBUG;DBUG_OFF;HAVE_INNOBASE_DB;HAVE_ARCHIVE_DB;HAVE_BLACKHOLE_DB;HAVE_EXAMPLE_DB;HAVE_FEDERATED_DB;MYSQL_SERVER;_WINDOWS;_CONSOLE;HAVE_DLOPEN;WITH_INNOBASE_STORAGE_ENGINE;WITH_ARCHIVE_STORAGE_ENGINE;WITH_BLACKHOLE_STORAGE_ENGINE;WITH_EXAMPLE_STORAGE_ENGINE;WITH_FEDERATED_STORAGE_ENGINE;WITH_PARTITION_STORAGE_ENGINE;HAVE_ROW_BASED_REPLICATION"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="0"
|
||||
@ -270,7 +270,7 @@
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
OptimizeForProcessor="2"
|
||||
AdditionalIncludeDirectories="../include,../regex,../zlib,../extra/yassl/include"
|
||||
AdditionalIncludeDirectories="../include,../regex,../zlib,../extra/yassl/include,."
|
||||
PreprocessorDefinitions="__NT__;DBUG_OFF;NDEBUG;HAVE_INNOBASE_DB;HAVE_ARCHIVE_DB;MYSQL_SERVER;LICENSE=Commercial;_WINDOWS;_CONSOLE;HAVE_DLOPEN;WITH_INNOBASE_STORAGE_ENGINE;HAVE_ROW_BASED_REPLICATION"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="0"
|
||||
@ -330,7 +330,7 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
OptimizeForProcessor="2"
|
||||
AdditionalIncludeDirectories="../storage/bdb/build_win32,../include,../regex,../extra/yassl/include,../zlib"
|
||||
AdditionalIncludeDirectories="../storage/bdb/build_win32,../include,../regex,../extra/yassl/include,../zlib,."
|
||||
PreprocessorDefinitions="_DEBUG;SAFEMALLOC;SAFE_MUTEX;HAVE_INNOBASE_DB;HAVE_ARCHIVE_DB;HAVE_BLACKHOLE_DB;HAVE_EXAMPLE_DB;HAVE_FEDERATED_DB;MYSQL_SERVER;_WINDOWS;_CONSOLE;HAVE_DLOPEN;WITH_INNOBASE_STORAGE_ENGINE;WITH_ARCHIVE_STORAGE_ENGINE;WITH_BLACKHOLE_STORAGE_ENGINE;WITH_EXAMPLE_STORAGE_ENGINE;WITH_FEDERATED_STORAGE_ENGINE;WITH_PARTITION_STORAGE_ENGINE;HAVE_ROW_BASED_REPLICATION"
|
||||
RuntimeLibrary="1"
|
||||
PrecompiledHeaderFile=".\debug/mysqld.pch"
|
||||
@ -391,7 +391,7 @@
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
OptimizeForProcessor="2"
|
||||
AdditionalIncludeDirectories="../include,../regex,../zlib,../extra/yassl/include"
|
||||
AdditionalIncludeDirectories="../include,../regex,../zlib,../extra/yassl/include,."
|
||||
PreprocessorDefinitions="MYSQL_SERVER;LICENSE=Commercial;HAVE_DLOPEN;HAVE_INNOBASE_DB;HAVE_ARCHIVE_DB;DBUG_OFF;NDEBUG;_WINDOWS;_CONSOLE;WITH_INNOBASE_STORAGE_ENGINE;WITH_ARCHIVE_STORAGE_ENGINE;HAVE_ROW_BASED_REPLICATION"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="0"
|
||||
@ -452,7 +452,7 @@
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
OptimizeForProcessor="2"
|
||||
AdditionalIncludeDirectories="../include,../regex,../zlib,../extra/yassl/include"
|
||||
AdditionalIncludeDirectories="../include,../regex,../zlib,../extra/yassl/include,."
|
||||
PreprocessorDefinitions="LICENSE=Commercial;MYSQL_SERVER;_WINDOWS;_CONSOLE;HAVE_DLOPEN;DBUG_OFF;NDEBUG;HAVE_ROW_BASED_REPLICATION"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="0"
|
||||
@ -513,7 +513,7 @@
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
OptimizeForProcessor="2"
|
||||
AdditionalIncludeDirectories="../zlib,../include,../regex,../extra/yassl/include"
|
||||
AdditionalIncludeDirectories="../zlib,../include,../regex,../extra/yassl/include,."
|
||||
PreprocessorDefinitions="NDEBUG;DBUG_OFF;HAVE_INNOBASE_DB;HAVE_ARCHIVE_DB;HAVE_BLACKHOLE_DB;HAVE_EXAMPLE_DB;HAVE_FEDERATED_DB;MYSQL_SERVER;_WINDOWS;_CONSOLE;HAVE_DLOPEN;WITH_INNOBASE_STORAGE_ENGINE;WITH_ARCHIVE_STORAGE_ENGINE;WITH_BLACKHOLE_STORAGE_ENGINE;WITH_EXAMPLE_STORAGE_ENGINE;WITH_FEDERATED_STORAGE_ENGINE;WITH_PARTITION_STORAGE_ENGINE;HAVE_ROW_BASED_REPLICATION"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="0"
|
||||
|
@ -38,8 +38,7 @@ LDADD= @CLIENT_EXTRA_LDFLAGS@ $(CLIENT_THREAD_LIBS) \
|
||||
$(top_builddir)/libmysql/libmysqlclient.la
|
||||
bin_PROGRAMS = mysql mysqladmin mysqlcheck mysqlshow \
|
||||
mysqldump mysqlimport mysqltest mysqlbinlog \
|
||||
mysqltestmanagerc mysqltestmanager-pwgen \
|
||||
mysqlslap
|
||||
mysqlslap mysql_upgrade
|
||||
noinst_HEADERS = sql_string.h completion_hash.h my_readline.h \
|
||||
client_priv.h
|
||||
mysql_SOURCES = mysql.cc readline.cc sql_string.cc completion_hash.cc
|
||||
@ -63,8 +62,6 @@ mysqlimport_LDADD = $(CXXLDFLAGS) $(CLIENT_THREAD_LIBS) \
|
||||
@CLIENT_EXTRA_LDFLAGS@ \
|
||||
$(LIBMYSQLCLIENT_LA) \
|
||||
$(top_builddir)/mysys/libmysys.a
|
||||
mysqltestmanager_pwgen_SOURCES = mysqlmanager-pwgen.c
|
||||
mysqltestmanagerc_SOURCES= mysqlmanagerc.c $(yassl_dummy_link_fix)
|
||||
mysqlcheck_SOURCES= mysqlcheck.c $(yassl_dummy_link_fix)
|
||||
mysqlshow_SOURCES= mysqlshow.c $(yassl_dummy_link_fix)
|
||||
mysqlslap_SOURCES= mysqlslap.c \
|
||||
@ -72,11 +69,14 @@ mysqlslap_SOURCES= mysqlslap.c \
|
||||
mysqldump_SOURCES= mysqldump.c my_user.c $(yassl_dummy_link_fix)
|
||||
mysqlimport_SOURCES= mysqlimport.c \
|
||||
$(yassl_dummy_link_fix)
|
||||
mysql_upgrade_SOURCES= mysql_upgrade.c $(yassl_dummy_link_fix)
|
||||
sql_src=log_event.h mysql_priv.h log_event.cc my_decimal.h my_decimal.cc
|
||||
strings_src=decimal.c
|
||||
|
||||
# Fix for mit-threads
|
||||
DEFS = -DUNDEF_THREADS_HACK
|
||||
DEFS = -DUNDEF_THREADS_HACK \
|
||||
-DDEFAULT_MYSQL_HOME="\"$(prefix)\"" \
|
||||
-DDATADIR="\"$(localstatedir)\""
|
||||
EXTRA_DIST = get_password.c cmakelists.txt
|
||||
|
||||
link_sources:
|
||||
|
@ -24,8 +24,6 @@
|
||||
#include <errmsg.h>
|
||||
#include <my_getopt.h>
|
||||
|
||||
/* We have to define 'enum options' identical in all files to keep OS2 happy */
|
||||
|
||||
enum options_client
|
||||
{
|
||||
OPT_CHARSETS_DIR=256, OPT_DEFAULT_CHARSET,
|
||||
|
145
client/mysql.cc
@ -81,7 +81,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#undef bcmp // Fix problem with new readline
|
||||
#if defined( __WIN__) || defined(OS2)
|
||||
#if defined( __WIN__)
|
||||
#include <conio.h>
|
||||
#elif !defined(__NETWARE__)
|
||||
#include <readline/readline.h>
|
||||
@ -101,7 +101,7 @@ extern "C" {
|
||||
#define cmp_database(cs,A,B) strcmp((A),(B))
|
||||
#endif
|
||||
|
||||
#if !defined( __WIN__) && !defined( OS2) && !defined(__NETWARE__) && (!defined(HAVE_mit_thread) || !defined(THREAD))
|
||||
#if !defined( __WIN__) && !defined(__NETWARE__) && !defined(THREAD)
|
||||
#define USE_POPEN
|
||||
#endif
|
||||
|
||||
@ -185,7 +185,7 @@ void tee_fprintf(FILE *file, const char *fmt, ...);
|
||||
void tee_fputs(const char *s, FILE *file);
|
||||
void tee_puts(const char *s, FILE *file);
|
||||
void tee_putc(int c, FILE *file);
|
||||
static void tee_print_sized_data(const char *data, unsigned int length, unsigned int width);
|
||||
static void tee_print_sized_data(const char *, unsigned int, unsigned int, bool);
|
||||
/* The names of functions that actually do the manipulation. */
|
||||
static int get_options(int argc,char **argv);
|
||||
static int com_quit(String *str,char*),
|
||||
@ -653,7 +653,7 @@ static struct my_option my_long_options[] =
|
||||
"Base name of shared memory.", (gptr*) &shared_memory_base_name, (gptr*) &shared_memory_base_name,
|
||||
0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
#endif
|
||||
{"socket", 'S', "Socket file to use for connection. (This will override --port unless --protocol=TCP is specified.)",
|
||||
{"socket", 'S', "Socket file to use for connection.",
|
||||
(gptr*) &opt_mysql_unix_port, (gptr*) &opt_mysql_unix_port, 0, GET_STR_ALLOC,
|
||||
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
#include "sslopt-longopts.h"
|
||||
@ -939,14 +939,7 @@ static int get_options(int argc, char **argv)
|
||||
opt_reconnect= 0;
|
||||
connect_flag= 0; /* Not in interactive mode */
|
||||
}
|
||||
|
||||
if (opt_mysql_port && (!opt_protocol) && (!opt_mysql_unix_port))
|
||||
{
|
||||
/* Not checking return type since we are using a constant value */
|
||||
/* straight from the initialization of sql_protocol_typelib. */
|
||||
opt_protocol= find_type("TCP", &sql_protocol_typelib, 0);
|
||||
}
|
||||
|
||||
|
||||
if (strcmp(default_charset, charset_info->csname) &&
|
||||
!(charset_info= get_charset_by_csname(default_charset,
|
||||
MY_CS_PRIMARY, MYF(MY_WME))))
|
||||
@ -969,7 +962,7 @@ static int get_options(int argc, char **argv)
|
||||
|
||||
static int read_and_execute(bool interactive)
|
||||
{
|
||||
#if defined(OS2) || defined(__NETWARE__)
|
||||
#if defined(__NETWARE__)
|
||||
char linebuffer[254];
|
||||
String buffer;
|
||||
#endif
|
||||
@ -1006,7 +999,7 @@ static int read_and_execute(bool interactive)
|
||||
if (opt_outfile && glob_buffer.is_empty())
|
||||
fflush(OUTFILE);
|
||||
|
||||
#if defined( __WIN__) || defined(OS2) || defined(__NETWARE__)
|
||||
#if defined( __WIN__) || defined(__NETWARE__)
|
||||
tee_fputs(prompt, stdout);
|
||||
#if defined(__NETWARE__)
|
||||
line=fgets(linebuffer, sizeof(linebuffer)-1, stdin);
|
||||
@ -1017,7 +1010,7 @@ static int read_and_execute(bool interactive)
|
||||
if (p != NULL)
|
||||
*p = '\0';
|
||||
}
|
||||
#elif defined(__WIN__)
|
||||
#else defined(__WIN__)
|
||||
if (!tmpbuf.is_alloced())
|
||||
tmpbuf.alloc(65535);
|
||||
tmpbuf.length(0);
|
||||
@ -1033,32 +1026,12 @@ static int read_and_execute(bool interactive)
|
||||
*/
|
||||
} while (tmpbuf.alloced_length() <= clen);
|
||||
line= buffer.c_ptr();
|
||||
#else /* OS2 */
|
||||
buffer.length(0);
|
||||
/* _cgets() expects the buffer size - 3 as the first byte */
|
||||
linebuffer[0]= (char) sizeof(linebuffer) - 3;
|
||||
do
|
||||
{
|
||||
line= _cgets(linebuffer);
|
||||
buffer.append(line, (unsigned char)linebuffer[1]);
|
||||
/*
|
||||
If _cgets() gets an input line that is linebuffer[0] bytes
|
||||
long, the next call to _cgets() will return immediately with
|
||||
linebuffer[1] == 0, and it does the same thing for input that
|
||||
is linebuffer[0]-1 bytes long. So it appears that even though
|
||||
_cgets() replaces the newline (which is two bytes on Window) with
|
||||
a nil, it still needs the space in the linebuffer for it. This is,
|
||||
naturally, undocumented.
|
||||
*/
|
||||
} while ((unsigned char)linebuffer[0] <=
|
||||
(unsigned char)linebuffer[1] + 1);
|
||||
line= buffer.c_ptr();
|
||||
#endif /* __NETWARE__ */
|
||||
#else
|
||||
if (opt_outfile)
|
||||
fputs(prompt, OUTFILE);
|
||||
line= readline(prompt);
|
||||
#endif /* defined( __WIN__) || defined(OS2) || defined(__NETWARE__) */
|
||||
#endif /* defined( __WIN__) || defined(__NETWARE__) */
|
||||
|
||||
/*
|
||||
When Ctrl+d or Ctrl+z is pressed, the line may be NULL on some OS
|
||||
@ -1110,7 +1083,7 @@ static int read_and_execute(bool interactive)
|
||||
}
|
||||
}
|
||||
|
||||
#if defined( __WIN__) || defined(OS2) || defined(__NETWARE__)
|
||||
#if defined( __WIN__) || defined(__NETWARE__)
|
||||
buffer.free();
|
||||
#endif
|
||||
#if defined( __WIN__)
|
||||
@ -2311,35 +2284,52 @@ print_table_data(MYSQL_RES *result)
|
||||
while ((cur= mysql_fetch_row(result)))
|
||||
{
|
||||
ulong *lengths= mysql_fetch_lengths(result);
|
||||
(void) tee_fputs("|", PAGER);
|
||||
(void) tee_fputs("| ", PAGER);
|
||||
mysql_field_seek(result, 0);
|
||||
for (uint off= 0; off < mysql_num_fields(result); off++)
|
||||
{
|
||||
const char *str= cur[off] ? cur[off] : "NULL";
|
||||
uint currlength;
|
||||
uint maxlength;
|
||||
uint numcells;
|
||||
const char *buffer;
|
||||
uint data_length;
|
||||
uint field_max_length;
|
||||
bool right_justified;
|
||||
uint visible_length;
|
||||
uint extra_padding;
|
||||
|
||||
if (lengths[off] == 0)
|
||||
{
|
||||
buffer= "NULL";
|
||||
data_length= 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
buffer= cur[off];
|
||||
data_length= (uint) lengths[off];
|
||||
}
|
||||
|
||||
field= mysql_fetch_field(result);
|
||||
maxlength= field->max_length;
|
||||
currlength= (uint) lengths[off];
|
||||
numcells= charset_info->cset->numcells(charset_info,
|
||||
str, str + currlength);
|
||||
if (maxlength > MAX_COLUMN_LENGTH)
|
||||
{
|
||||
tee_print_sized_data(str, currlength, maxlength);
|
||||
tee_fputs(" |", PAGER);
|
||||
}
|
||||
field_max_length= field->max_length;
|
||||
|
||||
/*
|
||||
How many text cells on the screen will this string span? If it contains
|
||||
multibyte characters, then the number of characters we occupy on screen
|
||||
will be fewer than the number of bytes we occupy in memory.
|
||||
|
||||
We need to find how much screen real-estate we will occupy to know how
|
||||
many extra padding-characters we should send with the printing function.
|
||||
*/
|
||||
visible_length= charset_info->cset->numcells(charset_info, buffer, buffer + data_length);
|
||||
extra_padding= data_length - visible_length;
|
||||
|
||||
if (field_max_length > MAX_COLUMN_LENGTH)
|
||||
tee_print_sized_data(buffer, data_length, MAX_COLUMN_LENGTH+extra_padding, FALSE);
|
||||
else
|
||||
{
|
||||
if (num_flag[off] != 0)
|
||||
tee_fprintf(PAGER, " %-*s|", maxlength + currlength - numcells, str);
|
||||
if (num_flag[off] != 0) /* if it is numeric, we right-justify it */
|
||||
tee_print_sized_data(buffer, data_length, field_max_length+extra_padding, TRUE);
|
||||
else
|
||||
{
|
||||
tee_print_sized_data(str, currlength, maxlength);
|
||||
tee_fputs(" |", PAGER);
|
||||
}
|
||||
tee_print_sized_data(buffer, data_length, field_max_length+extra_padding, FALSE);
|
||||
}
|
||||
tee_fputs(" | ", PAGER);
|
||||
}
|
||||
(void) tee_fputs("\n", PAGER);
|
||||
}
|
||||
@ -2349,10 +2339,9 @@ print_table_data(MYSQL_RES *result)
|
||||
|
||||
|
||||
static void
|
||||
tee_print_sized_data(const char *data, unsigned int length, unsigned int width)
|
||||
tee_print_sized_data(const char *data, unsigned int data_length, unsigned int total_bytes_to_send, bool right_justified)
|
||||
{
|
||||
/*
|
||||
It is not a number, so print each character justified to the left.
|
||||
For '\0's print ASCII spaces instead, as '\0' is eaten by (at
|
||||
least my) console driver, and that messes up the pretty table
|
||||
grid. (The \0 is also the reason we can't use fprintf() .)
|
||||
@ -2360,9 +2349,14 @@ tee_print_sized_data(const char *data, unsigned int length, unsigned int width)
|
||||
unsigned int i;
|
||||
const char *p;
|
||||
|
||||
tee_putc(' ', PAGER);
|
||||
total_bytes_to_send -= 1;
|
||||
/* Off by one, perhaps mistakenly accounting for a terminating NUL. */
|
||||
|
||||
for (i= 0, p= data; i < length; i+= 1, p+= 1)
|
||||
if (right_justified)
|
||||
for (i= 0; i < (total_bytes_to_send - data_length); i++)
|
||||
tee_putc((int)' ', PAGER);
|
||||
|
||||
for (i= 0, p= data; i < data_length; i+= 1, p+= 1)
|
||||
{
|
||||
if (*p == '\0')
|
||||
tee_putc((int)' ', PAGER);
|
||||
@ -2370,9 +2364,9 @@ tee_print_sized_data(const char *data, unsigned int length, unsigned int width)
|
||||
tee_putc((int)*p, PAGER);
|
||||
}
|
||||
|
||||
i+= 1;
|
||||
for ( ; i < width; i+= 1)
|
||||
tee_putc((int)' ', PAGER);
|
||||
if (! right_justified)
|
||||
for (i= 0; i < (total_bytes_to_send - data_length); i++)
|
||||
tee_putc((int)' ', PAGER);
|
||||
}
|
||||
|
||||
|
||||
@ -3212,10 +3206,9 @@ com_status(String *buffer __attribute__((unused)),
|
||||
mysql_free_result(result);
|
||||
}
|
||||
#ifdef HAVE_OPENSSL
|
||||
if (mysql.net.vio && mysql.net.vio->ssl_arg &&
|
||||
SSL_get_cipher((SSL*) mysql.net.vio->ssl_arg))
|
||||
if ((status= mysql_get_ssl_cipher(&mysql)))
|
||||
tee_fprintf(stdout, "SSL:\t\t\tCipher in use is %s\n",
|
||||
SSL_get_cipher((SSL*) mysql.net.vio->ssl_arg));
|
||||
status);
|
||||
else
|
||||
#endif /* HAVE_OPENSSL */
|
||||
tee_puts("SSL:\t\t\tNot in use", stdout);
|
||||
@ -3361,7 +3354,7 @@ put_info(const char *str,INFO_TYPE info_type, uint error, const char *sqlstate)
|
||||
if (info_type == INFO_ERROR)
|
||||
{
|
||||
if (!opt_nobeep)
|
||||
putchar('\007'); /* This should make a bell */
|
||||
putchar('\a'); /* This should make a bell */
|
||||
vidattr(A_STANDOUT);
|
||||
if (error)
|
||||
{
|
||||
@ -3409,9 +3402,6 @@ void tee_fprintf(FILE *file, const char *fmt, ...)
|
||||
NETWARE_YIELD;
|
||||
va_start(args, fmt);
|
||||
(void) vfprintf(file, fmt, args);
|
||||
#ifdef OS2
|
||||
fflush( file);
|
||||
#endif
|
||||
va_end(args);
|
||||
|
||||
if (opt_outfile)
|
||||
@ -3427,9 +3417,6 @@ void tee_fputs(const char *s, FILE *file)
|
||||
{
|
||||
NETWARE_YIELD;
|
||||
fputs(s, file);
|
||||
#ifdef OS2
|
||||
fflush( file);
|
||||
#endif
|
||||
if (opt_outfile)
|
||||
fputs(s, OUTFILE);
|
||||
}
|
||||
@ -3440,9 +3427,6 @@ void tee_puts(const char *s, FILE *file)
|
||||
NETWARE_YIELD;
|
||||
fputs(s, file);
|
||||
fputs("\n", file);
|
||||
#ifdef OS2
|
||||
fflush( file);
|
||||
#endif
|
||||
if (opt_outfile)
|
||||
{
|
||||
fputs(s, OUTFILE);
|
||||
@ -3453,14 +3437,11 @@ void tee_puts(const char *s, FILE *file)
|
||||
void tee_putc(int c, FILE *file)
|
||||
{
|
||||
putc(c, file);
|
||||
#ifdef OS2
|
||||
fflush( file);
|
||||
#endif
|
||||
if (opt_outfile)
|
||||
putc(c, OUTFILE);
|
||||
}
|
||||
|
||||
#if defined( __WIN__) || defined( OS2) || defined(__NETWARE__)
|
||||
#if defined( __WIN__) || defined(__NETWARE__)
|
||||
#include <time.h>
|
||||
#else
|
||||
#include <sys/times.h>
|
||||
@ -3472,7 +3453,7 @@ void tee_putc(int c, FILE *file)
|
||||
|
||||
static ulong start_timer(void)
|
||||
{
|
||||
#if defined( __WIN__) || defined( OS2) || defined(__NETWARE__)
|
||||
#if defined( __WIN__) || defined(__NETWARE__)
|
||||
return clock();
|
||||
#else
|
||||
struct tms tms_tmp;
|
||||
|