|
1 | 1 | import re
|
2 | 2 | import intersystems_iris.dbapi._DBAPI as dbapi
|
3 | 3 | from . import information_schema as ischema
|
4 |
| -from . import types |
5 | 4 | from sqlalchemy import exc
|
6 | 5 | from sqlalchemy.orm import aliased
|
7 | 6 | from sqlalchemy.engine import default
|
|
20 | 19 | from sqlalchemy.types import BIGINT
|
21 | 20 | from sqlalchemy.types import VARCHAR
|
22 | 21 | from sqlalchemy.types import INTEGER
|
23 |
| -from sqlalchemy.types import BOOLEAN |
24 | 22 | from sqlalchemy.types import DATE
|
25 | 23 | from sqlalchemy.types import TIMESTAMP
|
26 | 24 | from sqlalchemy.types import TIME
|
27 | 25 | from sqlalchemy.types import NUMERIC
|
28 |
| -from sqlalchemy.types import FLOAT |
29 | 26 | from sqlalchemy.types import BINARY
|
30 | 27 | from sqlalchemy.types import VARBINARY
|
31 | 28 | from sqlalchemy.types import TEXT
|
32 | 29 | from sqlalchemy.types import SMALLINT
|
33 | 30 |
|
| 31 | +from .types import BIT |
| 32 | +from .types import DOUBLE |
| 33 | +from .types import LONGVARCHAR |
| 34 | +from .types import LONGVARBINARY |
| 35 | +from .types import TINYINT |
| 36 | + |
| 37 | +from .types import IRISBoolean |
| 38 | +from .types import IRISTime |
| 39 | +from .types import IRISTimeStamp |
| 40 | +from .types import IRISDate |
| 41 | +from .types import IRISDateTime |
| 42 | + |
34 | 43 | ischema_names = {
|
35 | 44 | "BIGINT": BIGINT,
|
36 |
| - "VARCHAR": VARCHAR, |
37 |
| - "INTEGER": INTEGER, |
38 |
| - "BIT": BOOLEAN, |
| 45 | + "BIT": BIT, |
39 | 46 | "DATE": DATE,
|
40 |
| - "TIMESTAMP": TIMESTAMP, |
| 47 | + "DOUBLE": DOUBLE, |
| 48 | + "INTEGER": INTEGER, |
| 49 | + "LONGVARBINARY": LONGVARBINARY, |
| 50 | + "LONGVARCHAR": LONGVARCHAR, |
41 | 51 | "NUMERIC": NUMERIC,
|
42 |
| - "DOUBLE": FLOAT, |
43 |
| - "VARBINARY": BINARY, |
44 |
| - "LONGVARCHAR": TEXT, |
45 |
| - "LONGVARBINARY": VARBINARY, |
46 |
| - "TIME": TIME, |
47 | 52 | "SMALLINT": SMALLINT,
|
48 |
| - "TINYINT": SMALLINT, |
| 53 | + "TIME": TIME, |
| 54 | + "TIMESTAMP": TIMESTAMP, |
| 55 | + "TINYINT": TINYINT, |
| 56 | + "VARBINARY": VARBINARY, |
| 57 | + "VARCHAR": VARCHAR, |
49 | 58 | }
|
50 | 59 |
|
51 | 60 | RESERVED_WORDS = set(
|
@@ -646,8 +655,14 @@ def visit_create_index(
|
646 | 655 |
|
647 | 656 | class IRISTypeCompiler(compiler.GenericTypeCompiler):
|
648 | 657 | def visit_boolean(self, type_, **kw):
|
| 658 | + return self.visit_BIT(type_) |
| 659 | + |
| 660 | + def visit_BIT(self, type_, **kw): |
649 | 661 | return "BIT"
|
650 | 662 |
|
| 663 | + def visit_TEXT(self, type_, **kw): |
| 664 | + return "VARCHAR(65535)" |
| 665 | + |
651 | 666 |
|
652 | 667 | class IRISIdentifierPreparer(sql.compiler.IdentifierPreparer):
|
653 | 668 | """Install IRIS specific reserved words."""
|
@@ -699,11 +714,11 @@ def create_cursor(self):
|
699 | 714 |
|
700 | 715 |
|
701 | 716 | colspecs = {
|
702 |
| - sqltypes.Boolean: types.IRISBoolean, |
703 |
| - sqltypes.Date: types.IRISDate, |
704 |
| - sqltypes.DateTime: types.IRISDateTime, |
705 |
| - sqltypes.TIMESTAMP: types.IRISTimeStamp, |
706 |
| - sqltypes.Time: types.IRISTime, |
| 717 | + sqltypes.Boolean: IRISBoolean, |
| 718 | + sqltypes.Date: IRISDate, |
| 719 | + sqltypes.DateTime: IRISDateTime, |
| 720 | + sqltypes.TIMESTAMP: IRISTimeStamp, |
| 721 | + sqltypes.Time: IRISTime, |
707 | 722 | }
|
708 | 723 |
|
709 | 724 |
|
|
0 commit comments