Skip to content

Type f not supported when selected data with column of type float #76

@kinvaris

Description

@kinvaris

Description

When creating a table with datatype float, this is not supported by the python library immudb-py.
As seen below.

Problem is present in the following file: https://github.com/codenotary/immudb-py/blob/master/immudb/typeconv.py#L29

Issue type

Bug

Overview

Table format:

CREATE DATABASE IF NOT EXISTS test;
CREATE TABLE IF NOT EXISTS products (
    id INTEGER AUTO_INCREMENT,
    product_name VARCHAR[100],
    price FLOAT,
    category_id INTEGER,
    barkeeper_percentage INTEGER,
    PRIMARY KEY (id)
);

Test data:

INSERT INTO products (product_name, price, category_id, barkeeper_percentage) VALUES
('Mojito', 12.50, 1, 10),
('Old Fashioned', 15.00, 1, 12),
('IPA Beer', 7.50, 2, 8),
('Merlot Wine', 10.00, 3, 10),
('Coke', 3.00, 4, 5);

Exception:

In [5]: client.sqlQuery("SELECT * FROM products",columnNameMode=True)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[5], line 1
----> 1 client.sqlQuery("SELECT * FROM products",columnNameMode=True)

File /usr/local/lib/python3.10/site-packages/immudb/client.py:1632, in ImmudbClient.sqlQuery(self, query, params, columnNameMode, acceptStream)
   1629 if acceptStream:
   1630     return it
-> 1632 return list(it)

File /usr/local/lib/python3.10/site-packages/immudb/handler/sqlquery.py:109, in RowIterator.__next__(self)
    108 def __next__(self):
--> 109     self._fetch_next()
    111     row = self._rows[self._nextRow]
    112     self._nextRow = self._nextRow+1

File /usr/local/lib/python3.10/site-packages/immudb/handler/sqlquery.py:126, in RowIterator._fetch_next(self)
    123 if self._columns == None:
    124     self._columns = getColumnNames(res, self._dbname, self._colsMode())
--> 126 self._rows = unpack_rows(
    127     res, self._colNameMode, self._columns)
    128 self._nextRow = 0
    130 if len(self._rows) == 0:

File /usr/local/lib/python3.10/site-packages/immudb/handler/sqlquery.py:55, in unpack_rows(resp, columnNameMode, colNames)
     52         result.append(tuple([sqlvalue_to_py(i) for i in row.values]))
     53     else:
     54         result.append(
---> 55             dict(zip(colNames, tuple([sqlvalue_to_py(i) for i in row.values]))))
     56 return result

File /usr/local/lib/python3.10/site-packages/immudb/handler/sqlquery.py:55, in <listcomp>(.0)
     52         result.append(tuple([sqlvalue_to_py(i) for i in row.values]))
     53     else:
     54         result.append(
---> 55             dict(zip(colNames, tuple([sqlvalue_to_py(i) for i in row.values]))))
     56 return result

File /usr/local/lib/python3.10/site-packages/immudb/typeconv.py:43, in sqlvalue_to_py(sqlValue)
     41     return None
     42 else:
---> 43     raise TypeError("Type not supported: {}".format(
     44         sqlValue.WhichOneof("value")))

TypeError: Type not supported: f

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions