File: field.py

package info (click to toggle)
mariadb-connector-python 1.1.12-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 812 kB
  • sloc: python: 6,099; ansic: 4,896; sh: 23; makefile: 14
file content (59 lines) | stat: -rw-r--r-- 2,363 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from mariadb.constants import FIELD_TYPE, FIELD_FLAG

field_types = {FIELD_TYPE.DECIMAL: "DECIMAL",
               FIELD_TYPE.TINY:  "TINY",
               FIELD_TYPE.SHORT: "SHORT",
               FIELD_TYPE.LONG: "LONG",
               FIELD_TYPE.FLOAT: "FLOAT",
               FIELD_TYPE.DOUBLE: "DOUBLE",
               FIELD_TYPE.NULL: "NULL",
               FIELD_TYPE.TIMESTAMP: "TIMESTAMP",
               FIELD_TYPE.LONGLONG: "LONGLONG",
               FIELD_TYPE.INT24: "INT24",
               FIELD_TYPE.DATE: "DATE",
               FIELD_TYPE.TIME: "TIME",
               FIELD_TYPE.DATETIME: "DATETIME",
               FIELD_TYPE.YEAR: "YEAR",
               FIELD_TYPE.NEWDATE: "NEWDATE",
               FIELD_TYPE.VARCHAR: "VARCHAR",
               FIELD_TYPE.BIT: "BIT",
               FIELD_TYPE.JSON: "JSON",
               FIELD_TYPE.NEWDECIMAL: "NEWDECIMAL",
               FIELD_TYPE.ENUM: "ENUM",
               FIELD_TYPE.SET: "SET",
               FIELD_TYPE.TINY_BLOB: "TINY_BLOB",
               FIELD_TYPE.MEDIUM_BLOB: "MEDIUM_BLOB",
               FIELD_TYPE.LONG_BLOB: "LONG_BLOB",
               FIELD_TYPE.BLOB: "BLOB",
               FIELD_TYPE.VAR_STRING: "VAR_STRING",
               FIELD_TYPE.STRING: "STRING",
               FIELD_TYPE.GEOMETRY: "GEOMETRY"}

field_flags = {FIELD_FLAG.NOT_NULL: "NOT_NULL",
               FIELD_FLAG.PRIMARY_KEY: "PRIMARY_KEY",
               FIELD_FLAG.UNIQUE_KEY: "UNIQUE_KEY",
               FIELD_FLAG.MULTIPLE_KEY: "PART_KEY",
               FIELD_FLAG.BLOB: "BLOB",
               FIELD_FLAG.UNSIGNED: "UNSIGNED",
               FIELD_FLAG.ZEROFILL: "ZEROFILL",
               FIELD_FLAG.BINARY: "BINARY",
               FIELD_FLAG.ENUM: "NUMERIC",
               FIELD_FLAG.AUTO_INCREMENT: "AUTO_INCREMENT",
               FIELD_FLAG.TIMESTAMP: "TIMESTAMP",
               FIELD_FLAG.SET: "SET",
               FIELD_FLAG.NO_DEFAULT: "NO_DEFAULT",
               FIELD_FLAG.ON_UPDATE_NOW: "UPDATE_TIMESTAMP",
               FIELD_FLAG.NUMERIC: "NUMERIC"}


class fieldinfo():

    def type(self, description):
        if description[1] in field_types:
            return field_types[description[1]]
        return None

    def flag(self, description):
        flags = [field_flags[f] for f in field_flags.keys()
                 if description[7] & f]
        return " | ".join(flags)