Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e3028f1

Browse files
committed
Support for Raima Database Manager DBMS
1 parent 1f39dbd commit e3028f1

23 files changed

Lines changed: 397 additions & 44 deletions

data/xml/errors.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,4 +217,9 @@
217217
<error regexp="encountered after end of query"/>
218218
<error regexp="A comparison operator is required here"/>
219219
</dbms>
220+
221+
<dbms value="Raima Database Manager">
222+
<error regexp="-10048: Syntax error"/>
223+
<error regexp="rdmStmtPrepare\(.+?\) returned"/>
224+
</dbms>
220225
</root>

data/xml/queries.xml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1626,4 +1626,43 @@
16261626
<blind query="SELECT &quot;schema_name&quot; FROM INFORMATION_SCHEMA.COLUMNS,INFORMATION_SCHEMA.TABLES,INFORMATION_SCHEMA.SCHEMATA WHERE INFORMATION_SCHEMA.COLUMNS.table_pk=INFORMATION_SCHEMA.TABLES.table_pk AND INFORMATION_SCHEMA.TABLES.schema_pk=INFORMATION_SCHEMA.SCHEMATA.schema_pk AND %s" query2="SELECT &quot;table_name&quot; FROM INFORMATION_SCHEMA.COLUMNS,INFORMATION_SCHEMA.TABLES,INFORMATION_SCHEMA.SCHEMATA WHERE INFORMATION_SCHEMA.COLUMNS.table_pk=INFORMATION_SCHEMA.TABLES.table_pk AND INFORMATION_SCHEMA.TABLES.schema_pk=INFORMATION_SCHEMA.SCHEMATA.schema_pk AND &quot;schema_name&quot;='%s'" count="SELECT COUNT(&quot;schema_name&quot;) FROM INFORMATION_SCHEMA.COLUMNS,INFORMATION_SCHEMA.TABLES,INFORMATION_SCHEMA.SCHEMATA WHERE INFORMATION_SCHEMA.COLUMNS.table_pk=INFORMATION_SCHEMA.TABLES.table_pk AND INFORMATION_SCHEMA.TABLES.schema_pk=INFORMATION_SCHEMA.SCHEMATA.schema_pk AND %s" count2="SELECT COUNT(&quot;table_name&quot;) FROM INFORMATION_SCHEMA.COLUMNS,INFORMATION_SCHEMA.TABLES,INFORMATION_SCHEMA.SCHEMATA WHERE INFORMATION_SCHEMA.COLUMNS.table_pk=INFORMATION_SCHEMA.TABLES.table_pk AND INFORMATION_SCHEMA.TABLES.schema_pk=INFORMATION_SCHEMA.SCHEMATA.schema_pk AND &quot;schema_name&quot;='%s'" condition="&quot;column_name&quot;" condition2="&quot;schema_name&quot;" condition3="&quot;table_name&quot;"/>
16271627
</search_column>
16281628
</dbms>
1629+
1630+
<dbms value="Raima Database Manager">
1631+
<cast query="CONVERT(%s,CHAR)"/>
1632+
<length query="LENGTH(%s)"/>
1633+
<isnull query="IFNULL(%s,' ')"/>
1634+
<delimiter query="||"/>
1635+
<limit/>
1636+
<limitregexp/>
1637+
<limitgroupstart/>
1638+
<limitgroupstop/>
1639+
<limitstring/>
1640+
<order query="ORDER BY %s ASC"/>
1641+
<count query="COUNT(%s)"/>
1642+
<comment query="/*"/>
1643+
<concatenate query="%s||%s"/>
1644+
<case query="SELECT (IF(%s,1,0))"/>
1645+
<inference query="UNICODE(SUBSTRING((%s),%d,1))>%d"/>
1646+
<banner/>
1647+
<current_user/>
1648+
<current_db/>
1649+
<hostname/>
1650+
<table_comment/>
1651+
<column_comment/>
1652+
<is_dba/>
1653+
<dbs/>
1654+
<tables/>
1655+
<dump_table>
1656+
<inband query="SELECT %s FROM %s"/>
1657+
<!-- NOTE: Raima does not like escaping of LIKE strings (e.g. ...LIKE CHAR(32)) -->
1658+
<blind query="SELECT MIN(%s) FROM %s WHERE CONVERT(%s,CHAR)>'%s'" query2="SELECT MAX(%s) FROM %s WHERE CONVERT(%s,CHAR) LIKE [SINGLE_QUOTE]%s[SINGLE_QUOTE]" count="SELECT COUNT(*) FROM %s" count2="SELECT COUNT(DISTINCT(%s)) FROM %s"/>
1659+
</dump_table>
1660+
<users/>
1661+
<privileges/>
1662+
<roles/>
1663+
<statements/>
1664+
<search_db/>
1665+
<search_table/>
1666+
<search_column/>
1667+
</dbms>
16291668
</root>

