Fixed problem with concurrent inserts and read-previous
Fix for BSDI 4.0
This commit is contained in:
parent
0ccc30f40c
commit
bfc0d5ca29
167
Docs/manual.texi
167
Docs/manual.texi
@ -156,6 +156,7 @@ version see the relevant distribution.
|
|||||||
General Information About MySQL
|
General Information About MySQL
|
||||||
|
|
||||||
* What-is:: What is @strong{MySQL}?
|
* What-is:: What is @strong{MySQL}?
|
||||||
|
* What is MySQL AB::
|
||||||
* Manual-info:: About this manual
|
* Manual-info:: About this manual
|
||||||
* History:: History of @strong{MySQL}
|
* History:: History of @strong{MySQL}
|
||||||
* MySQL-Books:: Books about MySQL
|
* MySQL-Books:: Books about MySQL
|
||||||
@ -574,7 +575,7 @@ Replication in MySQL
|
|||||||
* Replication Options:: Replication Options in my.cnf
|
* Replication Options:: Replication Options in my.cnf
|
||||||
* Replication SQL:: SQL Commands related to replication
|
* Replication SQL:: SQL Commands related to replication
|
||||||
* Replication FAQ:: Frequently Asked Questions about replication
|
* Replication FAQ:: Frequently Asked Questions about replication
|
||||||
* Troubleshooting Replication:: Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication.
|
* Troubleshooting Replication:: Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication.
|
||||||
|
|
||||||
Getting Maximum Performance from MySQL
|
Getting Maximum Performance from MySQL
|
||||||
|
|
||||||
@ -1046,6 +1047,7 @@ Debugging a MySQL server
|
|||||||
|
|
||||||
@menu
|
@menu
|
||||||
* What-is:: What is @strong{MySQL}?
|
* What-is:: What is @strong{MySQL}?
|
||||||
|
* What is MySQL AB::
|
||||||
* Manual-info:: About this manual
|
* Manual-info:: About this manual
|
||||||
* History:: History of @strong{MySQL}
|
* History:: History of @strong{MySQL}
|
||||||
* MySQL-Books:: Books about MySQL
|
* MySQL-Books:: Books about MySQL
|
||||||
@ -1142,9 +1144,14 @@ see @ref{General-SQL}. For books that focus more specifically on
|
|||||||
|
|
||||||
@cindex MySQL, defined
|
@cindex MySQL, defined
|
||||||
@cindex MySQL, introduction
|
@cindex MySQL, introduction
|
||||||
@node What-is, Manual-info, Introduction, Introduction
|
@node What-is, What is MySQL AB, Introduction, Introduction
|
||||||
@section What Is MySQL
|
@section What Is MySQL
|
||||||
|
|
||||||
|
@strong{MySQL}, the most popular Open Source SQL database, is provided
|
||||||
|
by @strong{MySQL AB}. @strong{MySQL AB} is a commercial company that
|
||||||
|
builds is business providing services around the @code{MySQL} database.
|
||||||
|
@xref{What is MySQL AB}.
|
||||||
|
|
||||||
@table @asis
|
@table @asis
|
||||||
|
|
||||||
@item @strong{MySQL} is a database management system.
|
@item @strong{MySQL} is a database management system.
|
||||||
@ -1207,6 +1214,10 @@ a client/server system that consists of a multi-threaded SQL server
|
|||||||
that supports different backends, several different client programs and
|
that supports different backends, several different client programs and
|
||||||
libraries, administrative tools, and a programming interface.
|
libraries, administrative tools, and a programming interface.
|
||||||
|
|
||||||
|
We also provide @strong{MySQL} as a multi-threaded library which you can
|
||||||
|
link into your application to get a smaller, faster, easier to manage
|
||||||
|
product.
|
||||||
|
|
||||||
@item @strong{MySQL} has a lot of contributed software available.
|
@item @strong{MySQL} has a lot of contributed software available.
|
||||||
|
|
||||||
It is very likely that you will find that your favorite
|
It is very likely that you will find that your favorite
|
||||||
@ -1220,9 +1231,75 @@ application/language already supports @strong{MySQL}.
|
|||||||
The official way to pronounce @strong{MySQL} is ``My Ess Que Ell'' (not
|
The official way to pronounce @strong{MySQL} is ``My Ess Que Ell'' (not
|
||||||
MY-SEQUEL). But we try to avoid correcting people who say MY-SEQUEL.
|
MY-SEQUEL). But we try to avoid correcting people who say MY-SEQUEL.
|
||||||
|
|
||||||
|
@cindex MySQL AB, defined
|
||||||
|
@node What is MySQL AB, Manual-info, What-is, Introduction
|
||||||
|
@section What Is MySQL AB
|
||||||
|
|
||||||
|
@strong{MySQL AB} is the Swedish company owned and run by the @strong{MySQL}
|
||||||
|
founders and main developers. We are dedicated to developing
|
||||||
|
@strong{MySQL} and spreading our database to new users. @strong{MySQL AB}
|
||||||
|
owns the copyright to the @strong{MySQL} server source code and the
|
||||||
|
@strong{MySQL} trademark. A significant amount of revenues from our
|
||||||
|
services goes to developing @strong{MySQL}. @xref{What-is}.
|
||||||
|
|
||||||
@strong{MySQL} core values
|
@strong{MySQL AB} has been profitable providing MySQL AB from the start.
|
||||||
|
We don't get any outside funding, but have earned all our money ourselves.
|
||||||
|
|
||||||
|
We are searching after partners that would like to support our
|
||||||
|
development of @strong{MySQL} so that we could accelerate the
|
||||||
|
development pace. If you are interested in doing this, you can email
|
||||||
|
@email{partner@@mysql.com} about this!
|
||||||
|
|
||||||
|
@strong{MYSQL AB} has currently 20+ people on it's payroll and is
|
||||||
|
growing rapidly. @uref{http://www.mysql.com/development/team.html}.
|
||||||
|
|
||||||
|
Our main streams of income are
|
||||||
|
|
||||||
|
@itemize @bullet
|
||||||
|
@item
|
||||||
|
Commercial high quality support for @strong{MySQL} provided by
|
||||||
|
@strong{MySQL} developers. If you are interested in getting support,
|
||||||
|
please visit @uref{https://order.mysql.com/} to view our support options
|
||||||
|
or to order support.
|
||||||
|
@item
|
||||||
|
Consulting services. We have developers/consults in 12 countries and
|
||||||
|
partners in many other countries that can help you with almost any
|
||||||
|
@strong{MySQL} related issues. If you need consulting services, please
|
||||||
|
email a good description of your needs to @email{info@@mysql.com}! If we
|
||||||
|
can't handle this ourselves we can usually find a partner or a developer
|
||||||
|
that can help you with your problems.
|
||||||
|
@item
|
||||||
|
We sell licenses for using @strong{MySQL} as an embedded
|
||||||
|
database. @xref{Cost}. If you have a commercial product for which you
|
||||||
|
need a fast high quality database but you can't afford to make your
|
||||||
|
product Open Source, you can buy the right to use the @strong{MySQL} server
|
||||||
|
under a normal commercial copyright. If you are interested in this you can
|
||||||
|
buy @strong{MySQL} licenses at @uref{https://order.mysql.com/} or contact
|
||||||
|
us at @email{licensing@@mysql.com}.
|
||||||
|
@item
|
||||||
|
Advertising; @uref{http://www.mysql.com} is a very popular web site with
|
||||||
|
more than 10,000,000 page views per months (January 2001). By putting a
|
||||||
|
banner on this you are guaranteed to reach a lot of potential customers
|
||||||
|
in the Open source, Linux and database community. If you are interested
|
||||||
|
in this email @email{advertising@@mysql.com}.
|
||||||
|
@item
|
||||||
|
We are building a partner program to be able to provide @strong{MySQL}
|
||||||
|
services in every country. If you are interested in becomming a partner
|
||||||
|
of @strong{MySQL AB} please visit
|
||||||
|
@uref{http://ww.mysql.com/information/partners.html} or email
|
||||||
|
@email{partner@@mysql.com}.
|
||||||
|
@item
|
||||||
|
We provide @strong{MySQL} training through our partner programs. For more
|
||||||
|
information, please email @email{info@@mysql.com}.
|
||||||
|
@item
|
||||||
|
The @strong{MySQL} brand has since 1995 been associated with speed,
|
||||||
|
reliability and is known to be something you can depend upon. If you are
|
||||||
|
interested in using the @strong{MySQL} trademark in your marketing, you
|
||||||
|
can email @email{info@@mysql.com} about this.
|
||||||
|
@end itemize
|
||||||
|
|
||||||
|
The @strong{MySQL} core values shows our dedication to @strong{MySQL} and
|
||||||
|
Open Source:
|
||||||
|
|
||||||
We want @strong{MySQL} to be:
|
We want @strong{MySQL} to be:
|
||||||
|
|
||||||
@ -1258,7 +1335,7 @@ Are a virtual company, networking with others
|
|||||||
Work against software patents
|
Work against software patents
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@node Manual-info, History, What-is, Introduction
|
@node Manual-info, History, What is MySQL AB, Introduction
|
||||||
@section About This Manual
|
@section About This Manual
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
@ -1269,7 +1346,7 @@ This manual is currently available in Texinfo, plain text, Info, HTML,
|
|||||||
PostScript, and PDF versions. The primary document is the Texinfo file.
|
PostScript, and PDF versions. The primary document is the Texinfo file.
|
||||||
The HTML version is produced automatically using a modified version of
|
The HTML version is produced automatically using a modified version of
|
||||||
@code{texi2html}. The plain text and Info versions are produced with
|
@code{texi2html}. The plain text and Info versions are produced with
|
||||||
@code{makeinfo}. The Postscript version is produced using @code{texi2dvi}
|
@code{makeinfo}. The Postscript version is produced using @code{texi2dvi}
|
||||||
and @code{dvips}. The PDF version is produced with @code{pdftex}.
|
and @code{dvips}. The PDF version is produced with @code{pdftex}.
|
||||||
|
|
||||||
@cindex manual, available formats
|
@cindex manual, available formats
|
||||||
@ -3639,15 +3716,23 @@ EURO (European Union Euro). One EURO is about 1.17 USD.
|
|||||||
|
|
||||||
@multitable @columnfractions .5 .5
|
@multitable @columnfractions .5 .5
|
||||||
@item @strong{Type of support} @tab @strong{Cost per year}
|
@item @strong{Type of support} @tab @strong{Cost per year}
|
||||||
@item Basic e-mail support @tab EURO 170
|
@item Basic e-mail support. @xref{Basic email support}. @tab EURO 170
|
||||||
@item Extended e-mail support @tab EURO 1000
|
@item Extended e-mail support @xref{Extended email support}. @tab EURO 1000
|
||||||
@item Login support @tab EURO 2000
|
@item Login support @xref{Login support}. @tab EURO 2000
|
||||||
@item Extended login support @tab EURO 5000
|
@item Extended login support @xref{Extended login support}. @tab EURO 5000
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
You may upgrade from any
|
You may upgrade from any lower level of support to a higher level of
|
||||||
lower level of support to a higher level of support for the difference
|
support for the difference in price between the two support levels.
|
||||||
in price between the two support levels.
|
|
||||||
|
We do also provide telephone support (mostly emergency support but also
|
||||||
|
24/7 support). This support option doesn't however have a fixed price
|
||||||
|
but is negotiated for case to case. If you are interested in this option
|
||||||
|
you can email @email{sales@@mysql.com} and tell us about your needs.
|
||||||
|
|
||||||
|
Note that as our sales staff is very busy, it may take some time until
|
||||||
|
your request is handled. Our support staff does however always answer
|
||||||
|
promptly to support questions!
|
||||||
|
|
||||||
@cindex payment information
|
@cindex payment information
|
||||||
@node Payment information, Contact information, Cost, Cost
|
@node Payment information, Contact information, Cost, Cost
|
||||||
@ -5883,7 +5968,6 @@ shell> ./configure --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
|
|||||||
Note that the given file must be an absolute pathname!
|
Note that the given file must be an absolute pathname!
|
||||||
@cindex socket location
|
@cindex socket location
|
||||||
|
|
||||||
|
|
||||||
@item
|
@item
|
||||||
If you want to compile statically linked programs (for example, to make a
|
If you want to compile statically linked programs (for example, to make a
|
||||||
binary distribution, to get more speed, or to work around problems with some
|
binary distribution, to get more speed, or to work around problems with some
|
||||||
@ -5914,6 +5998,43 @@ shell> CC=gcc CXX=gcc ./configure
|
|||||||
When you use @code{gcc} as your C++ compiler, it will not attempt to link in
|
When you use @code{gcc} as your C++ compiler, it will not attempt to link in
|
||||||
@code{libg++} or @code{libstdc++}.
|
@code{libg++} or @code{libstdc++}.
|
||||||
|
|
||||||
|
Here is some common environment variables to set depending on
|
||||||
|
the compiler you are using:
|
||||||
|
|
||||||
|
@tindex CXXFLAGS environment variable
|
||||||
|
@tindex Environment variable, CXXFLAGS
|
||||||
|
@multitable @columnfractions .20 .80
|
||||||
|
@item gcc 2.7.2.1 @tab
|
||||||
|
CC=gcc CXX=gcc CXXFLAGS="-O6 -felide-constructors"
|
||||||
|
@item egcs 1.0.3a @tab
|
||||||
|
CC=gcc CXX=gcc CXXFLAGS="-O6 -felide-constructors -fno-exceptions -fno-rtti"
|
||||||
|
@item gcc 2.95.2 @tab
|
||||||
|
CFLAGS="-O6 -mpentiumpro" CXX=gcc CXXFLAGS="-O6 -mpentiumpro -felide-constructors -fno-exceptions -fno-rtti"
|
||||||
|
@item pgcc 2.90.29 or newer @tab
|
||||||
|
CFLAGS="-O6 -mpentiumpro -mstack-align-double" CXX=gcc CXXFLAGS="-O6 -mpentiumpro -mstack-align-double -felide-constructors -fno-exceptions -fno-rtti"
|
||||||
|
@end multitable
|
||||||
|
|
||||||
|
In most cases you can get a resonable optimal @code{MySQL} binary
|
||||||
|
picking the options from the above and add the following options to the
|
||||||
|
configure line:
|
||||||
|
|
||||||
|
@example
|
||||||
|
--prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static
|
||||||
|
@end example
|
||||||
|
|
||||||
|
The full configure line would in other words be something like the
|
||||||
|
following for all recent gcc versions:
|
||||||
|
|
||||||
|
@example
|
||||||
|
CFLAGS="-O6 -mpentiumpro" CXX=gcc CXXFLAGS="-O6 -mpentiumpro -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static
|
||||||
|
@end example
|
||||||
|
|
||||||
|
The binaries we provide at on the MySQL home site
|
||||||
|
@uref{http://www.mysql.com}, are all compiled with full optimization and
|
||||||
|
should be ok for most users. @xref{MySQL binaries}. There is some
|
||||||
|
things one can tweak to make an even faster binary, but this is only for
|
||||||
|
advanced users. @xref{Compile and link options}.
|
||||||
|
|
||||||
If the build fails and produces errors about your compiler or linker not
|
If the build fails and produces errors about your compiler or linker not
|
||||||
being able to create the shared library @file{libmysqlclient.so.#} (@samp{#}
|
being able to create the shared library @file{libmysqlclient.so.#} (@samp{#}
|
||||||
is a version number), you can work around this problem by giving the
|
is a version number), you can work around this problem by giving the
|
||||||
@ -5936,7 +6057,6 @@ shell> CXXFLAGS=-DDONT_USE_DEFAULT_FIELDS ./configure
|
|||||||
@cindex default values, suppression
|
@cindex default values, suppression
|
||||||
@cindex suppression, default values
|
@cindex suppression, default values
|
||||||
|
|
||||||
|
|
||||||
@item
|
@item
|
||||||
By default, @strong{MySQL} uses the ISO-8859-1 (Latin1) character set. To
|
By default, @strong{MySQL} uses the ISO-8859-1 (Latin1) character set. To
|
||||||
change the default set, use the @code{--with-charset} option:
|
change the default set, use the @code{--with-charset} option:
|
||||||
@ -7747,6 +7867,19 @@ The symptom is that you can't execute any client programs, for example,
|
|||||||
@code{mysqladmin}. In this case you need to reconfigure not to use
|
@code{mysqladmin}. In this case you need to reconfigure not to use
|
||||||
shared libraries with the @code{--disable-shared} option to configure.
|
shared libraries with the @code{--disable-shared} option to configure.
|
||||||
|
|
||||||
|
Some customers have had problems on BSDI 4.0.1 that the @code{mysqld}
|
||||||
|
binary after a while can't open tables. This is because some
|
||||||
|
library/system related bug causes @code{mysqld} to change current
|
||||||
|
directory without asking for this!
|
||||||
|
|
||||||
|
The fix is to either upgrade to 3.23.34 or after running @code{configure}
|
||||||
|
remove the line @code{#define HAVE_REALPATH} from @code{config.h}
|
||||||
|
before running make.
|
||||||
|
|
||||||
|
Note that the above means that you can't symbolic link a database directories
|
||||||
|
to another database directory or symbolic link a table to another database
|
||||||
|
on BSDI! (Making a symbolic link to another disk is ok).
|
||||||
|
|
||||||
@node SCO, SCO Unixware, BSDI, Source install system issues
|
@node SCO, SCO Unixware, BSDI, Source install system issues
|
||||||
@subsection SCO Notes
|
@subsection SCO Notes
|
||||||
|
|
||||||
@ -8780,7 +8913,7 @@ following compilers and options:
|
|||||||
|
|
||||||
@table @asis
|
@table @asis
|
||||||
@item SunOS 4.1.4 2 sun4c with @code{gcc} 2.7.2.1
|
@item SunOS 4.1.4 2 sun4c with @code{gcc} 2.7.2.1
|
||||||
@code{CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql --disable-shared --with-extra-charsets=complex}
|
@code{CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors" ./configure --prefix=/usr/local/mysql --disable-shared --with-extra-charsets=complex --enable-assembler}
|
||||||
|
|
||||||
@item SunOS 5.5.1 sun4u with @code{egcs} 1.0.3a
|
@item SunOS 5.5.1 sun4u with @code{egcs} 1.0.3a
|
||||||
@code{CC=gcc CFLAGS="-O6 -fomit-frame-pointer" CXX=gcc CXXFLAGS="-O6 -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-low-memory --with-extra-charsets=complex}
|
@code{CC=gcc CFLAGS="-O6 -fomit-frame-pointer" CXX=gcc CXXFLAGS="-O6 -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-low-memory --with-extra-charsets=complex}
|
||||||
@ -26090,7 +26223,7 @@ tables}.
|
|||||||
* Replication Options:: Replication Options in my.cnf
|
* Replication Options:: Replication Options in my.cnf
|
||||||
* Replication SQL:: SQL Commands related to replication
|
* Replication SQL:: SQL Commands related to replication
|
||||||
* Replication FAQ:: Frequently Asked Questions about replication
|
* Replication FAQ:: Frequently Asked Questions about replication
|
||||||
* Troubleshooting Replication:: Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication.
|
* Troubleshooting Replication:: Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication.
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@node Replication Intro, Replication Implementation, Replication, Replication
|
@node Replication Intro, Replication Implementation, Replication, Replication
|
||||||
@ -40454,7 +40587,7 @@ New version of netadmin. See above for details.
|
|||||||
Home page for this can be found at: @uref{http://www.artronic.hr}.
|
Home page for this can be found at: @uref{http://www.artronic.hr}.
|
||||||
|
|
||||||
@item @uref{http://www.mysql.com/Downloads/Win32/mysqlfront.zip, mysqlfront}
|
@item @uref{http://www.mysql.com/Downloads/Win32/mysqlfront.zip, mysqlfront}
|
||||||
Home page: @uref{http://my.mysqlfront.de/}.
|
Home page: @uref{http://www.mysqlfront.de/}.
|
||||||
Win32-Client for accessing and managing dbs, tables, table-data, indexes,
|
Win32-Client for accessing and managing dbs, tables, table-data, indexes,
|
||||||
import-/export-files. (Freeware). By Ansgar Becker.
|
import-/export-files. (Freeware). By Ansgar Becker.
|
||||||
|
|
||||||
|
@ -746,7 +746,7 @@ case $SYSTEM_TYPE in
|
|||||||
;;
|
;;
|
||||||
*bsdi*)
|
*bsdi*)
|
||||||
echo "Adding fix for BSDI"
|
echo "Adding fix for BSDI"
|
||||||
CFLAGS="$CFLAGS -D__BSD__"
|
CFLAGS="$CFLAGS -D__BSD__ -DHAVE_BROKEN_REALPATH"
|
||||||
AC_DEFINE_UNQUOTED(SOCKOPT_OPTLEN_TYPE, size_t)
|
AC_DEFINE_UNQUOTED(SOCKOPT_OPTLEN_TYPE, size_t)
|
||||||
;;
|
;;
|
||||||
*sgi-irix6*)
|
*sgi-irix6*)
|
||||||
|
@ -54,7 +54,7 @@ int mi_rprev(MI_INFO *info, byte *buf, int inx)
|
|||||||
|
|
||||||
if (!error)
|
if (!error)
|
||||||
{
|
{
|
||||||
while (info->lastpos > info->state->data_file_length)
|
while (info->lastpos >= info->state->data_file_length)
|
||||||
{
|
{
|
||||||
/* Skip rows that are inserted by other threads since we got a lock */
|
/* Skip rows that are inserted by other threads since we got a lock */
|
||||||
if ((error=_mi_search_next(info,share->keyinfo+inx,info->lastkey,
|
if ((error=_mi_search_next(info,share->keyinfo+inx,info->lastkey,
|
||||||
|
@ -110,7 +110,7 @@ my_string fn_format(my_string to, const char *name, const char *dsk,
|
|||||||
(void) strmov(pos,ext); /* Don't convert extension */
|
(void) strmov(pos,ext); /* Don't convert extension */
|
||||||
}
|
}
|
||||||
/* Purify gives a lot of UMR errors when using realpath */
|
/* Purify gives a lot of UMR errors when using realpath */
|
||||||
#if defined(HAVE_REALPATH) && !defined(HAVE_purify)
|
#if defined(HAVE_REALPATH) && !defined(HAVE_purify) && !defined(HAVE_BROKEN_REALPATH)
|
||||||
if (flag & 16)
|
if (flag & 16)
|
||||||
{
|
{
|
||||||
struct stat stat_buff;
|
struct stat stat_buff;
|
||||||
|
@ -112,7 +112,7 @@ handler *get_new_handler(TABLE *table, enum db_type db_type)
|
|||||||
return new ha_berkeley(table);
|
return new ha_berkeley(table);
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_INNOBASE_DB
|
#ifdef HAVE_INNOBASE_DB
|
||||||
case DB_TYPE_INNOBASE_DB:
|
case DB_TYPE_INNOBASE:
|
||||||
return new ha_innobase(table);
|
return new ha_innobase(table);
|
||||||
#endif
|
#endif
|
||||||
case DB_TYPE_HEAP:
|
case DB_TYPE_HEAP:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user