001: /*
002: * Copyright 2004-2008 H2 Group. Licensed under the H2 License, Version 1.0
003: * (http://h2database.com/html/license.html).
004: * Initial Developer: H2 Group
005: */
006: package org.h2.command.dml;
007:
008: import org.h2.util.ObjectArray;
009:
010: /**
011: * The list of setting for a SET statement.
012: */
013: public class SetTypes {
014:
015: public static final int IGNORECASE = 1, MAX_LOG_SIZE = 2, MODE = 3,
016: READONLY = 4, LOCK_TIMEOUT = 5;
017: public static final int DEFAULT_LOCK_TIMEOUT = 6,
018: DEFAULT_TABLE_TYPE = 7;
019: public static final int CACHE_SIZE = 8;
020: public static final int TRACE_LEVEL_SYSTEM_OUT = 9,
021: TRACE_LEVEL_FILE = 10, TRACE_MAX_FILE_SIZE = 11;
022: public static final int COLLATION = 12, CLUSTER = 13,
023: WRITE_DELAY = 14, DATABASE_EVENT_LISTENER = 15;
024: public static final int MAX_MEMORY_ROWS = 16, LOCK_MODE = 17,
025: DB_CLOSE_DELAY = 18;
026: public static final int LOG = 19, THROTTLE = 20,
027: MAX_MEMORY_UNDO = 21, MAX_LENGTH_INPLACE_LOB = 22;
028: public static final int COMPRESS_LOB = 23, ALLOW_LITERALS = 24,
029: MULTI_THREADED = 25, SCHEMA = 26;
030: public static final int OPTIMIZE_REUSE_RESULTS = 27,
031: SCHEMA_SEARCH_PATH = 28, UNDO_LOG = 29;
032: public static final int REFERENTIAL_INTEGRITY = 30, MVCC = 31,
033: MAX_OPERATION_MEMORY = 32, EXCLUSIVE = 33;
034: public static final int CREATE_BUILD = 34, VARIABLE = 35,
035: QUERY_TIMEOUT = 36;
036:
037: private static ObjectArray types = new ObjectArray();
038:
039: static {
040: setType(IGNORECASE, "IGNORECASE");
041: setType(MAX_LOG_SIZE, "MAX_LOG_SIZE");
042: setType(MODE, "MODE");
043: setType(READONLY, "READONLY");
044: setType(LOCK_TIMEOUT, "LOCK_TIMEOUT");
045: setType(DEFAULT_LOCK_TIMEOUT, "DEFAULT_LOCK_TIMEOUT");
046: setType(DEFAULT_TABLE_TYPE, "DEFAULT_TABLE_TYPE");
047: setType(CACHE_SIZE, "CACHE_SIZE");
048: setType(TRACE_LEVEL_SYSTEM_OUT, "TRACE_LEVEL_SYSTEM_OUT");
049: setType(TRACE_LEVEL_FILE, "TRACE_LEVEL_FILE");
050: setType(TRACE_MAX_FILE_SIZE, "TRACE_MAX_FILE_SIZE");
051: setType(COLLATION, "COLLATION");
052: setType(CLUSTER, "CLUSTER");
053: setType(WRITE_DELAY, "WRITE_DELAY");
054: setType(DATABASE_EVENT_LISTENER, "DATABASE_EVENT_LISTENER");
055: setType(MAX_MEMORY_ROWS, "MAX_MEMORY_ROWS");
056: setType(LOCK_MODE, "LOCK_MODE");
057: setType(DB_CLOSE_DELAY, "DB_CLOSE_DELAY");
058: setType(LOG, "LOG");
059: setType(THROTTLE, "THROTTLE");
060: setType(MAX_MEMORY_UNDO, "MAX_MEMORY_UNDO");
061: setType(MAX_LENGTH_INPLACE_LOB, "MAX_LENGTH_INPLACE_LOB");
062: setType(COMPRESS_LOB, "COMPRESS_LOB");
063: setType(ALLOW_LITERALS, "ALLOW_LITERALS");
064: setType(MULTI_THREADED, "MULTI_THREADED");
065: setType(SCHEMA, "SCHEMA");
066: setType(OPTIMIZE_REUSE_RESULTS, "OPTIMIZE_REUSE_RESULTS");
067: setType(SCHEMA_SEARCH_PATH, "SCHEMA_SEARCH_PATH");
068: setType(UNDO_LOG, "UNDO_LOG");
069: setType(REFERENTIAL_INTEGRITY, "REFERENTIAL_INTEGRITY");
070: setType(MVCC, "MVCC");
071: setType(MAX_OPERATION_MEMORY, "MAX_OPERATION_MEMORY");
072: setType(EXCLUSIVE, "EXCLUSIVE");
073: setType(CREATE_BUILD, "CREATE_BUILD");
074: setType(VARIABLE, "@");
075: setType(QUERY_TIMEOUT, "QUERY_TIMEOUT");
076: }
077:
078: private static void setType(int type, String name) {
079: while (types.size() <= type) {
080: types.add(null);
081: }
082: types.set(type, name);
083: }
084:
085: /**
086: * Get the set type number.
087: *
088: * @param name the set type name
089: * @return the number
090: */
091: public static int getType(String name) {
092: for (int i = 0; i < types.size(); i++) {
093: if (name.equals(types.get(i))) {
094: return i;
095: }
096: }
097: return -1;
098: }
099:
100: public static ObjectArray getSettings() {
101: return types;
102: }
103:
104: /**
105: * Get the set type name.
106: *
107: * @param type the type number
108: * @return the name
109: */
110: public static String getTypeName(int type) {
111: return (String) types.get(type);
112: }
113:
114: }
|