lib/controller/handler.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
from lib.core.settings import ORACLE_ALIASES
3434
from lib.core.settings import PGSQL_ALIASES
3535
from lib.core.settings import PRESTO_ALIASES
36+
from lib.core.settings import RAIMA_ALIASES
3637
from lib.core.settings import SQLITE_ALIASES
3738
from lib.core.settings import SYBASE_ALIASES
3839
from lib.core.settings import VERTICA_ALIASES
@@ -82,6 +83,8 @@
8283
from plugins.dbms.postgresql import PostgreSQLMap
8384
from plugins.dbms.presto.connector import Connector as PrestoConn
8485
from plugins.dbms.presto import PrestoMap
86+
from plugins.dbms.raima.connector import Connector as RaimaConn
87+
from plugins.dbms.raima import RaimaMap
8588
from plugins.dbms.sqlite.connector import Connector as SQLiteConn
8689
from plugins.dbms.sqlite import SQLiteMap
8790
from plugins.dbms.sybase.connector import Connector as SybaseConn
@@ -121,6 +124,7 @@ def setHandler():
121124
(DBMS.CACHE, CACHE_ALIASES, CacheMap, CacheConn),
122125
(DBMS.EXTREMEDB, EXTREMEDB_ALIASES, ExtremeDBMap, ExtremeDBConn),
123126
(DBMS.FRONTBASE, FRONTBASE_ALIASES, FrontBaseMap, FrontBaseConn),
127+
(DBMS.RAIMA, RAIMA_ALIASES, RaimaMap, RaimaConn),
124128
]
125129

126130
_ = max(_ if (conf.get("dbms") or Backend.getIdentifiedDbms() or kb.heuristicExtendedDbms or "").lower() in _[1] else () for _ in items)

lib/core/agent.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,10 @@ def nullAndCastField(self, field):
487487
else:
488488
if not (Backend.isDbms(DBMS.SQLITE) and not isDBMSVersionAtLeast('3')):
489489
nulledCastedField = rootQuery.cast.query % field
490-
if Backend.getIdentifiedDbms() in (DBMS.ACCESS, DBMS.MCKOI):
490+
491+
if re.search("COUNT\(", field) and Backend.getIdentifiedDbms() in (DBMS.RAIMA,):
492+
pass
493+
elif Backend.getIdentifiedDbms() in (DBMS.ACCESS, DBMS.MCKOI):
491494
nulledCastedField = rootQuery.isnull.query % (nulledCastedField, nulledCastedField)
492495
else:
493496
nulledCastedField = rootQuery.isnull.query % nulledCastedField
@@ -696,7 +699,7 @@ def concatQuery(self, query, unpack=True):
696699
elif fieldsNoSelect:
697700
concatenatedQuery = "CONCAT('%s',%s,'%s')" % (kb.chars.start, concatenatedQuery, kb.chars.stop)
698701

699-
elif Backend.getIdentifiedDbms() in (DBMS.PGSQL, DBMS.ORACLE, DBMS.SQLITE, DBMS.DB2, DBMS.FIREBIRD, DBMS.HSQLDB, DBMS.H2, DBMS.MONETDB, DBMS.DERBY, DBMS.VERTICA, DBMS.MCKOI, DBMS.PRESTO, DBMS.ALTIBASE, DBMS.MIMERSQL, DBMS.CRATEDB, DBMS.CUBRID, DBMS.CACHE, DBMS.EXTREMEDB, DBMS.FRONTBASE):
702+
elif Backend.getIdentifiedDbms() in (DBMS.PGSQL, DBMS.ORACLE, DBMS.SQLITE, DBMS.DB2, DBMS.FIREBIRD, DBMS.HSQLDB, DBMS.H2, DBMS.MONETDB, DBMS.DERBY, DBMS.VERTICA, DBMS.MCKOI, DBMS.PRESTO, DBMS.ALTIBASE, DBMS.MIMERSQL, DBMS.CRATEDB, DBMS.CUBRID, DBMS.CACHE, DBMS.EXTREMEDB, DBMS.FRONTBASE, DBMS.RAIMA):
700703
if fieldsExists:
701704
concatenatedQuery = concatenatedQuery.replace("SELECT ", "'%s'||" % kb.chars.start, 1)
702705
concatenatedQuery += "||'%s'" % kb.chars.stop
@@ -1006,7 +1009,7 @@ def limitQuery(self, num, query, field=None, uniqueField=None):
10061009
fromFrom = limitedQuery[fromIndex + 1:]
10071010
orderBy = None
10081011

