Esempio n. 1
0
 def test_xfield_types(self):
     cursor = self.connection.cursor()
     fieldinfo = mariadb.fieldinfo()
     cursor.execute(
         "CREATE TEMPORARY TABLE test_xfield_types (a tinyint not null auto_increment primary "
         "key, b smallint, c int, d bigint, e float, f decimal, g double, h char(10), i varchar(255), j blob, k json, index(b))");
     info = cursor.description
     self.assertEqual(info, None)
     cursor.execute("SELECT * FROM test_xfield_types")
     info = cursor.description
     self.assertEqual(fieldinfo.type(info[0]), "TINY")
     self.assertEqual(fieldinfo.type(info[1]), "SHORT")
     self.assertEqual(fieldinfo.type(info[2]), "LONG")
     self.assertEqual(fieldinfo.type(info[3]), "LONGLONG")
     self.assertEqual(fieldinfo.type(info[4]), "FLOAT")
     self.assertEqual(fieldinfo.type(info[5]), "NEWDECIMAL")
     self.assertEqual(fieldinfo.type(info[6]), "DOUBLE")
     self.assertEqual(fieldinfo.type(info[7]), "STRING")
     self.assertEqual(fieldinfo.type(info[8]), "VAR_STRING")
     self.assertEqual(fieldinfo.type(info[9]), "BLOB")
     if self.connection.server_version_info > (10, 5, 1) or is_mysql():
         self.assertEqual(fieldinfo.type(info[10]), "JSON")
     else:
         self.assertEqual(fieldinfo.type(info[10]), "BLOB")
     self.assertEqual(fieldinfo.flag(info[0]),
                      "NOT_NULL | PRIMARY_KEY | AUTO_INCREMENT | NUMERIC")
     self.assertEqual(fieldinfo.flag(info[1]), "PART_KEY | NUMERIC")
     self.assertEqual(fieldinfo.flag(info[9]), "BLOB | BINARY")
     del cursor
Esempio n. 2
0
    def get_field_info(self, cur):
        """Retrieves the field info associated with a cursor"""

        field_info = mariadb.fieldinfo()

        field_info_text = []

        # Retrieve Column Information
        for column in cur.description:
            column_name = column[0]
            #column_type = field_info.type(column)
            #column_flags = field_info.flag(column)

            #field_info_text.append(f"{column_name}: {column_type} {column_flags}")
            field_info_text.append(column_name)
        return field_info_text