mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2025-01-23 15:54:24 +03:00
Update for column types (Issue #552)
This commit is contained in:
parent
035137ef4e
commit
df645d7d3d
|
@ -24,219 +24,254 @@ from lib.core.settings import HSQLDB_ALIASES
|
||||||
from lib.core.settings import INFORMIX_ALIASES
|
from lib.core.settings import INFORMIX_ALIASES
|
||||||
|
|
||||||
FIREBIRD_TYPES = {
|
FIREBIRD_TYPES = {
|
||||||
261: "BLOB",
|
261: "BLOB",
|
||||||
14: "CHAR",
|
14: "CHAR",
|
||||||
40: "CSTRING",
|
40: "CSTRING",
|
||||||
11: "D_FLOAT",
|
11: "D_FLOAT",
|
||||||
27: "DOUBLE",
|
27: "DOUBLE",
|
||||||
10: "FLOAT",
|
10: "FLOAT",
|
||||||
16: "INT64",
|
16: "INT64",
|
||||||
8: "INTEGER",
|
8: "INTEGER",
|
||||||
9: "QUAD",
|
9: "QUAD",
|
||||||
7: "SMALLINT",
|
7: "SMALLINT",
|
||||||
12: "DATE",
|
12: "DATE",
|
||||||
13: "TIME",
|
13: "TIME",
|
||||||
35: "TIMESTAMP",
|
35: "TIMESTAMP",
|
||||||
37: "VARCHAR",
|
37: "VARCHAR",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
INFORMIX_TYPES = {
|
||||||
|
0: "CHAR",
|
||||||
|
1: "SMALLINT",
|
||||||
|
2: "INTEGER",
|
||||||
|
3: "FLOAT",
|
||||||
|
4: "SMALLFLOAT",
|
||||||
|
5: "DECIMAL",
|
||||||
|
6: "SERIAL",
|
||||||
|
7: "DATE",
|
||||||
|
8: "MONEY",
|
||||||
|
9: "NULL",
|
||||||
|
10: "DATETIME",
|
||||||
|
11: "BYTE",
|
||||||
|
12: "TEXT",
|
||||||
|
13: "VARCHAR",
|
||||||
|
14: "INTERVAL",
|
||||||
|
15: "NCHAR",
|
||||||
|
16: "NVARCHAR",
|
||||||
|
17: "INT8",
|
||||||
|
18: "SERIAL8",
|
||||||
|
19: "SET",
|
||||||
|
20: "MULTISET",
|
||||||
|
21: "LIST",
|
||||||
|
22: "ROW (unnamed)",
|
||||||
|
23: "COLLECTION",
|
||||||
|
40: "Variable-length opaque type",
|
||||||
|
41: "Fixed-length opaque type",
|
||||||
|
43: "LVARCHAR",
|
||||||
|
45: "BOOLEAN",
|
||||||
|
52: "BIGINT",
|
||||||
|
53: "BIGSERIAL",
|
||||||
|
2061: "IDSSECURITYLABEL",
|
||||||
|
4118: "ROW (named)",
|
||||||
|
}
|
||||||
|
|
||||||
SYBASE_TYPES = {
|
SYBASE_TYPES = {
|
||||||
14: "floatn",
|
14: "floatn",
|
||||||
8: "float",
|
8: "float",
|
||||||
15: "datetimn",
|
15: "datetimn",
|
||||||
12: "datetime",
|
12: "datetime",
|
||||||
23: "real",
|
23: "real",
|
||||||
28: "numericn",
|
28: "numericn",
|
||||||
10: "numeric",
|
10: "numeric",
|
||||||
27: "decimaln",
|
27: "decimaln",
|
||||||
26: "decimal",
|
26: "decimal",
|
||||||
17: "moneyn",
|
17: "moneyn",
|
||||||
11: "money",
|
11: "money",
|
||||||
21: "smallmoney",
|
21: "smallmoney",
|
||||||
22: "smalldatetime",
|
22: "smalldatetime",
|
||||||
13: "intn",
|
13: "intn",
|
||||||
7: "int",
|
7: "int",
|
||||||
6: "smallint",
|
6: "smallint",
|
||||||
5: "tinyint",
|
5: "tinyint",
|
||||||
16: "bit",
|
16: "bit",
|
||||||
2: "varchar",
|
2: "varchar",
|
||||||
18: "sysname",
|
18: "sysname",
|
||||||
25: "nvarchar",
|
25: "nvarchar",
|
||||||
1: "char",
|
1: "char",
|
||||||
24: "nchar",
|
24: "nchar",
|
||||||
4: "varbinary",
|
4: "varbinary",
|
||||||
80: "timestamp",
|
80: "timestamp",
|
||||||
3: "binary",
|
3: "binary",
|
||||||
19: "text",
|
19: "text",
|
||||||
20: "image",
|
20: "image",
|
||||||
}
|
}
|
||||||
|
|
||||||
MYSQL_PRIVS = {
|
MYSQL_PRIVS = {
|
||||||
1: "select_priv",
|
1: "select_priv",
|
||||||
2: "insert_priv",
|
2: "insert_priv",
|
||||||
3: "update_priv",
|
3: "update_priv",
|
||||||
4: "delete_priv",
|
4: "delete_priv",
|
||||||
5: "create_priv",
|
5: "create_priv",
|
||||||
6: "drop_priv",
|
6: "drop_priv",
|
||||||
7: "reload_priv",
|
7: "reload_priv",
|
||||||
8: "shutdown_priv",
|
8: "shutdown_priv",
|
||||||
9: "process_priv",
|
9: "process_priv",
|
||||||
10: "file_priv",
|
10: "file_priv",
|
||||||
11: "grant_priv",
|
11: "grant_priv",
|
||||||
12: "references_priv",
|
12: "references_priv",
|
||||||
13: "index_priv",
|
13: "index_priv",
|
||||||
14: "alter_priv",
|
14: "alter_priv",
|
||||||
15: "show_db_priv",
|
15: "show_db_priv",
|
||||||
16: "super_priv",
|
16: "super_priv",
|
||||||
17: "create_tmp_table_priv",
|
17: "create_tmp_table_priv",
|
||||||
18: "lock_tables_priv",
|
18: "lock_tables_priv",
|
||||||
19: "execute_priv",
|
19: "execute_priv",
|
||||||
20: "repl_slave_priv",
|
20: "repl_slave_priv",
|
||||||
21: "repl_client_priv",
|
21: "repl_client_priv",
|
||||||
22: "create_view_priv",
|
22: "create_view_priv",
|
||||||
23: "show_view_priv",
|
23: "show_view_priv",
|
||||||
24: "create_routine_priv",
|
24: "create_routine_priv",
|
||||||
25: "alter_routine_priv",
|
25: "alter_routine_priv",
|
||||||
26: "create_user_priv",
|
26: "create_user_priv",
|
||||||
}
|
}
|
||||||
|
|
||||||
PGSQL_PRIVS = {
|
PGSQL_PRIVS = {
|
||||||
1: "createdb",
|
1: "createdb",
|
||||||
2: "super",
|
2: "super",
|
||||||
3: "catupd",
|
3: "catupd",
|
||||||
}
|
}
|
||||||
|
|
||||||
# Reference(s): http://stackoverflow.com/a/17672504
|
# Reference(s): http://stackoverflow.com/a/17672504
|
||||||
# http://docwiki.embarcadero.com/InterBase/XE7/en/RDB$USER_PRIVILEGES
|
# http://docwiki.embarcadero.com/InterBase/XE7/en/RDB$USER_PRIVILEGES
|
||||||
|
|
||||||
FIREBIRD_PRIVS = {
|
FIREBIRD_PRIVS = {
|
||||||
"S": "SELECT",
|
"S": "SELECT",
|
||||||
"I": "INSERT",
|
"I": "INSERT",
|
||||||
"U": "UPDATE",
|
"U": "UPDATE",
|
||||||
"D": "DELETE",
|
"D": "DELETE",
|
||||||
"R": "REFERENCE",
|
"R": "REFERENCE",
|
||||||
"E": "EXECUTE",
|
"E": "EXECUTE",
|
||||||
"X": "EXECUTE",
|
"X": "EXECUTE",
|
||||||
"A": "ALL",
|
"A": "ALL",
|
||||||
"M": "MEMBER",
|
"M": "MEMBER",
|
||||||
"T": "DECRYPT",
|
"T": "DECRYPT",
|
||||||
"E": "ENCRYPT",
|
"E": "ENCRYPT",
|
||||||
"B": "SUBSCRIBE",
|
"B": "SUBSCRIBE",
|
||||||
}
|
}
|
||||||
|
|
||||||
DB2_PRIVS = {
|
DB2_PRIVS = {
|
||||||
1: "CONTROLAUTH",
|
1: "CONTROLAUTH",
|
||||||
2: "ALTERAUTH",
|
2: "ALTERAUTH",
|
||||||
3: "DELETEAUTH",
|
3: "DELETEAUTH",
|
||||||
4: "INDEXAUTH",
|
4: "INDEXAUTH",
|
||||||
5: "INSERTAUTH",
|
5: "INSERTAUTH",
|
||||||
6: "REFAUTH",
|
6: "REFAUTH",
|
||||||
7: "SELECTAUTH",
|
7: "SELECTAUTH",
|
||||||
8: "UPDATEAUTH",
|
8: "UPDATEAUTH",
|
||||||
}
|
}
|
||||||
|
|
||||||
DUMP_REPLACEMENTS = {" ": NULL, "": BLANK}
|
DUMP_REPLACEMENTS = {" ": NULL, "": BLANK}
|
||||||
|
|
||||||
DBMS_DICT = {
|
DBMS_DICT = {
|
||||||
DBMS.MSSQL: (MSSQL_ALIASES, "python-pymssql", "http://pymssql.sourceforge.net/", "mssql+pymssql"),
|
DBMS.MSSQL: (MSSQL_ALIASES, "python-pymssql", "http://pymssql.sourceforge.net/", "mssql+pymssql"),
|
||||||
DBMS.MYSQL: (MYSQL_ALIASES, "python pymysql", "https://github.com/petehunt/PyMySQL/", "mysql"),
|
DBMS.MYSQL: (MYSQL_ALIASES, "python pymysql", "https://github.com/petehunt/PyMySQL/", "mysql"),
|
||||||
DBMS.PGSQL: (PGSQL_ALIASES, "python-psycopg2", "http://initd.org/psycopg/", "postgresql"),
|
DBMS.PGSQL: (PGSQL_ALIASES, "python-psycopg2", "http://initd.org/psycopg/", "postgresql"),
|
||||||
DBMS.ORACLE: (ORACLE_ALIASES, "python cx_Oracle", "http://cx-oracle.sourceforge.net/", "oracle"),
|
DBMS.ORACLE: (ORACLE_ALIASES, "python cx_Oracle", "http://cx-oracle.sourceforge.net/", "oracle"),
|
||||||
DBMS.SQLITE: (SQLITE_ALIASES, "python-sqlite", "http://packages.ubuntu.com/quantal/python-sqlite", "sqlite"),
|
DBMS.SQLITE: (SQLITE_ALIASES, "python-sqlite", "http://packages.ubuntu.com/quantal/python-sqlite", "sqlite"),
|
||||||
DBMS.ACCESS: (ACCESS_ALIASES, "python-pyodbc", "http://pyodbc.googlecode.com/", "access"),
|
DBMS.ACCESS: (ACCESS_ALIASES, "python-pyodbc", "http://pyodbc.googlecode.com/", "access"),
|
||||||
DBMS.FIREBIRD: (FIREBIRD_ALIASES, "python-kinterbasdb", "http://kinterbasdb.sourceforge.net/", "firebird"),
|
DBMS.FIREBIRD: (FIREBIRD_ALIASES, "python-kinterbasdb", "http://kinterbasdb.sourceforge.net/", "firebird"),
|
||||||
DBMS.MAXDB: (MAXDB_ALIASES, None, None, "maxdb"),
|
DBMS.MAXDB: (MAXDB_ALIASES, None, None, "maxdb"),
|
||||||
DBMS.SYBASE: (SYBASE_ALIASES, "python-pymssql", "http://pymssql.sourceforge.net/", "sybase"),
|
DBMS.SYBASE: (SYBASE_ALIASES, "python-pymssql", "http://pymssql.sourceforge.net/", "sybase"),
|
||||||
DBMS.DB2: (DB2_ALIASES, "python ibm-db", "https://github.com/ibmdb/python-ibmdb", "ibm_db_sa"),
|
DBMS.DB2: (DB2_ALIASES, "python ibm-db", "https://github.com/ibmdb/python-ibmdb", "ibm_db_sa"),
|
||||||
DBMS.HSQLDB: (HSQLDB_ALIASES, "python jaydebeapi & python-jpype", "https://pypi.python.org/pypi/JayDeBeApi/ & http://jpype.sourceforge.net/", None),
|
DBMS.HSQLDB: (HSQLDB_ALIASES, "python jaydebeapi & python-jpype", "https://pypi.python.org/pypi/JayDeBeApi/ & http://jpype.sourceforge.net/", None),
|
||||||
DBMS.INFORMIX: (INFORMIX_ALIASES, "python ibm-db", "https://github.com/ibmdb/python-ibmdb", "ibm_db_sa"),
|
DBMS.INFORMIX: (INFORMIX_ALIASES, "python ibm-db", "https://github.com/ibmdb/python-ibmdb", "ibm_db_sa"),
|
||||||
}
|
}
|
||||||
|
|
||||||
FROM_DUMMY_TABLE = {
|
FROM_DUMMY_TABLE = {
|
||||||
DBMS.ORACLE: " FROM DUAL",
|
DBMS.ORACLE: " FROM DUAL",
|
||||||
DBMS.ACCESS: " FROM MSysAccessObjects",
|
DBMS.ACCESS: " FROM MSysAccessObjects",
|
||||||
DBMS.FIREBIRD: " FROM RDB$DATABASE",
|
DBMS.FIREBIRD: " FROM RDB$DATABASE",
|
||||||
DBMS.MAXDB: " FROM VERSIONS",
|
DBMS.MAXDB: " FROM VERSIONS",
|
||||||
DBMS.DB2: " FROM SYSIBM.SYSDUMMY1",
|
DBMS.DB2: " FROM SYSIBM.SYSDUMMY1",
|
||||||
DBMS.HSQLDB: " FROM INFORMATION_SCHEMA.SYSTEM_USERS",
|
DBMS.HSQLDB: " FROM INFORMATION_SCHEMA.SYSTEM_USERS",
|
||||||
DBMS.INFORMIX: " FROM SYSMASTER:SYSDUAL"
|
DBMS.INFORMIX: " FROM SYSMASTER:SYSDUAL"
|
||||||
}
|
}
|
||||||
|
|
||||||
SQL_STATEMENTS = {
|
SQL_STATEMENTS = {
|
||||||
"SQL SELECT statement": (
|
"SQL SELECT statement": (
|
||||||
"select ",
|
"select ",
|
||||||
"show ",
|
"show ",
|
||||||
" top ",
|
" top ",
|
||||||
" distinct ",
|
" distinct ",
|
||||||
" from ",
|
" from ",
|
||||||
" from dual",
|
" from dual",
|
||||||
" where ",
|
" where ",
|
||||||
" group by ",
|
" group by ",
|
||||||
" order by ",
|
" order by ",
|
||||||
" having ",
|
" having ",
|
||||||
" limit ",
|
" limit ",
|
||||||
" offset ",
|
" offset ",
|
||||||
" union all ",
|
" union all ",
|
||||||
" rownum as ",
|
" rownum as ",
|
||||||
"(case ", ),
|
"(case ", ),
|
||||||
|
|
||||||
"SQL data definition": (
|
"SQL data definition": (
|
||||||
"create ",
|
"create ",
|
||||||
"declare ",
|
"declare ",
|
||||||
"drop ",
|
"drop ",
|
||||||
"truncate ",
|
"truncate ",
|
||||||
"alter ", ),
|
"alter ", ),
|
||||||
|
|
||||||
"SQL data manipulation": (
|
"SQL data manipulation": (
|
||||||
"bulk ",
|
"bulk ",
|
||||||
"insert ",
|
"insert ",
|
||||||
"update ",
|
"update ",
|
||||||
"delete ",
|
"delete ",
|
||||||
"merge ",
|
"merge ",
|
||||||
"load ", ),
|
"load ", ),
|
||||||
|
|
||||||
"SQL data control": (
|
"SQL data control": (
|
||||||
"grant ",
|
"grant ",
|
||||||
"revoke ", ),
|
"revoke ", ),
|
||||||
|
|
||||||
"SQL data execution": (
|
"SQL data execution": (
|
||||||
"exec ",
|
"exec ",
|
||||||
"execute ",
|
"execute ",
|
||||||
"values ",
|
"values ",
|
||||||
"call ", ),
|
"call ", ),
|
||||||
|
|
||||||
"SQL transaction": (
|
"SQL transaction": (
|
||||||
"start transaction ",
|
"start transaction ",
|
||||||
"begin work ",
|
"begin work ",
|
||||||
"begin transaction ",
|
"begin transaction ",
|
||||||
"commit ",
|
"commit ",
|
||||||
"rollback ", ),
|
"rollback ", ),
|
||||||
}
|
}
|
||||||
|
|
||||||
POST_HINT_CONTENT_TYPES = {
|
POST_HINT_CONTENT_TYPES = {
|
||||||
POST_HINT.JSON: "application/json",
|
POST_HINT.JSON: "application/json",
|
||||||
POST_HINT.JSON_LIKE: "application/json",
|
POST_HINT.JSON_LIKE: "application/json",
|
||||||
POST_HINT.MULTIPART: "multipart/form-data",
|
POST_HINT.MULTIPART: "multipart/form-data",
|
||||||
POST_HINT.SOAP: "application/soap+xml",
|
POST_HINT.SOAP: "application/soap+xml",
|
||||||
POST_HINT.XML: "application/xml",
|
POST_HINT.XML: "application/xml",
|
||||||
POST_HINT.ARRAY_LIKE: "application/x-www-form-urlencoded; charset=utf-8",
|
POST_HINT.ARRAY_LIKE: "application/x-www-form-urlencoded; charset=utf-8",
|
||||||
}
|
}
|
||||||
|
|
||||||
DEPRECATED_OPTIONS = {
|
DEPRECATED_OPTIONS = {
|
||||||
"--replicate": "use '--dump-format=SQLITE' instead",
|
"--replicate": "use '--dump-format=SQLITE' instead",
|
||||||
"--no-unescape": "use '--no-escape' instead",
|
"--no-unescape": "use '--no-escape' instead",
|
||||||
"--binary": "use '--binary-fields' instead",
|
"--binary": "use '--binary-fields' instead",
|
||||||
"--auth-private": "use '--auth-file' instead",
|
"--auth-private": "use '--auth-file' instead",
|
||||||
"--check-payload": None,
|
"--check-payload": None,
|
||||||
"--check-waf": None,
|
"--check-waf": None,
|
||||||
}
|
}
|
||||||
|
|
||||||
DUMP_DATA_PREPROCESS = {
|
DUMP_DATA_PREPROCESS = {
|
||||||
DBMS.ORACLE: {"XMLTYPE": "(%s).getStringVal()"}, # Reference: https://www.tibcommunity.com/docs/DOC-3643
|
DBMS.ORACLE: {"XMLTYPE": "(%s).getStringVal()"}, # Reference: https://www.tibcommunity.com/docs/DOC-3643
|
||||||
DBMS.MSSQL: {"IMAGE": "CONVERT(VARBINARY(MAX),%s)"},
|
DBMS.MSSQL: {"IMAGE": "CONVERT(VARBINARY(MAX),%s)"},
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFAULT_DOC_ROOTS = {
|
DEFAULT_DOC_ROOTS = {
|
||||||
OS.WINDOWS: ("C:/xampp/htdocs/", "C:/wamp/www/", "C:/Inetpub/wwwroot/"),
|
OS.WINDOWS: ("C:/xampp/htdocs/", "C:/wamp/www/", "C:/Inetpub/wwwroot/"),
|
||||||
OS.LINUX: ("/var/www/", "/var/www/html", "/usr/local/apache2/htdocs", "/var/www/nginx-default", "/srv/www") # Reference: https://wiki.apache.org/httpd/DistrosDefaultLayout
|
OS.LINUX: ("/var/www/", "/var/www/html", "/usr/local/apache2/htdocs", "/var/www/nginx-default", "/srv/www") # Reference: https://wiki.apache.org/httpd/DistrosDefaultLayout
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@ from lib.core.enums import OS
|
||||||
from lib.core.revision import getRevisionNumber
|
from lib.core.revision import getRevisionNumber
|
||||||
|
|
||||||
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
|
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
|
||||||
VERSION = "1.0.9.31"
|
VERSION = "1.0.9.32"
|
||||||
REVISION = getRevisionNumber()
|
REVISION = getRevisionNumber()
|
||||||
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
|
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
|
||||||
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
|
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
|
||||||
|
|
|
@ -32,6 +32,7 @@ from lib.core.data import logger
|
||||||
from lib.core.data import paths
|
from lib.core.data import paths
|
||||||
from lib.core.data import queries
|
from lib.core.data import queries
|
||||||
from lib.core.dicts import FIREBIRD_TYPES
|
from lib.core.dicts import FIREBIRD_TYPES
|
||||||
|
from lib.core.dicts import INFORMIX_TYPES
|
||||||
from lib.core.enums import CHARSET_TYPE
|
from lib.core.enums import CHARSET_TYPE
|
||||||
from lib.core.enums import DBMS
|
from lib.core.enums import DBMS
|
||||||
from lib.core.enums import EXPECTED
|
from lib.core.enums import EXPECTED
|
||||||
|
@ -603,8 +604,17 @@ class Databases:
|
||||||
if len(columnData) == 1:
|
if len(columnData) == 1:
|
||||||
columns[name] = None
|
columns[name] = None
|
||||||
else:
|
else:
|
||||||
|
key = int(columnData[1]) if isinstance(columnData[1], basestring) and columnData[1].isdigit() else columnData[1]
|
||||||
if Backend.isDbms(DBMS.FIREBIRD):
|
if Backend.isDbms(DBMS.FIREBIRD):
|
||||||
columnData[1] = FIREBIRD_TYPES.get(int(columnData[1]) if isinstance(columnData[1], basestring) and columnData[1].isdigit() else columnData[1], columnData[1])
|
columnData[1] = FIREBIRD_TYPES.get(key, columnData[1])
|
||||||
|
elif Backend.isDbms(DBMS.INFORMIX):
|
||||||
|
notNull = False
|
||||||
|
if isinstance(key, int) and key > 255:
|
||||||
|
key -= 256
|
||||||
|
notNull = True
|
||||||
|
columnData[1] = INFORMIX_TYPES.get(key, columnData[1])
|
||||||
|
if notNull:
|
||||||
|
columnData[1] = "%s NOT NULL" % columnData[1]
|
||||||
|
|
||||||
columns[name] = columnData[1]
|
columns[name] = columnData[1]
|
||||||
|
|
||||||
|
@ -752,11 +762,22 @@ class Databases:
|
||||||
conf.db, conf.db, unsafeSQLIdentificatorNaming(tbl).split(".")[-1])
|
conf.db, conf.db, unsafeSQLIdentificatorNaming(tbl).split(".")[-1])
|
||||||
elif Backend.isDbms(DBMS.FIREBIRD):
|
elif Backend.isDbms(DBMS.FIREBIRD):
|
||||||
query = rootQuery.blind.query2 % (tbl, column)
|
query = rootQuery.blind.query2 % (tbl, column)
|
||||||
|
elif Backend.isDbms(DBMS.INFORMIX):
|
||||||
|
query = rootQuery.blind.query2 % (conf.db, conf.db, conf.db, conf.db, conf.db, tbl, column)
|
||||||
|
|
||||||
colType = unArrayizeValue(inject.getValue(query, union=False, error=False))
|
colType = unArrayizeValue(inject.getValue(query, union=False, error=False))
|
||||||
|
|
||||||
|
key = int(colType) if isinstance(colType, basestring) and colType.isdigit() else colType
|
||||||
if Backend.isDbms(DBMS.FIREBIRD):
|
if Backend.isDbms(DBMS.FIREBIRD):
|
||||||
colType = FIREBIRD_TYPES.get(colType, colType)
|
colType = FIREBIRD_TYPES.get(key, colType)
|
||||||
|
elif Backend.isDbms(DBMS.INFORMIX):
|
||||||
|
notNull = False
|
||||||
|
if isinstance(key, int) and key > 255:
|
||||||
|
key -= 256
|
||||||
|
notNull = True
|
||||||
|
colType = INFORMIX_TYPES.get(key, colType)
|
||||||
|
if notNull:
|
||||||
|
colType = "%s NOT NULL" % colType
|
||||||
|
|
||||||
column = safeSQLIdentificatorNaming(column)
|
column = safeSQLIdentificatorNaming(column)
|
||||||
columns[column] = colType
|
columns[column] = colType
|
||||||
|
|
|
@ -32,7 +32,7 @@ e77cca1cb063016f71f6e6bdebf4ec73 lib/core/data.py
|
||||||
1d042f0bc0557d3fd564ea5a46deb77e lib/core/datatype.py
|
1d042f0bc0557d3fd564ea5a46deb77e lib/core/datatype.py
|
||||||
e4ca0fd47f20cf7ba6a5f5cbf980073c lib/core/decorators.py
|
e4ca0fd47f20cf7ba6a5f5cbf980073c lib/core/decorators.py
|
||||||
67f206cf2658145992cc1d7020138325 lib/core/defaults.py
|
67f206cf2658145992cc1d7020138325 lib/core/defaults.py
|
||||||
94b45065827001fcd25f5c61eec74a33 lib/core/dicts.py
|
863095fcfb94799c4e5ba3d3d6f590d6 lib/core/dicts.py
|
||||||
1f98d3f57ce21d625fd67adb26cfd13c lib/core/dump.py
|
1f98d3f57ce21d625fd67adb26cfd13c lib/core/dump.py
|
||||||
1128705f593013359497b3959078b650 lib/core/enums.py
|
1128705f593013359497b3959078b650 lib/core/enums.py
|
||||||
e4aec2b11c1ad6039d0c3dbbfbc5eb1a lib/core/exception.py
|
e4aec2b11c1ad6039d0c3dbbfbc5eb1a lib/core/exception.py
|
||||||
|
@ -45,7 +45,7 @@ e60456db5380840a586654344003d4e6 lib/core/readlineng.py
|
||||||
5ef56abb8671c2ca6ceecb208258e360 lib/core/replication.py
|
5ef56abb8671c2ca6ceecb208258e360 lib/core/replication.py
|
||||||
99a2b496b9d5b546b335653ca801153f lib/core/revision.py
|
99a2b496b9d5b546b335653ca801153f lib/core/revision.py
|
||||||
7c15dd2777af4dac2c89cab6df17462e lib/core/session.py
|
7c15dd2777af4dac2c89cab6df17462e lib/core/session.py
|
||||||
11375783a4c6d11502ba32dd3b1ef1ce lib/core/settings.py
|
5750f92c622c3c5468a1c263bde4b306 lib/core/settings.py
|
||||||
7af83e4f18cab6dff5e67840eb65be80 lib/core/shell.py
|
7af83e4f18cab6dff5e67840eb65be80 lib/core/shell.py
|
||||||
23657cd7d924e3c6d225719865855827 lib/core/subprocessng.py
|
23657cd7d924e3c6d225719865855827 lib/core/subprocessng.py
|
||||||
0bc2fae1dec18cdd11954b22358293f2 lib/core/target.py
|
0bc2fae1dec18cdd11954b22358293f2 lib/core/target.py
|
||||||
|
@ -203,7 +203,7 @@ d0c7cc8ec2aa716b2e5cd3b5ab805c3a plugins/dbms/sybase/__init__.py
|
||||||
7a1c6cb238b5b464e1e9641469e6e503 plugins/dbms/sybase/takeover.py
|
7a1c6cb238b5b464e1e9641469e6e503 plugins/dbms/sybase/takeover.py
|
||||||
62faa58e5aace4b6a6d562788685186f plugins/generic/connector.py
|
62faa58e5aace4b6a6d562788685186f plugins/generic/connector.py
|
||||||
cdbf6eec4a94f830deb7dbab1c1a2935 plugins/generic/custom.py
|
cdbf6eec4a94f830deb7dbab1c1a2935 plugins/generic/custom.py
|
||||||
5a472f7f8688e0310259c5caeb5038ef plugins/generic/databases.py
|
f27f76bfd2ed9ce384dcd43fb7e10226 plugins/generic/databases.py
|
||||||
1177bbad4e77a2ca85e0054569e03d38 plugins/generic/entries.py
|
1177bbad4e77a2ca85e0054569e03d38 plugins/generic/entries.py
|
||||||
e335b868f5fb1154c9f72143d602915d plugins/generic/enumeration.py
|
e335b868f5fb1154c9f72143d602915d plugins/generic/enumeration.py
|
||||||
3e673ef4e6592f52a11d88e61fe4dc2b plugins/generic/filesystem.py
|
3e673ef4e6592f52a11d88e61fe4dc2b plugins/generic/filesystem.py
|
||||||
|
|
Loading…
Reference in New Issue
Block a user