1009-
if Backend.getIdentifiedDbms() in (DBMS.MYSQL, DBMS.PGSQL, DBMS.SQLITE, DBMS.H2, DBMS.VERTICA, DBMS.PRESTO, DBMS.MIMERSQL, DBMS.CUBRID, DBMS.EXTREMEDB):
1012+
if Backend.getIdentifiedDbms() in (DBMS.MYSQL, DBMS.PGSQL, DBMS.SQLITE, DBMS.H2, DBMS.VERTICA, DBMS.PRESTO, DBMS.MIMERSQL, DBMS.CUBRID, DBMS.EXTREMEDB, DBMS.RAIMA):
10101013
limitStr = queries[Backend.getIdentifiedDbms()].limit.query % (num, 1)
10111014
limitedQuery += " %s" % limitStr
10121015

lib/core/common.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4193,7 +4193,7 @@ def safeSQLIdentificatorNaming(name, isTable=False):
41934193

41944194
if Backend.getIdentifiedDbms() in (DBMS.MYSQL, DBMS.ACCESS, DBMS.CUBRID, DBMS.SQLITE): # Note: in SQLite double-quotes are treated as string if column/identifier is non-existent (e.g. SELECT "foobar" FROM users)
41954195
retVal = "`%s`" % retVal
4196-
elif Backend.getIdentifiedDbms() in (DBMS.PGSQL, DBMS.DB2, DBMS.HSQLDB, DBMS.H2, DBMS.INFORMIX, DBMS.MONETDB, DBMS.VERTICA, DBMS.MCKOI, DBMS.PRESTO, DBMS.CRATEDB, DBMS.CACHE, DBMS.EXTREMEDB, DBMS.FRONTBASE):
4196+
elif Backend.getIdentifiedDbms() in (DBMS.PGSQL, DBMS.DB2, DBMS.HSQLDB, DBMS.H2, DBMS.INFORMIX, DBMS.MONETDB, DBMS.VERTICA, DBMS.MCKOI, DBMS.PRESTO, DBMS.CRATEDB, DBMS.CACHE, DBMS.EXTREMEDB, DBMS.FRONTBASE, DBMS.RAIMA):
41974197
retVal = "\"%s\"" % retVal
41984198
elif Backend.getIdentifiedDbms() in (DBMS.ORACLE, DBMS.ALTIBASE, DBMS.MIMERSQL):
41994199
retVal = "\"%s\"" % retVal.upper()
@@ -4231,7 +4231,7 @@ def unsafeSQLIdentificatorNaming(name):
42314231
if isinstance(name, six.string_types):
42324232
if Backend.getIdentifiedDbms() in (DBMS.MYSQL, DBMS.ACCESS, DBMS.CUBRID, DBMS.SQLITE):
42334233
retVal = name.replace("`", "")
4234-
elif Backend.getIdentifiedDbms() in (DBMS.PGSQL, DBMS.DB2, DBMS.HSQLDB, DBMS.H2, DBMS.INFORMIX, DBMS.MONETDB, DBMS.VERTICA, DBMS.MCKOI, DBMS.PRESTO, DBMS.CRATEDB, DBMS.CACHE, DBMS.EXTREMEDB, DBMS.FRONTBASE):
4234+
elif Backend.getIdentifiedDbms() in (DBMS.PGSQL, DBMS.DB2, DBMS.HSQLDB, DBMS.H2, DBMS.INFORMIX, DBMS.MONETDB, DBMS.VERTICA, DBMS.MCKOI, DBMS.PRESTO, DBMS.CRATEDB, DBMS.CACHE, DBMS.EXTREMEDB, DBMS.FRONTBASE, DBMS.RAIMA):
42354235
retVal = name.replace("\"", "")
42364236
elif Backend.getIdentifiedDbms() in (DBMS.ORACLE, DBMS.ALTIBASE, DBMS.MIMERSQL):
42374237
retVal = name.replace("\"", "").upper()

