提交 d41ba251 authored 作者: Thomas Mueller's avatar Thomas Mueller

Prepare release.

上级 5a1cbb40
...@@ -548,9 +548,9 @@ CREATE SCHEMA TEST_SCHEMA AUTHORIZATION SA ...@@ -548,9 +548,9 @@ CREATE SCHEMA TEST_SCHEMA AUTHORIZATION SA
CREATE SEQUENCE [ IF NOT EXISTS ] newSequenceName [ START WITH long ] CREATE SEQUENCE [ IF NOT EXISTS ] newSequenceName [ START WITH long ]
[ INCREMENT BY long ] [ CACHE long ] [ INCREMENT BY long ] [ CACHE long ]
"," ","
Creates a new sequence. Creates a new sequence.
The data type of a sequence is BIGINT. The data type of a sequence is BIGINT.
Used values are never re-used, even when the transaction is rolled back. Used values are never re-used, even when the transaction is rolled back.
The cache is the number of pre-allocated numbers. The cache is the number of pre-allocated numbers.
If the system crashes without closing the database, at most this many numbers are lost. If the system crashes without closing the database, at most this many numbers are lost.
...@@ -1085,8 +1085,8 @@ SET DATABASE_EVENT_LISTENER 'sample.MyListener' ...@@ -1085,8 +1085,8 @@ SET DATABASE_EVENT_LISTENER 'sample.MyListener'
"Commands (Other)","SET DB_CLOSE_DELAY"," "Commands (Other)","SET DB_CLOSE_DELAY","
SET DB_CLOSE_DELAY int SET DB_CLOSE_DELAY int
"," ","
Sets the delay for closing a database if all connections are closed. Sets the delay for closing a database if all connections are closed.
The value -1 means the database is never closed until the close delay is set to some other value or SHUTDOWN is called. The value -1 means the database is never closed until the close delay is set to some other value or SHUTDOWN is called.
The value 0 means no delay (default; the database is closed if the last connection to it is closed). The value 0 means no delay (default; the database is closed if the last connection to it is closed).
Values 1 and larger mean the number of seconds the database is left open after closing the last connection. Values 1 and larger mean the number of seconds the database is left open after closing the last connection.
...@@ -2174,7 +2174,7 @@ OTHER ...@@ -2174,7 +2174,7 @@ OTHER
{ VARCHAR | LONGVARCHAR | VARCHAR2 | NVARCHAR { VARCHAR | LONGVARCHAR | VARCHAR2 | NVARCHAR
| NVARCHAR2 | VARCHAR_CASESENSITIVE} [ ( precisionInt ) ] | NVARCHAR2 | VARCHAR_CASESENSITIVE} [ ( precisionInt ) ]
"," ","
A Unicode String. A Unicode String.
Use two single quotes ('') to create a quote. Use two single quotes ('') to create a quote.
The maximum precision is ""Integer.MAX_VALUE"". The maximum precision is ""Integer.MAX_VALUE"".
...@@ -2191,7 +2191,7 @@ VARCHAR(255) ...@@ -2191,7 +2191,7 @@ VARCHAR(255)
"Data Types","VARCHAR_IGNORECASE Type"," "Data Types","VARCHAR_IGNORECASE Type","
VARCHAR_IGNORECASE [ ( precisionInt ) ] VARCHAR_IGNORECASE [ ( precisionInt ) ]
"," ","
Same as VARCHAR, but not case sensitive when comparing. Same as VARCHAR, but not case sensitive when comparing.
Stored in mixed case. Stored in mixed case.
The maximum precision is ""Integer.MAX_VALUE"". The maximum precision is ""Integer.MAX_VALUE"".
...@@ -2208,14 +2208,14 @@ VARCHAR_IGNORECASE ...@@ -2208,14 +2208,14 @@ VARCHAR_IGNORECASE
"Data Types","CHAR Type"," "Data Types","CHAR Type","
{ CHAR | CHARACTER | NCHAR } [ ( precisionInt ) ] { CHAR | CHARACTER | NCHAR } [ ( precisionInt ) ]
"," ","
A Unicode String. A Unicode String.
This type is supported for compatibility with other databases and older applications. This type is supported for compatibility with other databases and older applications.
The difference to VARCHAR is that trailing spaces are ignored and not persisted. The difference to VARCHAR is that trailing spaces are ignored and not persisted.
The maximum precision is ""Integer.MAX_VALUE"". The maximum precision is ""Integer.MAX_VALUE"".
The precision is a size constraint; only the actual data is persisted. The precision is a size constraint; only the actual data is persisted.
The whole text is kept in memory when using this data type. The whole text is kept in memory when using this data type.
For large text data CLOB should be used; see there for details. For large text data CLOB should be used; see there for details.
Mapped to ""java.lang.String"". Mapped to ""java.lang.String"".
......
...@@ -454,8 +454,8 @@ unless they are quoted (surrounded with double quotes). The list is currently: ...@@ -454,8 +454,8 @@ unless they are quoted (surrounded with double quotes). The list is currently:
</p><p> </p><p>
<code> <code>
CROSS, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DISTINCT, EXCEPT, EXISTS, FALSE, CROSS, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DISTINCT, EXCEPT, EXISTS, FALSE,
FOR, FROM, FULL, GROUP, HAVING, INNER, INTERSECT, IS, JOIN, LIKE, LIMIT, MINUS, NATURAL, FOR, FROM, FULL, GROUP, HAVING, INNER, INTERSECT, IS, JOIN, LIKE, LIMIT, MINUS, NATURAL,
NOT, NULL, ON, ORDER, PRIMARY, ROWNUM, SELECT, SYSDATE, SYSTIME, SYSTIMESTAMP, TODAY, NOT, NULL, ON, ORDER, PRIMARY, ROWNUM, SELECT, SYSDATE, SYSTIME, SYSTIMESTAMP, TODAY,
TRUE, UNION, UNIQUE, WHERE TRUE, UNION, UNIQUE, WHERE
</code> </code>
</p><p> </p><p>
......
...@@ -247,7 +247,7 @@ Eclipse Public License, version 1.0 (http://h2database.com/html/license.html)." ...@@ -247,7 +247,7 @@ Eclipse Public License, version 1.0 (http://h2database.com/html/license.html)."
Please consider the following checklist if you have a question, want to report a problem, Please consider the following checklist if you have a question, want to report a problem,
or if you have a feature request: or if you have a feature request:
</p> </p>
<ul><li>For bug reports, please provide a <ul><li>For bug reports, please provide a
<a href="http://sscce.org/">short, self contained, correct (compilable), example</a> of the problem. <a href="http://sscce.org/">short, self contained, correct (compilable), example</a> of the problem.
</li><li>Feature requests are always welcome, even if the feature is already on the </li><li>Feature requests are always welcome, even if the feature is already on the
<a href="roadmap.html">roadmap</a>. Your mail will help prioritize feature requests. <a href="roadmap.html">roadmap</a>. Your mail will help prioritize feature requests.
......
...@@ -19,6 +19,10 @@ Change Log ...@@ -19,6 +19,10 @@ Change Log
<h1>Change Log</h1> <h1>Change Log</h1>
<h2>Next Version (unreleased)</h2> <h2>Next Version (unreleased)</h2>
<ul><li>-
</li></ul>
<h2>Version 1.3.161 (2011-10-28)</h2>
<ul><li>Issue 351: MySQL mode: can not create a table with the column "KEY", <ul><li>Issue 351: MySQL mode: can not create a table with the column "KEY",
and can not open databases where such a table already exists. and can not open databases where such a table already exists.
</li><li>TCP server: when using the trace option ("-trace"), the trace output contained </li><li>TCP server: when using the trace option ("-trace"), the trace output contained
...@@ -32,7 +36,7 @@ Change Log ...@@ -32,7 +36,7 @@ Change Log
2011-10-25 25:00:00 instead of 2011-10-26 01:00:00. 2011-10-25 25:00:00 instead of 2011-10-26 01:00:00.
Depending on the database operation, this caused subsequent error. Depending on the database operation, this caused subsequent error.
</li><li>Sequences with cache size smaller than 0 did not work correctly. </li><li>Sequences with cache size smaller than 0 did not work correctly.
</li><li>Issue 356: for Blob objects, InputStream.skip() returned 0, </li><li>Issue 356: for Blob objects, InputStream.skip() returned 0,
causing EOFException in Blob.getBytes(.., ..). causing EOFException in Blob.getBytes(.., ..).
</li><li>Updatable result sets: if the value is not set when inserting a new row, </li><li>Updatable result sets: if the value is not set when inserting a new row,
the default value is now used (the same behavior as MySQL, PostgreSQL, and Apache Derby) the default value is now used (the same behavior as MySQL, PostgreSQL, and Apache Derby)
...@@ -780,26 +784,5 @@ Change Log ...@@ -780,26 +784,5 @@ Change Log
of a LOB object to keep in memory on the client side when using the server mode. of a LOB object to keep in memory on the client side when using the server mode.
</li></ul> </li></ul>
<h2>Version 1.2.142 (2010-08-31)</h2>
<ul><li>Documentation for using H2 on Android devices has been added under Tutorial - Android.
</li><li>An ArrayIndexOutOfBoundsException was thrown when querying the table
information_schema.function_aliases while there are any user defined aggregate functions.
</li><li>The jar files are now about 50 KB smaller.
In the last few versions they contained superfluous classes.
</li><li>The default time to compact a database when closing (system property h2.maxCompactTime)
is now 0.2 seconds instead of 1 second.
</li><li>Opening an closing a database is now faster.
</li><li>In theory, when using indexes with large index rows (or when using a very small page size),
removing rows could throw an internal exception in some cases.
</li><li>Inserting rows in reverse order could throw an ArrayIndexOutOfBoundsException
in some cases (specially rows larger than the page size, which is 2 KB by default). Issue 226.
</li><li>H2 Console: with Chrome and Safari, resizing the table/query frame doesn't work. Issue 225.
</li><li>New experimental database file locking mechanism "FS" to use native file locking
(no *.lock.db file is created in this case, and no background thread is started). This mechanism
may not work on all systems (on some systems it's possible to lock the same file multiple
times within the same virtual machine, and on some system native file locking is not working
or unlocking is not working).
</li></ul>
<!-- [close] { --></div></td></tr></table><!-- } --><!-- analytics --></body></html> <!-- [close] { --></div></td></tr></table><!-- } --><!-- analytics --></body></html>
...@@ -558,7 +558,7 @@ See also <a href="build.html#providing_patches">Providing Patches</a>. ...@@ -558,7 +558,7 @@ See also <a href="build.html#providing_patches">Providing Patches</a>.
</li><li>Outer joins: if no column of the outer join table is referenced, the outer join table could be removed from the query. </li><li>Outer joins: if no column of the outer join table is referenced, the outer join table could be removed from the query.
</li><li>Cluster: allow using auto-increment and identity columns by ensuring executed in lock-step. </li><li>Cluster: allow using auto-increment and identity columns by ensuring executed in lock-step.
</li><li>MySQL compatibility: index names only need to be unique for the given table. </li><li>MySQL compatibility: index names only need to be unique for the given table.
</li><li>Issue 352: constraints: distinguish between 'no action' and 'restrict'. Currently, only restrict is supported, </li><li>Issue 352: constraints: distinguish between 'no action' and 'restrict'. Currently, only restrict is supported,
and 'no action' is internally mapped to 'restrict'. The database meta data returns 'restrict' in all cases. and 'no action' is internally mapped to 'restrict'. The database meta data returns 'restrict' in all cases.
</li></ul> </li></ul>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -16,22 +16,22 @@ public class Constants { ...@@ -16,22 +16,22 @@ public class Constants {
/** /**
* The build date is updated for each public release. * The build date is updated for each public release.
*/ */
public static final String BUILD_DATE = "2011-09-11"; public static final String BUILD_DATE = "2011-10-28";
/** /**
* The build date is updated for each public release. * The build date is updated for each public release.
*/ */
public static final String BUILD_DATE_STABLE = "2011-08-13"; public static final String BUILD_DATE_STABLE = "2011-09-11";
/** /**
* The build id is incremented for each public release. * The build id is incremented for each public release.
*/ */
public static final int BUILD_ID = 160; public static final int BUILD_ID = 161;
/** /**
* The build id of the last stable release. * The build id of the last stable release.
*/ */
public static final int BUILD_ID_STABLE = 159; public static final int BUILD_ID_STABLE = 160;
/** /**
* If H2 is compiled to be included in a product, this should be set to * If H2 is compiled to be included in a product, this should be set to
......
...@@ -163,7 +163,7 @@ CREATE DOMAIN [ IF NOT EXISTS ] newDomainName AS dataType ...@@ -163,7 +163,7 @@ CREATE DOMAIN [ IF NOT EXISTS ] newDomainName AS dataType
"," ","
Creates a new data type (domain)." Creates a new data type (domain)."
"Commands (DDL)","CREATE INDEX"," "Commands (DDL)","CREATE INDEX","
CREATE { [ UNIQUE ] [ HASH ] INDEX [ IF NOT EXISTS ] newIndexName CREATE { [ UNIQUE ] [ HASH ] INDEX [ [ IF NOT EXISTS ] newIndexName ]
| PRIMARY KEY [ HASH ] } | PRIMARY KEY [ HASH ] }
ON tableName ( indexColumn [,...] ) ON tableName ( indexColumn [,...] )
"," ","
...@@ -248,7 +248,7 @@ DROP SEQUENCE [ IF EXISTS ] sequenceName ...@@ -248,7 +248,7 @@ DROP SEQUENCE [ IF EXISTS ] sequenceName
"," ","
Drops a sequence." Drops a sequence."
"Commands (DDL)","DROP TABLE"," "Commands (DDL)","DROP TABLE","
DROP TABLE [ IF EXISTS ] tableName [,...] [ CASCADE | RESTRICT ] DROP TABLE [ IF EXISTS ] tableName [,...] [ RESTRICT | CASCADE ]
"," ","
Drops an existing table, or a list of tables." Drops an existing table, or a list of tables."
"Commands (DDL)","DROP TRIGGER"," "Commands (DDL)","DROP TRIGGER","
...@@ -752,7 +752,7 @@ This type allows storing serialized Java objects." ...@@ -752,7 +752,7 @@ This type allows storing serialized Java objects."
{ VARCHAR | LONGVARCHAR | VARCHAR2 | NVARCHAR { VARCHAR | LONGVARCHAR | VARCHAR2 | NVARCHAR
| NVARCHAR2 | VARCHAR_CASESENSITIVE} [ ( precisionInt ) ] | NVARCHAR2 | VARCHAR_CASESENSITIVE} [ ( precisionInt ) ]
"," ","
Unicode String." A Unicode String."
"Data Types","VARCHAR_IGNORECASE Type"," "Data Types","VARCHAR_IGNORECASE Type","
VARCHAR_IGNORECASE [ ( precisionInt ) ] VARCHAR_IGNORECASE [ ( precisionInt ) ]
"," ","
...@@ -760,8 +760,7 @@ Same as VARCHAR, but not case sensitive when comparing." ...@@ -760,8 +760,7 @@ Same as VARCHAR, but not case sensitive when comparing."
"Data Types","CHAR Type"," "Data Types","CHAR Type","
{ CHAR | CHARACTER | NCHAR } [ ( precisionInt ) ] { CHAR | CHARACTER | NCHAR } [ ( precisionInt ) ]
"," ","
This type is supported for compatibility with other databases and older A Unicode String."
applications."
"Data Types","BLOB Type"," "Data Types","BLOB Type","
{ BLOB | TINYBLOB | MEDIUMBLOB | LONGBLOB | IMAGE | OID } [ ( precisionInt ) ] { BLOB | TINYBLOB | MEDIUMBLOB | LONGBLOB | IMAGE | OID } [ ( precisionInt ) ]
"," ","
......
...@@ -286,7 +286,8 @@ public abstract class FilePath { ...@@ -286,7 +286,8 @@ public abstract class FilePath {
/** /**
* Get the scheme (prefix) for this file provider. * Get the scheme (prefix) for this file provider.
* This is similar to <code>java.nio.file.spi.FileSystemProvider.getScheme</code>. * This is similar to
* <code>java.nio.file.spi.FileSystemProvider.getScheme</code>.
* *
* @return the scheme * @return the scheme
*/ */
......
...@@ -37,7 +37,8 @@ public class FileUtils { ...@@ -37,7 +37,8 @@ public class FileUtils {
/** /**
* Create a directory (all required parent directories must already exist). * Create a directory (all required parent directories must already exist).
* This method is similar to Java 7 <code>java.nio.file.Path.createDirectory</code>. * This method is similar to Java 7
* <code>java.nio.file.Path.createDirectory</code>.
* *
* @param directoryName the directory name * @param directoryName the directory name
*/ */
...@@ -47,8 +48,9 @@ public class FileUtils { ...@@ -47,8 +48,9 @@ public class FileUtils {
/** /**
* Create a new file. * Create a new file.
* This method is similar to Java 7 <code>java.nio.file.Path.createFile</code>, but returns * This method is similar to Java 7
* false instead of throwing a exception if the file already existed. * <code>java.nio.file.Path.createFile</code>,
* but returns false instead of throwing a exception if the file already existed.
* *
* @param fileName the file name * @param fileName the file name
* @return true if creating was successful * @return true if creating was successful
...@@ -60,7 +62,8 @@ public class FileUtils { ...@@ -60,7 +62,8 @@ public class FileUtils {
/** /**
* Delete a file or directory if it exists. * Delete a file or directory if it exists.
* Directories may only be deleted if they are empty. * Directories may only be deleted if they are empty.
* This method is similar to Java 7 <code>java.nio.file.Path.deleteIfExists</code>. * This method is similar to Java 7
* <code>java.nio.file.Path.deleteIfExists</code>.
* *
* @param path the file or directory name * @param path the file or directory name
*/ */
...@@ -127,7 +130,8 @@ public class FileUtils { ...@@ -127,7 +130,8 @@ public class FileUtils {
/** /**
* List the files and directories in the given directory. * List the files and directories in the given directory.
* This method is similar to Java 7 <code>java.nio.file.Path.newDirectoryStream</code>. * This method is similar to Java 7
* <code>java.nio.file.Path.newDirectoryStream</code>.
* *
* @param path the directory * @param path the directory
* @return the list of fully qualified file names * @return the list of fully qualified file names
...@@ -145,7 +149,8 @@ public class FileUtils { ...@@ -145,7 +149,8 @@ public class FileUtils {
/** /**
* Get the last modified date of a file. * Get the last modified date of a file.
* This method is similar to Java 7 * This method is similar to Java 7
* <code>java.nio.file.attribute.Attributes.readBasicFileAttributes(file).lastModified().toMillis()</code> * <code>java.nio.file.attribute.Attributes.
* readBasicFileAttributes(file).lastModified().toMillis()</code>
* *
* @param fileName the file name * @param fileName the file name
* @return the last modified date * @return the last modified date
...@@ -157,7 +162,8 @@ public class FileUtils { ...@@ -157,7 +162,8 @@ public class FileUtils {
/** /**
* Get the size of a file in bytes * Get the size of a file in bytes
* This method is similar to Java 7 * This method is similar to Java 7
* <code>java.nio.file.attribute.Attributes.readBasicFileAttributes(file).size()</code> * <code>java.nio.file.attribute.Attributes.
* readBasicFileAttributes(file).size()</code>
* *
* @param fileName the file name * @param fileName the file name
* @return the size in bytes * @return the size in bytes
...@@ -168,7 +174,8 @@ public class FileUtils { ...@@ -168,7 +174,8 @@ public class FileUtils {
/** /**
* Check if it is a file or a directory. * Check if it is a file or a directory.
* <code>java.nio.file.attribute.Attributes.readBasicFileAttributes(file).isDirectory()</code> * <code>java.nio.file.attribute.Attributes.
* readBasicFileAttributes(file).isDirectory()</code>
* *
* @param fileName the file or directory name * @param fileName the file or directory name
* @return true if it is a directory * @return true if it is a directory
...@@ -179,7 +186,8 @@ public class FileUtils { ...@@ -179,7 +186,8 @@ public class FileUtils {
/** /**
* Open a random access file object. * Open a random access file object.
* This method is similar to Java 7 <code>java.nio.channels.FileChannel.open</code>. * This method is similar to Java 7
* <code>java.nio.channels.FileChannel.open</code>.
* *
* @param fileName the file name * @param fileName the file name
* @param mode the access mode. Supported are r, rw, rws, rwd * @param mode the access mode. Supported are r, rw, rws, rwd
...@@ -191,7 +199,8 @@ public class FileUtils { ...@@ -191,7 +199,8 @@ public class FileUtils {
/** /**
* Create an input stream to read from the file. * Create an input stream to read from the file.
* This method is similar to Java 7 <code>java.nio.file.Path.newInputStream</code>. * This method is similar to Java 7
* <code>java.nio.file.Path.newInputStream</code>.
* *
* @param fileName the file name * @param fileName the file name
* @return the input stream * @return the input stream
...@@ -202,7 +211,8 @@ public class FileUtils { ...@@ -202,7 +211,8 @@ public class FileUtils {
/** /**
* Create an output stream to write into the file. * Create an output stream to write into the file.
* This method is similar to Java 7 <code>java.nio.file.Path.newOutputStream</code>. * This method is similar to Java 7
* <code>java.nio.file.Path.newOutputStream</code>.
* *
* @param fileName the file name * @param fileName the file name
* @param append if true, the file will grow, if false, the file will be * @param append if true, the file will grow, if false, the file will be
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
CREATE TABLE VERSION(ID INT PRIMARY KEY, VERSION VARCHAR, CREATED VARCHAR); CREATE TABLE VERSION(ID INT PRIMARY KEY, VERSION VARCHAR, CREATED VARCHAR);
INSERT INTO VERSION VALUES INSERT INTO VERSION VALUES
(111, '1.3.161', '2011-10-28'),
(110, '1.3.160', '2011-09-11'), (110, '1.3.160', '2011-09-11'),
(109, '1.3.159', '2011-08-13'), (109, '1.3.159', '2011-08-13'),
(108, '1.3.158', '2011-07-17'), (108, '1.3.158', '2011-07-17'),
...@@ -23,8 +24,7 @@ INSERT INTO VERSION VALUES ...@@ -23,8 +24,7 @@ INSERT INTO VERSION VALUES
(97, '1.2.147', '2010-11-21'), (97, '1.2.147', '2010-11-21'),
(96, '1.3.146 Beta', '2010-11-08'), (96, '1.3.146 Beta', '2010-11-08'),
(95, '1.2.145', '2010-11-02'), (95, '1.2.145', '2010-11-02'),
(94, '1.2.144', '2010-10-15'), (94, '1.2.144', '2010-10-15')
(93, '1.2.143', '2010-09-18')
; ;
CREATE TABLE CHANNEL(TITLE VARCHAR, LINK VARCHAR, DESC VARCHAR, CREATE TABLE CHANNEL(TITLE VARCHAR, LINK VARCHAR, DESC VARCHAR,
......
...@@ -673,7 +673,8 @@ public class TestFunctions extends TestBase implements AggregateFunction { ...@@ -673,7 +673,8 @@ public class TestFunctions extends TestBase implements AggregateFunction {
} }
rs.close(); rs.close();
stat.execute("create alias sql as 'ResultSet sql(Connection conn, String sql) throws SQLException { return conn.createStatement().executeQuery(sql); }'"); stat.execute("create alias sql as 'ResultSet sql(Connection conn, String sql) " +
"throws SQLException { return conn.createStatement().executeQuery(sql); }'");
rs = stat.executeQuery("select * from sql('select cast(''Hello'' as clob)')"); rs = stat.executeQuery("select * from sql('select cast(''Hello'' as clob)')");
assertTrue(rs.next()); assertTrue(rs.next());
assertEquals("Hello", rs.getString(1)); assertEquals("Hello", rs.getString(1));
......
...@@ -692,6 +692,6 @@ unusual apfel caught overcareful tricky nodep junit eventually concrete ...@@ -692,6 +692,6 @@ unusual apfel caught overcareful tricky nodep junit eventually concrete
enhancer banana nit cglib challenging intercepted banane assertthrows enhancer banana nit cglib challenging intercepted banane assertthrows
objenesis prepend detecting overridable eater forgetting tear objenesis prepend detecting overridable eater forgetting tear
fork tester jaspa redirection johnny brings gone jooq iciql offline pdo mappings largely fork tester jaspa redirection johnny brings gone jooq iciql offline pdo mappings largely
pst patadia summertime jalpesh scheme compilable ski takanori dsts kawashima pst patadia summertime jalpesh scheme compilable ski takanori dsts kawashima
kokoci seldom jaros ciphers srcs kokoci seldom jaros ciphers srcs
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论