提交 481146ad authored 作者: Thomas Mueller's avatar Thomas Mueller

--no commit message

--no commit message
上级 bccf4e46
...@@ -133,8 +133,8 @@ ...@@ -133,8 +133,8 @@
<java classname="org.h2.tools.doc.LinkChecker" classpath="bin"> <java classname="org.h2.tools.doc.LinkChecker" classpath="bin">
<arg line="-dir docs"/> <arg line="-dir docs"/>
</java> </java>
<java classname="org.h2.tools.doc.XMLChecker" classpath="bin"> <java classname="org.h2.tools.doc.XMLChecker" classpath="bin"/>
</java> <java classname="org.h2.tools.doc.SpellChecker" classpath="bin"/>
</target> </target>
<target name="gcj" depends="compileResources"> <target name="gcj" depends="compileResources">
......
...@@ -44,7 +44,7 @@ public class TestManyJdbcObjects extends TestBase { ...@@ -44,7 +44,7 @@ public class TestManyJdbcObjects extends TestBase {
// SERVER_CACHED_OBJECTS = 500: connections = 40 // SERVER_CACHED_OBJECTS = 500: connections = 40
// SERVER_CACHED_OBJECTS = 50: connections = 120 // SERVER_CACHED_OBJECTS = 50: connections = 120
deleteDb("manyObjects"); deleteDb("manyObjects");
Constants.RUN_FINALIZERS = false; Constants.RUN_FINALIZE = false;
int connCount = getSize(4, 40); int connCount = getSize(4, 40);
Connection[] conn = new Connection[connCount]; Connection[] conn = new Connection[connCount];
for(int i=0; i<connCount; i++) { for(int i=0; i<connCount; i++) {
...@@ -62,12 +62,12 @@ public class TestManyJdbcObjects extends TestBase { ...@@ -62,12 +62,12 @@ public class TestManyJdbcObjects extends TestBase {
for(int i=0; i<connCount; i++) { for(int i=0; i<connCount; i++) {
conn[i].close(); conn[i].close();
} }
Constants.RUN_FINALIZERS = true; Constants.RUN_FINALIZE = true;
} }
private void testOneConnectionPrepare() throws Exception { private void testOneConnectionPrepare() throws Exception {
deleteDb("manyObjects"); deleteDb("manyObjects");
Constants.RUN_FINALIZERS = false; Constants.RUN_FINALIZE = false;
Connection conn = getConnection("manyObjects"); Connection conn = getConnection("manyObjects");
PreparedStatement prep; PreparedStatement prep;
Statement stat; Statement stat;
...@@ -98,7 +98,7 @@ public class TestManyJdbcObjects extends TestBase { ...@@ -98,7 +98,7 @@ public class TestManyJdbcObjects extends TestBase {
for(int i=0; i<size; i++) { for(int i=0; i<size; i++) {
prep.executeQuery(); prep.executeQuery();
} }
Constants.RUN_FINALIZERS = true; Constants.RUN_FINALIZE = true;
conn.close(); conn.close();
} }
......
...@@ -27,6 +27,7 @@ public class TestPreparedStatement extends TestBase { ...@@ -27,6 +27,7 @@ public class TestPreparedStatement extends TestBase {
deleteDb("preparedStatement"); deleteDb("preparedStatement");
Connection conn = getConnection("preparedStatement"); Connection conn = getConnection("preparedStatement");
testUUIDGeneratedKeys(conn);
testSetObject(conn); testSetObject(conn);
testPreparedSubquery(conn); testPreparedSubquery(conn);
testLikeIndex(conn); testLikeIndex(conn);
...@@ -43,6 +44,17 @@ public class TestPreparedStatement extends TestBase { ...@@ -43,6 +44,17 @@ public class TestPreparedStatement extends TestBase {
conn.close(); conn.close();
} }
private void testUUIDGeneratedKeys(Connection conn) throws Exception {
Statement stat = conn.createStatement();
stat.execute("CREATE TABLE TESTUUID(id UUID DEFAULT random_UUID() PRIMARY KEY)");
stat.execute("INSERT INTO TESTUUID() VALUES()");
ResultSet rs = stat.getGeneratedKeys();
rs.next();
byte[] data = rs.getBytes(1);
check(data.length, 16);
stat.execute("DROP TABLE TESTUUID");
}
private void testSetObject(Connection conn) throws Exception { private void testSetObject(Connection conn) throws Exception {
Statement stat = conn.createStatement(); Statement stat = conn.createStatement();
stat.execute("CREATE TABLE TEST(ID INT, DATA BINARY, JAVA OTHER)"); stat.execute("CREATE TABLE TEST(ID INT, DATA BINARY, JAVA OTHER)");
......
...@@ -15,7 +15,7 @@ public class CheckTextFiles { ...@@ -15,7 +15,7 @@ public class CheckTextFiles {
new CheckTextFiles().run(); new CheckTextFiles().run();
} }
String[] suffixCheck = new String[]{"html", "jsp", "js", "css", "bat", "nsi", "java", "txt", "properties", "cpp", "def", "h", "rc", "dev", "sql", "xml", "csv", "Driver"}; String[] suffixCheck = new String[]{"html", "jsp", "js", "css", "bat", "nsi", "java", "txt", "properties", "cpp", "def", "h", "rc", "dev", "sql", "xml", "csv", "Driver", "php"};
String[] suffixIgnore = new String[]{"gif", "png", "odg", "ico", "sxd", "layout", "res", "win", "dll", "jar", "task"}; String[] suffixIgnore = new String[]{"gif", "png", "odg", "ico", "sxd", "layout", "res", "win", "dll", "jar", "task"};
boolean failOnError; boolean failOnError;
boolean allowTab, allowCR = true, allowTrailingSpaces = true; boolean allowTab, allowCR = true, allowTrailingSpaces = true;
...@@ -92,6 +92,15 @@ public class CheckTextFiles { ...@@ -92,6 +92,15 @@ public class CheckTextFiles {
if(text.indexOf(copyrightLicense) < 0) { if(text.indexOf(copyrightLicense) < 0) {
fail(file, "license is missing", 0); fail(file, "license is missing", 0);
} }
if(text.indexOf(" " + "//#") > 0) {
fail(file, "unexpected space,//#", 0);
}
if(text.indexOf(" " + "#ifdef") > 0) {
fail(file, "unexpected space,#if", 0);
}
if(text.indexOf(" " + "#endif") > 0) {
fail(file, "unexpected space,#endif", 0);
}
} }
} }
int line = 1; int line = 1;
...@@ -167,7 +176,20 @@ public class CheckTextFiles { ...@@ -167,7 +176,20 @@ public class CheckTextFiles {
} }
private void fail(File file, String error, int line) { private void fail(File file, String error, int line) {
System.out.println("FAIL: File " + file.getAbsolutePath() + " " + error + " at line " + line); if(line <= 0) {
line = 1;
}
String name = file.getAbsolutePath();
int idx = name.lastIndexOf(File.separatorChar);
if(idx >= 0) {
name = name.replace(File.separatorChar, '.');
name = name + "(" + name.substring(idx + 1) + ":" + line + ")";
idx = name.indexOf("org.");
if(idx > 0) {
name = name.substring(idx);
}
}
System.out.println("FAIL at " + name + " " + error + " " + file.getAbsolutePath());
hasError = true; hasError = true;
if(failOnError) { if(failOnError) {
throw new Error("FAIL"); throw new Error("FAIL");
......
...@@ -194,7 +194,7 @@ public class CodeSwitch { ...@@ -194,7 +194,7 @@ public class CodeSwitch {
if (lineTrim.startsWith("//#")) { if (lineTrim.startsWith("//#")) {
if (lineTrim.startsWith("//#ifdef ")) { if (lineTrim.startsWith("//#ifdef ")) {
if (state != 0) { if (state != 0) {
printError("//#ifdef not allowed inside //#ifdef"); printError("//#ifdef not allowed inside " + "//#ifdef");
return false; return false;
} }
state = 1; state = 1;
...@@ -244,7 +244,7 @@ public class CodeSwitch { ...@@ -244,7 +244,7 @@ public class CodeSwitch {
} }
} else if (lineTrim.startsWith("//#else")) { } else if (lineTrim.startsWith("//#else")) {
if (state != 1) { if (state != 1) {
printError("//#else without //#ifdef"); printError("//#else without " + "//#ifdef");
return false; return false;
} }
state = 2; state = 2;
...@@ -259,7 +259,7 @@ public class CodeSwitch { ...@@ -259,7 +259,7 @@ public class CodeSwitch {
} }
} else if (lineTrim.startsWith("//#endif")) { } else if (lineTrim.startsWith("//#endif")) {
if (state == 0) { if (state == 0) {
printError("//#endif without //#ifdef"); printError("//#endif without " + "//#ifdef");
return false; return false;
} }
state = 0; state = 0;
......
package org.h2.tools.doc;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.StringTokenizer;
import org.h2.util.IOUtils;
public class SpellChecker {
private HashSet dictionary = new HashSet();
private HashSet used = new HashSet();
private HashMap unknown = new HashMap();
private boolean debug;
private boolean addToDictionary;
private static final String[] SUFFIX = new String[]{"java", "sql", "cpp", "txt", "html", "xml", "jsp", "css", "bat", "nsi", "csv", "xml", "js", "def", "dev", "h", "Driver", "properties", "win", "task", "php", "" };
private static final String[] IGNORE = new String[]{"gif", "png", "odg", "ico", "sxd", "zip", "bz2", "rc", "layout", "res", "dll", "jar"};
public static void main(String[] args) throws IOException {
String dir = "src";
new SpellChecker().run("tools/org/h2/tools/doc/dictionary.txt", dir);
}
private void run(String dictionary, String dir) throws IOException {
process(new File(dir + "/" + dictionary));
process(new File(dir));
System.out.println("used words");
for(Iterator it = used.iterator(); it.hasNext();) {
String s = (String) it.next();
System.out.print(s + " ");
}
System.out.println();
System.out.println("ALL UNKNOWN ----------------------------");
for(Iterator it = unknown.keySet().iterator(); it.hasNext();) {
String s = (String) it.next();
int count = ((Integer) unknown.get(s)).intValue();
if(count > 5) {
System.out.print(s + " ");
}
}
System.out.println();
if(unknown.size() > 0) {
throw new IOException("spell check failed");
}
}
private void process(File file) throws IOException {
String name = file.getCanonicalPath();
if(name.endsWith(".svn")) {
return;
}
int removeThisLater;
if(name.indexOf("\\test\\") >= 0) {
return;
}
if(file.isDirectory()) {
File[] list = file.listFiles();
for(int i=0; i<list.length; i++) {
process(list[i]);
}
} else {
String fileName = file.getAbsolutePath();
int idx = fileName.lastIndexOf('.');
String suffix;
if(idx < 0) {
suffix = "";
} else {
suffix = fileName.substring(idx + 1);
}
boolean ignore = false;
for(int i=0; i<IGNORE.length; i++) {
if(IGNORE[i].equals(suffix)) {
ignore = true;
break;
}
}
if(ignore) {
return;
}
boolean ok = false;
for(int i=0; i<SUFFIX.length; i++) {
if(SUFFIX[i].equals(suffix)) {
ok = true;
break;
}
}
if(!ok) {
throw new IOException("Unsupported suffix: " + suffix + " for file: " + fileName);
}
if("java".equals(suffix) || "xml".equals(suffix) || "txt".equals(suffix)) {
FileReader reader = null;
String text = null;
try {
reader = new FileReader(file);
text = readStringAndClose(reader, -1);
} finally {
IOUtils.closeSilently(reader);
}
if(fileName.endsWith("dictionary.txt")) {
addToDictionary = true;
} else {
addToDictionary = false;
}
scan(fileName, text);
}
}
}
private void scan(String fileName, String text) {
HashSet notfound = new HashSet();
StringTokenizer tokenizer = new StringTokenizer(text, "\r\n \t+\"*%&/()='[]{},.-;:_<>\\!?$@#|~^`");
while(tokenizer.hasMoreTokens()) {
String token = tokenizer.nextToken();
char first = token.charAt(0);
if(Character.isDigit(first)) {
continue;
}
if(!addToDictionary && debug) {
System.out.print(token + " ");
}
scanCombinedToken(notfound, token);
if(!addToDictionary && debug) {
System.out.println();
}
}
if(notfound.isEmpty()) {
return;
}
if(notfound.size() > 0) {
System.out.println("file: " + fileName);
for(Iterator it = notfound.iterator(); it.hasNext();) {
String s = (String) it.next();
System.out.print(s + " ");
}
System.out.println();
}
}
private void scanCombinedToken(HashSet notfound, String token) {
for(int i=1; i<token.length(); i++) {
char cleft = token.charAt(i-1);
char cright = token.charAt(i);
if(Character.isLowerCase(cleft) && Character.isUpperCase(cright)) {
scanToken(notfound, token.substring(0, i));
token = token.substring(i);
i = 1;
} else if(Character.isUpperCase(cleft) && Character.isLowerCase(cright)) {
scanToken(notfound, token.substring(0, i - 1));
token = token.substring(i - 1);
i = 1;
}
}
scanToken(notfound, token);
}
private void scanToken(HashSet notfound, String token) {
if(token.length() < 3) {
return;
}
while(true) {
char last = token.charAt(token.length() - 1);
if(!Character.isDigit(last)) {
break;
}
token = token.substring(0, token.length() - 1);
}
if(token.length() < 3) {
return;
}
for(int i=0; i<token.length(); i++) {
if(Character.isDigit(token.charAt(i))) {
return;
}
}
token = token.toLowerCase();
if(!addToDictionary && debug) {
System.out.print(token + " ");
}
if(addToDictionary) {
dictionary.add(token);
} else {
if(!dictionary.contains(token)) {
notfound.add(token);
increment(unknown, token);
} else {
used.add(token);
}
}
}
private void increment(HashMap map, String key) {
Integer value = (Integer) map.get(key);
value = new Integer(value == null ? 0 : value.intValue() + 1);
map.put(key, value);
}
public static String readStringAndClose(Reader in, int length) throws IOException {
if(length <= 0) {
length = Integer.MAX_VALUE;
}
int block = Math.min(4096, length);
StringWriter out=new StringWriter(length == Integer.MAX_VALUE ? block : length);
char[] buff=new char[block];
while(length > 0) {
int len = Math.min(block, length);
len = in.read(buff, 0, len);
if(len < 0) {
break;
}
out.write(buff, 0, len);
length -= len;
}
in.close();
return out.toString();
}
}
possible time modulus processed results foundation truncated suites overflows approximate location body continue zone trunk overwritten escaped first times detected modify recovering superior abstract result setters said module ways never those accounts places input unmodified core sect emergency character function implicit lenient grouped age interleave implied runs effect suggested mac corrupt selects comparator subtree checkpoint client sales third raw closely delegate country sets optimal users weak codes web tutorial okay super option price interrupted applications three logging channel disconnect save naming connection rights bin fields space encrypted cafe warranty any cent aligned
byte transform bigger done cot mix decision contain backups best copying readable illegal actual release news insecure inc allow invoice bound revision frame quarter year advanced locks systems future root networks begin register pointers scanned useful hot era calculate ins rounds warehouses string balance appear line preserve seed modes please the search includes restricted hint unless occurs consistent you servers exactly encoded reclaimed regular closed arrays outer listening overview arch goods gap immutable net vice amp row developer understand grammar degrees poll myself renaming today removing connected place mode disable assignable closes shown here named english divide
linked information consistency people during plans say use swap anyway cause been visitor meanwhile optional clubs estimated untranslated must limited zero exceptions working measure validation without fifo loops combined owner escapes percent property could says completed easy cleaned tau stores constants advised flushed problems store generation switched based corresponding handle basis removes kill nanoseconds next cpu threshold tracking returns who progress related now promote exported invalidate negative sure retrieved quantity view unquoted against pooled resolver shall remarks cross delta while ascii old indexed searches track enabled necessarily union inconsistent
ought mutable provided drivers schemata side collation benchmark digital decoding install denied detailed numeric tree james strategy imported strings base hopefully parsing loose prior carriage built parameter down stops together cat extends prop much sorted second washington debug medium inflate parser holes handling rang online commit quadratic case objects under pass invalid essentials uniform safe lower collected filler moves uses cyclic upgrade large ansi resolved supports common nothing exact such installer quotes seek standard collations parent writing start indexers lot pinned correlation restriction response home variables warning thing float quantified vendor keying disabled customer range
removed text samples temporary classes provider false display concatenated lines inserts waiting column session hook peace negate sometime direct dummy dump before using switches undefined sum handler logs tokens dependent literals called few things documented instantiate build full join hex committed support pending compiling chair multiply fill math main enclosed dual blocks methods knows menu other comma district street cast calculated quote adds frank hashed forward elsewhere connect extended complex otherwise events write privilege according attack position message resolution deep modules monday become preparing lock permissions daemon horizontal delivered would backing got bundle execute
faster dagger maybe sin tan mirrors immediately rein compress link pilot over found radix syntax returned divider beginning two ends declaration unnamed registered caller listed argument sites ibm tray deleting will greedy distributing condition processing trip self cardinality consequential own loader dots what divisor postal enough latest creating releases coffee new buckets factory hold options referenced blobs variant understands print source restrict translation mark end trailing finally align separator usage already searcher stock list spots started converted genetic bits generated still should compatibility epsilon dictionary shared reader field subject are collector stage embedded unsafe enclose fake template reuse
expect wrapper parses sequences links quicker open prepared descriptor tool permission explorer interleaving relies generates long scalar searched sessions signature detect preferred student prevented papa commands about trim collect starting stopped res miller items polar bit win clause busy evaluated stopping unlinked cursors appears mary reproduce requirement creation above isolation data guide targets permutation able interpreted mechanism harm editing padding environment bob successful sorting traditional contents inflater domains hover trick tags constructs throw matter tested reduce fillers apply shrink hour last reason quiet occur good positioned tea redirect history oracle once bench avoiding bootstrap
form whitespace quoted specific cascade notice how check updated complete cannot extend upper way unlock arbitrary compute manipulation branch hidden prepare recurse auto identical password transactions very chain moved delivery current contains words status simplify interval reverse strength unvisited everybody transitional site look minute project mystery queries internal package interesting buff declares fly fully reset hits properties wants extensions documents letter finished snapshots switch clustering increase day put joins granularity feed swapped filters primitive paragraph triggered additional yet has return nest needed scroll messages easily internally division indexing products expressions
students wrong bout high referencing locate views anon cipher pencil mean daffodil fails documentation below fire level threads contributors endorse followed copy itself merge derby apples office unix saves group dependencies increment made activity supported integer hack abnormal nested silly same analysis recently merging synonym trying skipped dropped four enable converts transaction round attempted err gets exists through attributes secondary override entry insert variance intersect warranties received pole functional disables automatically account escaping bananas aliasing again enumerate transfer proposal thread expected provisions dirty precision reserve relative access microsoft imp fast
sense exclusively declare hashing files doesn scan passed manually somehow our blue signs than indent mismatch test post serial infinite viruses blowfish var restoring does manual quick functions helper contained relationship met separated timing cup affect certain loading force method killed leave record backslash close update profits branches tasks bookkeeping pooling dividend applied aggregated rebuild comparison computed pound passive more its back surrogates general took issue spy work native clicked indirect bull indented patch shut combination arising file forum workaround implementation exits sign cache crashed total prohibited retain another accept deferred phantom delimiter containing types both
defined salary miss inserting assign octal clean dip weight compacting aliases unrecoverable detection encoder max specification enables match descending decode skip january human yes less halt differences conditions school cases settings sup flag missing rolled distributed atomic matrix statistics effects decoder reference region dumps button char tin constructor term tests operand used throttle disconnecting converter magic corrupted them compatible purpose operands encrypt selected task allows this cheating maps starter acute happens allocation interactive disclaimed teller walk query outside border nobody name network secure iterations flush dimensions bar violation undone iteration change logged twice
fresh overflow collection mask caused dot tapes compare compared layout values resources variable actually around edit cursor encoding continued governing loaded conflict anonymous break chained bucket constraints therefore collecting offset potentially alternate revoke trade yielding retrieve unnecessarily equals successfully oranges salz protocol identity orders true fetch grant referential everywhere references decimal rename sending building service represents fix try instrument brackets correctness shortest example better canonical forget procedures universal uncaught description problem guides specify hard breaks bach only schemas bid changing extra alone expression probably nulls licensed dips rest empty exemplary
fail for engine header express with from chance error version child boat direction reading necessary every browser rounding format trigger append speed requests attribute compiled relations permutations comment versa filter submit padded attacks replacement subtract initial server sentence action important required existence delete substitute sides formats however wondering was know spades tape reconnect pointer socket reserved footer writes width atom available traces statement aggregates all plus calling clustered number read guest disallow don renamed tertiary entity not hope low technology reply mapping anti sun dollar short materials pattern proposed inside midpoint unmaintained executed simulated concur create
weights coding pop reported licenses memory shy hey ranges databases theoretically parse bug recover resets displayed procedure cube show generator children constant unique lifetime race tucker attacker larger modified ordered keep newsletter delay your copyright insensitive including stable timeout externally smaller make pool remote added recursion listeners notify broken ignore software either strange conforming optimistic updates directories left host normally normal flags image customers difference thin discount pair beta assigned tcp shutdown unlink logic virtual xvi credit step pseudo overwrite installation points code out that queue style mer one word rows directly almost details content originals invoke brute well intended map
carrier jefferson author directory when terms address september then takes ordinal alias solution bind sometimes just seconds slow hello correlated little tired equal forcing key drop programs dropping errors silently enhancement features higher binary duplicate donate translations elements minor product applicable call digit where columns labels linear keyword infringement collections truncate cancel walker weird demand facility plain unaligned dash selection external entries array agreed paths configure clients state recompile cached tune white verified disconnected management languages face least scans tellers searching real recipient stub primary limits see output minimum into definition final hash single tom groups reasonable
persistent replaced derived rehash logger obtain log prime special subset profile roll supplied tabs command checked combinatorics writer feature portions profiler instead move unsorted invocation fitness take concurrency block bytes avoid contact uncompressed yield sam names event originally private qualifier conversion resulting comments unusable power paper something global getting half marked undo feeds integrity rolls really executing pairs simple untested maximum ensure damage delayed remainder strict automatic some matches storage streams port vertical addiction closer published volatile martin redistribution grants except platform heap damages stack stored order factor until alternatively tools biggest backwards
odd protected concurrent wait packaging find business static created many commons statements written slower replied generic depending adapter void resin exist huge logout needs writable destroyed comparable validity wood payment millisecond historical pub bad collator within unused suggest tag tab requested rid wish like convert cap reversed sampling scripts kept salt modifier tried include consistently date runnable explain tiny path bye encode looks alpha warehouse may natural token default masks opening opened identifiers quit stop owners big garbage duration cancels permitted distinct largest backed wrap public suffix hand implemented versions fin generating diagram sensitive minus expands jar component ticker
converting ascending liability floor equality cost listen commits employee backspace sugar email extracted bat random database top always supposed forever notified after checksum boolean operation did numbers object middle section bsd infinity computer deleter interface startup running compliance late production artifact later reflect shouldn loss singleton absolute node dimensional unsigned encryption violated avoids checking looking didn listing thrown page distribution happen flushing success refresh free specifies dialect cartesian comparing rules sizes detects tread week double profiling chars eldest rot role correctly point city mapped failure capacity user having sixty meaning bugs remark passwords scanning droop receive
trial privileges head world identifier truncates request translates parts console restart pieces redistributions somebody improve meta destroy help thorn sue seems particular provides throws sleep boston security alter rebuilt kernel send exclude accepts language recovery license populated cleaner identifying fashioned lookup item contract leaf checks everything planned sentinel import making temple clears specified priority right along superseded sat add type even highest remove understood amount iterator pages label run tax off plan login original stream indents algorithm law hardware overhead unwrap declared persisted recursive districts application active define catch smith prepended fine deterministic roles unwritten finish
characters currently included uncommitted have suite shallow remaining these checker extracting exception ceiling worst replace arguments windows indexer quoting unit rejected length comparisons upload soap filename belongs doubt separators fatal boo drops deferrable quality chinese runtime insertion known think worked clone van procurement sequence most following each provide prefix aid flat front pivot connects adding tell depth implement valid visit split locking depends sequential passes load cons reside keeps unexpected else present hit per sockets listener solve execution succeed reasons tables dimension get sub threaded target sample storages machine shutting accessed compile probable vector compression restore
rightmost works limit connecting stay produces limitations calls disclaimer whether describing inserted updating sort records requires compressed acquired deletes expand lookahead they aggregate validate correct clear undocumented none control theory forms separate operator changed coverage push ant setting compact dynamic non intern selectivity repeatable prints which literal currency enumeration foreign manager representative incidental locked rule warnings icon but system performance value greater basic longer leading exit appropriate triggers addition various because cherries adapting loop margin certificate span and sized reads shuffle scanners can legal null others acme container additionally previous generate interruption
size combinatoric month locators class remembered money terminated live buffered cluster share lee buffer implements allocated too operating kind title dim topic whole covered starts backs hid driver need allocate translated fall afterwards roots interfaces scope backup states assignment concatenate finds buffering ahead keywords intermediate batch testing lost indicate instance lambda digits given partial count services allowed dos keys since definitions concept liable translating existing calendar excluding networked scale process negligence independent fractional usually summary repeat multiple tries independently supply mail resource schema also element orange unknown starves shift failed remember disk why heading functionality
index connections excluded might between gamma ignored regression translate modifiers marker changes local context indexes different parameters whirlpool substring grabbing set domain visible model modification phone table family simply newline script anything part development exclusive fact mixed small tail john phase orphan coalesce operations deleted redistribute fixed means accessing granted select possibility hearts crash ambiguous executes termination extract creates definitely australia notch inner terminal positive constraint escape folder there unsupported outs height manipulations qualified document trace intact assert blob spaces major wide translatable identified counts combine early affected deck signed situations
closing master
authorization unencrypted merchantability finalization initialization utilization refactoring optimization subdirectories decompressing initializing hexadecimal decompresser initializes initialized synchronized optimizations serialization transactional
compliant timezone rollback unscaled analyzer optimize localized deflater hibernate snippets watchdog serialized inversed finalize normalize decompress standalone decryption uppercase behavior serialize scrollable download sortable uncomment pluggable optimized callback tokenized timezones initially initialize lowercase deprecated randomized optimizer registry callable malformed catalogs checklist linefeed timestamps
datediff datatype xmltext stddev bitxor currval openjpa rownum hsqldb dayname upsert xmlattr thomas params postgre analyze xmlcdata decrypt nullable mueller tinyint ifexists systime curdate radians ifnull substr apache subquery bitand datalink concat unicode sysdate grantee toplink smallint nextval casewhen xmlnode varchar hextoraw testall rawtohex struct toolbar lucene locale postgres catalog tostring soundex nullif readonly roadmap welt mod desc acos lcase steve init atan jones url ref clob col param java args throwable dir expr util http btree multi sql info pos obj stat int utils todo config prep temp lob savepoint rec jdbc html app org println cols conn synth min com timestamp len idx admin
abc metadata sqrt nosettings servlet bigint seq righthand gmail nopasswords hallo anne postgresql val ignorecase buf autocommit arg jpox mysql joe str
qty foo meier impl parsedatetime caucho stringencode eid pre instr ucase dateadd scott sha johann roundmagic sabine www varbinary lang javax petra aes fulltext asin yyyy xml nodata fktable curtime doc
formatdatetime cos longvarchar samp simon uuid lehmann kindergarden const rand octet gmt avg rdbms xyz exp rtrim ltrim rekord stringtoutf monthname
rss xmlstartdoc asc runscript marc odbc usa txt xmlcomment eins def johnson blockquote ddl color addr zip karin api susan mem cal https jon classpath xtea pfister unionall dec svn jackson
gcj grantor glassfish hoi gnu tpca google bak numsum btrees maven clancy poleposition yen keyalg unescape implies tpc rhino
sigma env iterate millis algo uml
mediumint combo george
rev toraw zeta xor zeile februar dll tinyblob nnnnnnnnn
neighbor bcc cfg argv namespace lib vldb mmmm ntext
specs hashcode quickstart upc mini equiv andy mediumtext attrib unclosed kappa ffff micro png orig eeee getpart killer ceil incremental stanford tokenize hans guid jndi agentlib nasty keytool rebind eth firebirdsql tohex fuzz wikipedia utc slock wiki noframe marcy systimestamp mediumblob wizbang gregorian clientside destroyer transient cwd rsa freshmeat stru prod omega uri stocklevel bitfield nsis
explicitly tinytext apps yjpagent instruction deploy iota approx multithreaded downloads omicron sec leach safari deg nan unnecessary lineup peterson cellspacing rel bigdb selfhtml hostname nchar wildcards euro
locales jdk cancelled mkdirs ssl lru spec src wildcard isnull deflate zloty docs dayofyear bitor bnf csv datetime vpn jsp username utf gaussian cid attr lastmodified dateformat cert trans serverlist inplace refactor poolable catcher csvread exe jdbcx pwd sqlxml gif esc mime clazz ico localhost gcjhack searchable certs redo savepoints tid rowid endif css longvarbinary invoiceid enc cond jsessionid dbs func javadoc sys del gen div dml sync ftp javascript lobs exec diff reindex neworder comp morton conf prec signum tokenizer nanos grantable smalllob joerg withmargin mmm createdate agg fromlist hashentry dist proc dest rowsize abs hms pow nclob lzf tovaluetype ids nstring customerid nonunique datastore href fid ymd dayofmonth num ret
nowait arraycopy sid idxname hashmap ifdef instanceof schem updatable xid pktable parentid holdability unrelated inv ready urls pdf auml rws ferguson dba img programme pasv tmfail poweroff maxlen dayofweek columnlist eol stylesheet unset coll ctx sig dtd cvs dirs xrunhprof jim inter dbo eof
repo scm googlecode charset rowcount maxrows datatypes antivir edu optimizable loopback bounds lite firebird sqlite quot nbsp combobox gzip losslessly gzip hashtable rundll snoozesoft newsfeed iso faq htm docsrc
sxd cpp dev nsi crlf odg regexp reg inmemory ldbc nodelay bool logfile logsize hsql csvwrite lastname amt byname cnt ytd lim namecnt eing lastname cally ation pri ese pres bugfixes
stringdecode inet filesystem xlock deutsch fran espa sysdba sqlserver bytelen spi sqlstate autoincrement beyond
serializable rfc paren ctrl cial datapage hoc cdata bdata unindexed xads rcon mul xtime theta filedata
rmd firefox stor mkd rnto nlst noop retr cdup mdtm syst dele rnfr hmmss ftpguide mdd
onclick alt onmouseout udts onmouseover eee decrement mine nano occurred subqueries compressor blocksize
casesensitive gpl ibiblio codeswitch sep stddevp varp asterisk sqlnulls compsci wlam strictfp nvl determ deinterleave
iface hyc aspx alan koders lpt uid bytea longtext oid smalldatetime longblob nvarchar inf jun thu
drda dbname mydb xdb syscs ruebezahl spell php doclet further hyt
pkcs genkey jks storepass dname keystore keystores keypass bugdatabase
### evaluatable evaluable
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论