lib/core/dicts.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
from lib.core.settings import ORACLE_ALIASES
3434
from lib.core.settings import PGSQL_ALIASES
3535
from lib.core.settings import PRESTO_ALIASES
36+
from lib.core.settings import RAIMA_ALIASES
3637
from lib.core.settings import SQLITE_ALIASES
3738
from lib.core.settings import SYBASE_ALIASES
3839
from lib.core.settings import VERTICA_ALIASES
@@ -244,6 +245,7 @@
244245
DBMS.CACHE: (CACHE_ALIASES, "python jaydebeapi & python-jpype", "https://pypi.python.org/pypi/JayDeBeApi/ & http://jpype.sourceforge.net/", None),
245246
DBMS.EXTREMEDB: (EXTREMEDB_ALIASES, None, None, None),
246247
DBMS.FRONTBASE: (FRONTBASE_ALIASES, None, None, None),
248+
DBMS.RAIMA: (RAIMA_ALIASES, None, None, None),
247249
}
248250

249251
# Reference: https://blog.jooq.org/tag/sysibm-sysdummy1/
@@ -280,6 +282,7 @@
280282
DBMS.CUBRID: "(NULL SETEQ NULL)",
281283
DBMS.CACHE: "%SQLUPPER NULL",
282284
DBMS.EXTREMEDB: "NULLIFZERO(hashcode(NULL))",
285+
DBMS.RAIMA: "IF(ROWNUMBER()>0,CONVERT(NULL,TINYINT),NULL))",
283286
}
284287

285288
SQL_STATEMENTS = {

lib/core/dump.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ def dbTables(self, dbTables):
243243
for db, tables in dbTables.items():
244244
tables = sorted(filter(None, tables))
245245

246-
self._write("Database: %s" % unsafeSQLIdentificatorNaming(db) if db else "Current database")
246+
self._write("Database: %s" % unsafeSQLIdentificatorNaming(db) if db and METADB_SUFFIX not in db else "<current>")
247247

248248
if len(tables) == 1:
249249
self._write("[1 table]")
@@ -298,7 +298,7 @@ def dbTableColumns(self, tableColumns, content_type=None):
298298
maxlength2 = max(maxlength2, len("TYPE"))
299299
lines2 = "-" * (maxlength2 + 2)
300300

301-
self._write("Database: %s\nTable: %s" % (unsafeSQLIdentificatorNaming(db) if db else "Current database", unsafeSQLIdentificatorNaming(table)))
301+
self._write("Database: %s\nTable: %s" % (unsafeSQLIdentificatorNaming(db) if db and METADB_SUFFIX not in db else "<current>", unsafeSQLIdentificatorNaming(table)))
302302

303303
if len(columns) == 1:
304304
self._write("[1 column]")
@@ -353,7 +353,7 @@ def dbTablesCount(self, dbTables):
353353
maxlength1 = max(maxlength1, getConsoleLength(getUnicode(table)))
354354

355355
for db, counts in dbTables.items():
356-
self._write("Database: %s" % unsafeSQLIdentificatorNaming(db) if db else "Current database")
356+
self._write("Database: %s" % unsafeSQLIdentificatorNaming(db) if db and METADB_SUFFIX not in db else "<current>")
357357

358358
lines1 = "-" * (maxlength1 + 2)
359359
blank1 = " " * (maxlength1 - len("Table"))
@@ -479,7 +479,7 @@ def dbTableValues(self, tableValues):
479479
separator += "+%s" % lines
480480

481481
separator += "+"
482-
self._write("Database: %s\nTable: %s" % (unsafeSQLIdentificatorNaming(db) if db else "Current database", unsafeSQLIdentificatorNaming(table)))
482+
self._write("Database: %s\nTable: %s" % (unsafeSQLIdentificatorNaming(db) if db and METADB_SUFFIX not in db else "<current>", unsafeSQLIdentificatorNaming(table)))
483483

484484
if conf.dumpFormat == DUMP_FORMAT.SQLITE:
485485
cols = []

lib/core/enums.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ class DBMS(object):
5757
CACHE = "InterSystems Cache"
5858
EXTREMEDB = "eXtremeDB"
5959
FRONTBASE = "FrontBase"
60+
RAIMA = "Raima Database Manager"
6061

6162
class DBMS_DIRECTORY_NAME(object):
6263
ACCESS = "access"
@@ -84,6 +85,7 @@ class DBMS_DIRECTORY_NAME(object):
8485
CACHE = "cache"
8586
EXTREMEDB = "extremedb"
8687
FRONTBASE = "frontbase"
88+
RAIMA = "raima"
8789

8890
class FORK(object):
8991
MARIADB = "MariaDB"

lib/core/profiling.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,11 @@
55
See the file 'LICENSE' for copying permission
66
"""
77

8-
import codecs
98
import cProfile
109
import os
1110

12-
from lib.core.common import getSafeExString
1311
from lib.core.data import logger
1412
from lib.core.data import paths
15-
from lib.core.settings import UNICODE_ENCODING
1613

1714
def profile(profileOutputFile=None):
1815
"""

lib/core/settings.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from thirdparty.six import unichr as _unichr
1919

2020
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
21-
VERSION = "1.5.1.17"
21+
VERSION = "1.5.1.18"
2222
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
2323
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
2424
VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)
@@ -282,14 +282,15 @@
282282
CACHE_SYSTEM_DBS = ("%Dictionary", "INFORMATION_SCHEMA", "%SYS")
283283
EXTREMEDB_SYSTEM_DBS = ("",)
284284
FRONTBASE_SYSTEM_DBS = ("DEFINITION_SCHEMA", "INFORMATION_SCHEMA")
285+
RAIMA_SYSTEM_DBS = ("",)
285286

286287
# Note: (<regular>) + (<forks>)
287288
MSSQL_ALIASES = ("microsoft sql server", "mssqlserver", "mssql", "ms")
288289
MYSQL_ALIASES = ("mysql", "my") + ("mariadb", "maria", "memsql", "tidb", "percona")
289290
PGSQL_ALIASES = ("postgresql", "postgres", "pgsql", "psql", "pg") + ("cockroach", "cockroachdb", "redshift", "greenplum", "yellowbrick", "enterprisedb", "aurora")
290291
ORACLE_ALIASES = ("oracle", "orcl", "ora", "or")
291292
SQLITE_ALIASES = ("sqlite", "sqlite3")
292-
ACCESS_ALIASES = ("msaccess", "access", "jet", "microsoft access")
293+
ACCESS_ALIASES = ("microsoft access", "msaccess", "access", "jet")
293294
FIREBIRD_ALIASES = ("firebird", "mozilla firebird", "interbase", "ibase", "fb")
294295
MAXDB_ALIASES = ("max", "maxdb", "sap maxdb", "sap db")
295296
SYBASE_ALIASES = ("sybase", "sybase sql server")
@@ -309,13 +310,14 @@
309310
CACHE_ALIASES = ("intersystems cache", "cachedb", "cache")
310311
EXTREMEDB_ALIASES = ("extremedb", "extreme")
311312
FRONTBASE_ALIASES = ("frontbase",)
313+
RAIMA_ALIASES = ("raima database manager", "raima", "raimadb", "raimadm", "rdm", "rds", "velocis")
312314

313315
DBMS_DIRECTORY_DICT = dict((getattr(DBMS, _), getattr(DBMS_DIRECTORY_NAME, _)) for _ in dir(DBMS) if not _.startswith("_"))
314316

315-
SUPPORTED_DBMS = set(MSSQL_ALIASES + MYSQL_ALIASES + PGSQL_ALIASES + ORACLE_ALIASES + SQLITE_ALIASES + ACCESS_ALIASES + FIREBIRD_ALIASES + MAXDB_ALIASES + SYBASE_ALIASES + DB2_ALIASES + HSQLDB_ALIASES + H2_ALIASES + INFORMIX_ALIASES + MONETDB_ALIASES + DERBY_ALIASES + VERTICA_ALIASES + MCKOI_ALIASES + PRESTO_ALIASES + ALTIBASE_ALIASES + MIMERSQL_ALIASES + CRATEDB_ALIASES + CUBRID_ALIASES + CACHE_ALIASES + EXTREMEDB_ALIASES)
317+
SUPPORTED_DBMS = set(MSSQL_ALIASES + MYSQL_ALIASES + PGSQL_ALIASES + ORACLE_ALIASES + SQLITE_ALIASES + ACCESS_ALIASES + FIREBIRD_ALIASES + MAXDB_ALIASES + SYBASE_ALIASES + DB2_ALIASES + HSQLDB_ALIASES + H2_ALIASES + INFORMIX_ALIASES + MONETDB_ALIASES + DERBY_ALIASES + VERTICA_ALIASES + MCKOI_ALIASES + PRESTO_ALIASES + ALTIBASE_ALIASES + MIMERSQL_ALIASES + CRATEDB_ALIASES + CUBRID_ALIASES + CACHE_ALIASES + EXTREMEDB_ALIASES + RAIMA_ALIASES)
316318
SUPPORTED_OS = ("linux", "windows")
317319

318-
DBMS_ALIASES = ((DBMS.MSSQL, MSSQL_ALIASES), (DBMS.MYSQL, MYSQL_ALIASES), (DBMS.PGSQL, PGSQL_ALIASES), (DBMS.ORACLE, ORACLE_ALIASES), (DBMS.SQLITE, SQLITE_ALIASES), (DBMS.ACCESS, ACCESS_ALIASES), (DBMS.FIREBIRD, FIREBIRD_ALIASES), (DBMS.MAXDB, MAXDB_ALIASES), (DBMS.SYBASE, SYBASE_ALIASES), (DBMS.DB2, DB2_ALIASES), (DBMS.HSQLDB, HSQLDB_ALIASES), (DBMS.H2, H2_ALIASES), (DBMS.INFORMIX, INFORMIX_ALIASES), (DBMS.MONETDB, MONETDB_ALIASES), (DBMS.DERBY, DERBY_ALIASES), (DBMS.VERTICA, VERTICA_ALIASES), (DBMS.MCKOI, MCKOI_ALIASES), (DBMS.PRESTO, PRESTO_ALIASES), (DBMS.ALTIBASE, ALTIBASE_ALIASES), (DBMS.MIMERSQL, MIMERSQL_ALIASES), (DBMS.CRATEDB, CRATEDB_ALIASES), (DBMS.CUBRID, CUBRID_ALIASES), (DBMS.CACHE, CACHE_ALIASES), (DBMS.EXTREMEDB, EXTREMEDB_ALIASES), (DBMS.FRONTBASE, FRONTBASE_ALIASES))
320+
DBMS_ALIASES = ((DBMS.MSSQL, MSSQL_ALIASES), (DBMS.MYSQL, MYSQL_ALIASES), (DBMS.PGSQL, PGSQL_ALIASES), (DBMS.ORACLE, ORACLE_ALIASES), (DBMS.SQLITE, SQLITE_ALIASES), (DBMS.ACCESS, ACCESS_ALIASES), (DBMS.FIREBIRD, FIREBIRD_ALIASES), (DBMS.MAXDB, MAXDB_ALIASES), (DBMS.SYBASE, SYBASE_ALIASES), (DBMS.DB2, DB2_ALIASES), (DBMS.HSQLDB, HSQLDB_ALIASES), (DBMS.H2, H2_ALIASES), (DBMS.INFORMIX, INFORMIX_ALIASES), (DBMS.MONETDB, MONETDB_ALIASES), (DBMS.DERBY, DERBY_ALIASES), (DBMS.VERTICA, VERTICA_ALIASES), (DBMS.MCKOI, MCKOI_ALIASES), (DBMS.PRESTO, PRESTO_ALIASES), (DBMS.ALTIBASE, ALTIBASE_ALIASES), (DBMS.MIMERSQL, MIMERSQL_ALIASES), (DBMS.CRATEDB, CRATEDB_ALIASES), (DBMS.CUBRID, CUBRID_ALIASES), (DBMS.CACHE, CACHE_ALIASES), (DBMS.EXTREMEDB, EXTREMEDB_ALIASES), (DBMS.FRONTBASE, FRONTBASE_ALIASES), (DBMS.RAIMA, RAIMA_ALIASES))
319321

320322
USER_AGENT_ALIASES = ("ua", "useragent", "user-agent")
321323
REFERER_ALIASES = ("ref", "referer", "referrer")

0 commit comments

Comments
 (0)