Merge pull request #5430 from taosdata/hotfix/sangshuduo/TD-3288-python-bigint-bug-on-32bit
Hotfix/sangshuduo/td 3288 python bigint bug on 32bit
This commit is contained in:
commit
0cbc5ce023
|
@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
|
||||||
|
|
||||||
setuptools.setup(
|
setuptools.setup(
|
||||||
name="taos",
|
name="taos",
|
||||||
version="2.0.6",
|
version="2.0.7",
|
||||||
author="Taosdata Inc.",
|
author="Taosdata Inc.",
|
||||||
author_email="support@taosdata.com",
|
author_email="support@taosdata.com",
|
||||||
description="TDengine python client package",
|
description="TDengine python client package",
|
||||||
|
|
|
@ -22,10 +22,10 @@ def _crow_timestamp_to_python(data, num_of_rows, nbytes=None, micro=False):
|
||||||
|
|
||||||
if num_of_rows > 0:
|
if num_of_rows > 0:
|
||||||
return list(map(_timestamp_converter, ctypes.cast(
|
return list(map(_timestamp_converter, ctypes.cast(
|
||||||
data, ctypes.POINTER(ctypes.c_long))[:abs(num_of_rows)]))
|
data, ctypes.POINTER(ctypes.c_int64))[:abs(num_of_rows)]))
|
||||||
else:
|
else:
|
||||||
return list(map(_timestamp_converter, ctypes.cast(
|
return list(map(_timestamp_converter, ctypes.cast(
|
||||||
data, ctypes.POINTER(ctypes.c_long))[:abs(num_of_rows)]))
|
data, ctypes.POINTER(ctypes.c_int64))[:abs(num_of_rows)]))
|
||||||
|
|
||||||
|
|
||||||
def _crow_bool_to_python(data, num_of_rows, nbytes=None, micro=False):
|
def _crow_bool_to_python(data, num_of_rows, nbytes=None, micro=False):
|
||||||
|
@ -145,10 +145,10 @@ def _crow_bigint_to_python(data, num_of_rows, nbytes=None, micro=False):
|
||||||
"""
|
"""
|
||||||
if num_of_rows > 0:
|
if num_of_rows > 0:
|
||||||
return [None if ele == FieldType.C_BIGINT_NULL else ele for ele in ctypes.cast(
|
return [None if ele == FieldType.C_BIGINT_NULL else ele for ele in ctypes.cast(
|
||||||
data, ctypes.POINTER(ctypes.c_long))[:abs(num_of_rows)]]
|
data, ctypes.POINTER(ctypes.c_int64))[:abs(num_of_rows)]]
|
||||||
else:
|
else:
|
||||||
return [None if ele == FieldType.C_BIGINT_NULL else ele for ele in ctypes.cast(
|
return [None if ele == FieldType.C_BIGINT_NULL else ele for ele in ctypes.cast(
|
||||||
data, ctypes.POINTER(ctypes.c_long))[:abs(num_of_rows)]]
|
data, ctypes.POINTER(ctypes.c_int64))[:abs(num_of_rows)]]
|
||||||
|
|
||||||
|
|
||||||
def _crow_bigint_unsigned_to_python(
|
def _crow_bigint_unsigned_to_python(
|
||||||
|
@ -162,13 +162,13 @@ def _crow_bigint_unsigned_to_python(
|
||||||
return [
|
return [
|
||||||
None if ele == FieldType.C_BIGINT_UNSIGNED_NULL else ele for ele in ctypes.cast(
|
None if ele == FieldType.C_BIGINT_UNSIGNED_NULL else ele for ele in ctypes.cast(
|
||||||
data, ctypes.POINTER(
|
data, ctypes.POINTER(
|
||||||
ctypes.c_ulong))[
|
ctypes.c_uint64))[
|
||||||
:abs(num_of_rows)]]
|
:abs(num_of_rows)]]
|
||||||
else:
|
else:
|
||||||
return [
|
return [
|
||||||
None if ele == FieldType.C_BIGINT_UNSIGNED_NULL else ele for ele in ctypes.cast(
|
None if ele == FieldType.C_BIGINT_UNSIGNED_NULL else ele for ele in ctypes.cast(
|
||||||
data, ctypes.POINTER(
|
data, ctypes.POINTER(
|
||||||
ctypes.c_ulong))[
|
ctypes.c_uint64))[
|
||||||
:abs(num_of_rows)]]
|
:abs(num_of_rows)]]
|
||||||
|
|
||||||
|
|
||||||
|
@ -600,7 +600,7 @@ class CTaosInterface(object):
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_INT):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_INT):
|
||||||
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_int))[0]
|
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_int))[0]
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_BIGINT):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_BIGINT):
|
||||||
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_long))[0]
|
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_int64))[0]
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_FLOAT):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_FLOAT):
|
||||||
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_float))[0]
|
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_float))[0]
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_DOUBLE):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_DOUBLE):
|
||||||
|
@ -608,7 +608,7 @@ class CTaosInterface(object):
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_BINARY):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_BINARY):
|
||||||
# return (ctypes.cast(data, ctypes.POINTER(ctypes.c_char))[0:byte]).rstrip('\x00')
|
# return (ctypes.cast(data, ctypes.POINTER(ctypes.c_char))[0:byte]).rstrip('\x00')
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_TIMESTAMP):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_TIMESTAMP):
|
||||||
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_long))[0]
|
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_int64))[0]
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_NCHAR):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_NCHAR):
|
||||||
# return (ctypes.cast(data, ctypes.c_char_p).value).rstrip('\x00')
|
# return (ctypes.cast(data, ctypes.c_char_p).value).rstrip('\x00')
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
|
||||||
|
|
||||||
setuptools.setup(
|
setuptools.setup(
|
||||||
name="taos",
|
name="taos",
|
||||||
version="2.0.5",
|
version="2.0.7",
|
||||||
author="Taosdata Inc.",
|
author="Taosdata Inc.",
|
||||||
author_email="support@taosdata.com",
|
author_email="support@taosdata.com",
|
||||||
description="TDengine python client package",
|
description="TDengine python client package",
|
||||||
|
|
|
@ -22,10 +22,10 @@ def _crow_timestamp_to_python(data, num_of_rows, nbytes=None, micro=False):
|
||||||
|
|
||||||
if num_of_rows > 0:
|
if num_of_rows > 0:
|
||||||
return list(map(_timestamp_converter, ctypes.cast(
|
return list(map(_timestamp_converter, ctypes.cast(
|
||||||
data, ctypes.POINTER(ctypes.c_long))[:abs(num_of_rows)]))
|
data, ctypes.POINTER(ctypes.c_int64))[:abs(num_of_rows)]))
|
||||||
else:
|
else:
|
||||||
return list(map(_timestamp_converter, ctypes.cast(
|
return list(map(_timestamp_converter, ctypes.cast(
|
||||||
data, ctypes.POINTER(ctypes.c_long))[:abs(num_of_rows)]))
|
data, ctypes.POINTER(ctypes.c_int64))[:abs(num_of_rows)]))
|
||||||
|
|
||||||
|
|
||||||
def _crow_bool_to_python(data, num_of_rows, nbytes=None, micro=False):
|
def _crow_bool_to_python(data, num_of_rows, nbytes=None, micro=False):
|
||||||
|
@ -145,10 +145,10 @@ def _crow_bigint_to_python(data, num_of_rows, nbytes=None, micro=False):
|
||||||
"""
|
"""
|
||||||
if num_of_rows > 0:
|
if num_of_rows > 0:
|
||||||
return [None if ele == FieldType.C_BIGINT_NULL else ele for ele in ctypes.cast(
|
return [None if ele == FieldType.C_BIGINT_NULL else ele for ele in ctypes.cast(
|
||||||
data, ctypes.POINTER(ctypes.c_long))[:abs(num_of_rows)]]
|
data, ctypes.POINTER(ctypes.c_int64))[:abs(num_of_rows)]]
|
||||||
else:
|
else:
|
||||||
return [None if ele == FieldType.C_BIGINT_NULL else ele for ele in ctypes.cast(
|
return [None if ele == FieldType.C_BIGINT_NULL else ele for ele in ctypes.cast(
|
||||||
data, ctypes.POINTER(ctypes.c_long))[:abs(num_of_rows)]]
|
data, ctypes.POINTER(ctypes.c_int64))[:abs(num_of_rows)]]
|
||||||
|
|
||||||
|
|
||||||
def _crow_bigint_unsigned_to_python(
|
def _crow_bigint_unsigned_to_python(
|
||||||
|
@ -162,13 +162,13 @@ def _crow_bigint_unsigned_to_python(
|
||||||
return [
|
return [
|
||||||
None if ele == FieldType.C_BIGINT_UNSIGNED_NULL else ele for ele in ctypes.cast(
|
None if ele == FieldType.C_BIGINT_UNSIGNED_NULL else ele for ele in ctypes.cast(
|
||||||
data, ctypes.POINTER(
|
data, ctypes.POINTER(
|
||||||
ctypes.c_ulong))[
|
ctypes.c_uint64))[
|
||||||
:abs(num_of_rows)]]
|
:abs(num_of_rows)]]
|
||||||
else:
|
else:
|
||||||
return [
|
return [
|
||||||
None if ele == FieldType.C_BIGINT_UNSIGNED_NULL else ele for ele in ctypes.cast(
|
None if ele == FieldType.C_BIGINT_UNSIGNED_NULL else ele for ele in ctypes.cast(
|
||||||
data, ctypes.POINTER(
|
data, ctypes.POINTER(
|
||||||
ctypes.c_ulong))[
|
ctypes.c_uint64))[
|
||||||
:abs(num_of_rows)]]
|
:abs(num_of_rows)]]
|
||||||
|
|
||||||
|
|
||||||
|
@ -600,7 +600,7 @@ class CTaosInterface(object):
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_INT):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_INT):
|
||||||
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_int))[0]
|
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_int))[0]
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_BIGINT):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_BIGINT):
|
||||||
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_long))[0]
|
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_int64))[0]
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_FLOAT):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_FLOAT):
|
||||||
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_float))[0]
|
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_float))[0]
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_DOUBLE):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_DOUBLE):
|
||||||
|
@ -608,7 +608,7 @@ class CTaosInterface(object):
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_BINARY):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_BINARY):
|
||||||
# return (ctypes.cast(data, ctypes.POINTER(ctypes.c_char))[0:byte]).rstrip('\x00')
|
# return (ctypes.cast(data, ctypes.POINTER(ctypes.c_char))[0:byte]).rstrip('\x00')
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_TIMESTAMP):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_TIMESTAMP):
|
||||||
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_long))[0]
|
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_int64))[0]
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_NCHAR):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_NCHAR):
|
||||||
# return (ctypes.cast(data, ctypes.c_char_p).value).rstrip('\x00')
|
# return (ctypes.cast(data, ctypes.c_char_p).value).rstrip('\x00')
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
from .cinterface import CTaosInterface
|
from .cinterface import CTaosInterface
|
||||||
from .error import *
|
from .error import *
|
||||||
from .constants import FieldType
|
from .constants import FieldType
|
||||||
import threading
|
|
||||||
|
|
||||||
# querySeqNum = 0
|
# querySeqNum = 0
|
||||||
|
|
||||||
|
@ -38,7 +37,6 @@ class TDengineCursor(object):
|
||||||
self._block_iter = 0
|
self._block_iter = 0
|
||||||
self._affected_rows = 0
|
self._affected_rows = 0
|
||||||
self._logfile = ""
|
self._logfile = ""
|
||||||
self._threadId = threading.get_ident()
|
|
||||||
|
|
||||||
if connection is not None:
|
if connection is not None:
|
||||||
self._connection = connection
|
self._connection = connection
|
||||||
|
@ -105,12 +103,6 @@ class TDengineCursor(object):
|
||||||
def execute(self, operation, params=None):
|
def execute(self, operation, params=None):
|
||||||
"""Prepare and execute a database operation (query or command).
|
"""Prepare and execute a database operation (query or command).
|
||||||
"""
|
"""
|
||||||
# if threading.get_ident() != self._threadId:
|
|
||||||
# info ="Cursor execute:Thread ID not match,creater:"+str(self._threadId)+" caller:"+str(threading.get_ident())
|
|
||||||
# raise OperationalError(info)
|
|
||||||
# print(info)
|
|
||||||
# return None
|
|
||||||
|
|
||||||
if not operation:
|
if not operation:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@ -280,12 +272,6 @@ class TDengineCursor(object):
|
||||||
def _handle_result(self):
|
def _handle_result(self):
|
||||||
"""Handle the return result from query.
|
"""Handle the return result from query.
|
||||||
"""
|
"""
|
||||||
# if threading.get_ident() != self._threadId:
|
|
||||||
# info = "Cursor handleresult:Thread ID not match,creater:"+str(self._threadId)+" caller:"+str(threading.get_ident())
|
|
||||||
# raise OperationalError(info)
|
|
||||||
# print(info)
|
|
||||||
# return None
|
|
||||||
|
|
||||||
self._description = []
|
self._description = []
|
||||||
for ele in self._fields:
|
for ele in self._fields:
|
||||||
self._description.append(
|
self._description.append(
|
||||||
|
|
|
@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
|
||||||
|
|
||||||
setuptools.setup(
|
setuptools.setup(
|
||||||
name="taos",
|
name="taos",
|
||||||
version="2.0.5",
|
version="2.0.7",
|
||||||
author="Taosdata Inc.",
|
author="Taosdata Inc.",
|
||||||
author_email="support@taosdata.com",
|
author_email="support@taosdata.com",
|
||||||
description="TDengine python client package",
|
description="TDengine python client package",
|
||||||
|
|
|
@ -22,10 +22,10 @@ def _crow_timestamp_to_python(data, num_of_rows, nbytes=None, micro=False):
|
||||||
|
|
||||||
if num_of_rows > 0:
|
if num_of_rows > 0:
|
||||||
return list(map(_timestamp_converter, ctypes.cast(
|
return list(map(_timestamp_converter, ctypes.cast(
|
||||||
data, ctypes.POINTER(ctypes.c_long))[:abs(num_of_rows)]))
|
data, ctypes.POINTER(ctypes.c_int64))[:abs(num_of_rows)]))
|
||||||
else:
|
else:
|
||||||
return list(map(_timestamp_converter, ctypes.cast(
|
return list(map(_timestamp_converter, ctypes.cast(
|
||||||
data, ctypes.POINTER(ctypes.c_long))[:abs(num_of_rows)]))
|
data, ctypes.POINTER(ctypes.c_int64))[:abs(num_of_rows)]))
|
||||||
|
|
||||||
|
|
||||||
def _crow_bool_to_python(data, num_of_rows, nbytes=None, micro=False):
|
def _crow_bool_to_python(data, num_of_rows, nbytes=None, micro=False):
|
||||||
|
@ -145,10 +145,10 @@ def _crow_bigint_to_python(data, num_of_rows, nbytes=None, micro=False):
|
||||||
"""
|
"""
|
||||||
if num_of_rows > 0:
|
if num_of_rows > 0:
|
||||||
return [None if ele == FieldType.C_BIGINT_NULL else ele for ele in ctypes.cast(
|
return [None if ele == FieldType.C_BIGINT_NULL else ele for ele in ctypes.cast(
|
||||||
data, ctypes.POINTER(ctypes.c_long))[:abs(num_of_rows)]]
|
data, ctypes.POINTER(ctypes.c_int64))[:abs(num_of_rows)]]
|
||||||
else:
|
else:
|
||||||
return [None if ele == FieldType.C_BIGINT_NULL else ele for ele in ctypes.cast(
|
return [None if ele == FieldType.C_BIGINT_NULL else ele for ele in ctypes.cast(
|
||||||
data, ctypes.POINTER(ctypes.c_long))[:abs(num_of_rows)]]
|
data, ctypes.POINTER(ctypes.c_int64))[:abs(num_of_rows)]]
|
||||||
|
|
||||||
|
|
||||||
def _crow_bigint_unsigned_to_python(
|
def _crow_bigint_unsigned_to_python(
|
||||||
|
@ -162,13 +162,13 @@ def _crow_bigint_unsigned_to_python(
|
||||||
return [
|
return [
|
||||||
None if ele == FieldType.C_BIGINT_UNSIGNED_NULL else ele for ele in ctypes.cast(
|
None if ele == FieldType.C_BIGINT_UNSIGNED_NULL else ele for ele in ctypes.cast(
|
||||||
data, ctypes.POINTER(
|
data, ctypes.POINTER(
|
||||||
ctypes.c_ulong))[
|
ctypes.c_uint64))[
|
||||||
:abs(num_of_rows)]]
|
:abs(num_of_rows)]]
|
||||||
else:
|
else:
|
||||||
return [
|
return [
|
||||||
None if ele == FieldType.C_BIGINT_UNSIGNED_NULL else ele for ele in ctypes.cast(
|
None if ele == FieldType.C_BIGINT_UNSIGNED_NULL else ele for ele in ctypes.cast(
|
||||||
data, ctypes.POINTER(
|
data, ctypes.POINTER(
|
||||||
ctypes.c_ulong))[
|
ctypes.c_uint64))[
|
||||||
:abs(num_of_rows)]]
|
:abs(num_of_rows)]]
|
||||||
|
|
||||||
|
|
||||||
|
@ -600,7 +600,7 @@ class CTaosInterface(object):
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_INT):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_INT):
|
||||||
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_int))[0]
|
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_int))[0]
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_BIGINT):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_BIGINT):
|
||||||
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_long))[0]
|
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_int64))[0]
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_FLOAT):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_FLOAT):
|
||||||
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_float))[0]
|
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_float))[0]
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_DOUBLE):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_DOUBLE):
|
||||||
|
@ -608,7 +608,7 @@ class CTaosInterface(object):
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_BINARY):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_BINARY):
|
||||||
# return (ctypes.cast(data, ctypes.POINTER(ctypes.c_char))[0:byte]).rstrip('\x00')
|
# return (ctypes.cast(data, ctypes.POINTER(ctypes.c_char))[0:byte]).rstrip('\x00')
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_TIMESTAMP):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_TIMESTAMP):
|
||||||
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_long))[0]
|
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_int64))[0]
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_NCHAR):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_NCHAR):
|
||||||
# return (ctypes.cast(data, ctypes.c_char_p).value).rstrip('\x00')
|
# return (ctypes.cast(data, ctypes.c_char_p).value).rstrip('\x00')
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
from .cinterface import CTaosInterface
|
from .cinterface import CTaosInterface
|
||||||
from .error import *
|
from .error import *
|
||||||
from .constants import FieldType
|
from .constants import FieldType
|
||||||
import threading
|
|
||||||
|
|
||||||
# querySeqNum = 0
|
# querySeqNum = 0
|
||||||
|
|
||||||
|
@ -38,7 +37,6 @@ class TDengineCursor(object):
|
||||||
self._block_iter = 0
|
self._block_iter = 0
|
||||||
self._affected_rows = 0
|
self._affected_rows = 0
|
||||||
self._logfile = ""
|
self._logfile = ""
|
||||||
self._threadId = threading.get_ident()
|
|
||||||
|
|
||||||
if connection is not None:
|
if connection is not None:
|
||||||
self._connection = connection
|
self._connection = connection
|
||||||
|
@ -105,12 +103,6 @@ class TDengineCursor(object):
|
||||||
def execute(self, operation, params=None):
|
def execute(self, operation, params=None):
|
||||||
"""Prepare and execute a database operation (query or command).
|
"""Prepare and execute a database operation (query or command).
|
||||||
"""
|
"""
|
||||||
# if threading.get_ident() != self._threadId:
|
|
||||||
# info ="Cursor execute:Thread ID not match,creater:"+str(self._threadId)+" caller:"+str(threading.get_ident())
|
|
||||||
# raise OperationalError(info)
|
|
||||||
# print(info)
|
|
||||||
# return None
|
|
||||||
|
|
||||||
if not operation:
|
if not operation:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@ -280,12 +272,6 @@ class TDengineCursor(object):
|
||||||
def _handle_result(self):
|
def _handle_result(self):
|
||||||
"""Handle the return result from query.
|
"""Handle the return result from query.
|
||||||
"""
|
"""
|
||||||
# if threading.get_ident() != self._threadId:
|
|
||||||
# info = "Cursor handleresult:Thread ID not match,creater:"+str(self._threadId)+" caller:"+str(threading.get_ident())
|
|
||||||
# raise OperationalError(info)
|
|
||||||
# print(info)
|
|
||||||
# return None
|
|
||||||
|
|
||||||
self._description = []
|
self._description = []
|
||||||
for ele in self._fields:
|
for ele in self._fields:
|
||||||
self._description.append(
|
self._description.append(
|
||||||
|
|
|
@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
|
||||||
|
|
||||||
setuptools.setup(
|
setuptools.setup(
|
||||||
name="taos",
|
name="taos",
|
||||||
version="2.0.4",
|
version="2.0.7",
|
||||||
author="Taosdata Inc.",
|
author="Taosdata Inc.",
|
||||||
author_email="support@taosdata.com",
|
author_email="support@taosdata.com",
|
||||||
description="TDengine python client package",
|
description="TDengine python client package",
|
||||||
|
|
|
@ -22,10 +22,10 @@ def _crow_timestamp_to_python(data, num_of_rows, nbytes=None, micro=False):
|
||||||
|
|
||||||
if num_of_rows > 0:
|
if num_of_rows > 0:
|
||||||
return list(map(_timestamp_converter, ctypes.cast(
|
return list(map(_timestamp_converter, ctypes.cast(
|
||||||
data, ctypes.POINTER(ctypes.c_long))[:abs(num_of_rows)]))
|
data, ctypes.POINTER(ctypes.c_int64))[:abs(num_of_rows)]))
|
||||||
else:
|
else:
|
||||||
return list(map(_timestamp_converter, ctypes.cast(
|
return list(map(_timestamp_converter, ctypes.cast(
|
||||||
data, ctypes.POINTER(ctypes.c_long))[:abs(num_of_rows)]))
|
data, ctypes.POINTER(ctypes.c_int64))[:abs(num_of_rows)]))
|
||||||
|
|
||||||
|
|
||||||
def _crow_bool_to_python(data, num_of_rows, nbytes=None, micro=False):
|
def _crow_bool_to_python(data, num_of_rows, nbytes=None, micro=False):
|
||||||
|
@ -145,10 +145,10 @@ def _crow_bigint_to_python(data, num_of_rows, nbytes=None, micro=False):
|
||||||
"""
|
"""
|
||||||
if num_of_rows > 0:
|
if num_of_rows > 0:
|
||||||
return [None if ele == FieldType.C_BIGINT_NULL else ele for ele in ctypes.cast(
|
return [None if ele == FieldType.C_BIGINT_NULL else ele for ele in ctypes.cast(
|
||||||
data, ctypes.POINTER(ctypes.c_long))[:abs(num_of_rows)]]
|
data, ctypes.POINTER(ctypes.c_int64))[:abs(num_of_rows)]]
|
||||||
else:
|
else:
|
||||||
return [None if ele == FieldType.C_BIGINT_NULL else ele for ele in ctypes.cast(
|
return [None if ele == FieldType.C_BIGINT_NULL else ele for ele in ctypes.cast(
|
||||||
data, ctypes.POINTER(ctypes.c_long))[:abs(num_of_rows)]]
|
data, ctypes.POINTER(ctypes.c_int64))[:abs(num_of_rows)]]
|
||||||
|
|
||||||
|
|
||||||
def _crow_bigint_unsigned_to_python(
|
def _crow_bigint_unsigned_to_python(
|
||||||
|
@ -162,13 +162,13 @@ def _crow_bigint_unsigned_to_python(
|
||||||
return [
|
return [
|
||||||
None if ele == FieldType.C_BIGINT_UNSIGNED_NULL else ele for ele in ctypes.cast(
|
None if ele == FieldType.C_BIGINT_UNSIGNED_NULL else ele for ele in ctypes.cast(
|
||||||
data, ctypes.POINTER(
|
data, ctypes.POINTER(
|
||||||
ctypes.c_ulong))[
|
ctypes.c_uint64))[
|
||||||
:abs(num_of_rows)]]
|
:abs(num_of_rows)]]
|
||||||
else:
|
else:
|
||||||
return [
|
return [
|
||||||
None if ele == FieldType.C_BIGINT_UNSIGNED_NULL else ele for ele in ctypes.cast(
|
None if ele == FieldType.C_BIGINT_UNSIGNED_NULL else ele for ele in ctypes.cast(
|
||||||
data, ctypes.POINTER(
|
data, ctypes.POINTER(
|
||||||
ctypes.c_ulong))[
|
ctypes.c_uint64))[
|
||||||
:abs(num_of_rows)]]
|
:abs(num_of_rows)]]
|
||||||
|
|
||||||
|
|
||||||
|
@ -600,7 +600,7 @@ class CTaosInterface(object):
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_INT):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_INT):
|
||||||
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_int))[0]
|
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_int))[0]
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_BIGINT):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_BIGINT):
|
||||||
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_long))[0]
|
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_int64))[0]
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_FLOAT):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_FLOAT):
|
||||||
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_float))[0]
|
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_float))[0]
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_DOUBLE):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_DOUBLE):
|
||||||
|
@ -608,7 +608,7 @@ class CTaosInterface(object):
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_BINARY):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_BINARY):
|
||||||
# return (ctypes.cast(data, ctypes.POINTER(ctypes.c_char))[0:byte]).rstrip('\x00')
|
# return (ctypes.cast(data, ctypes.POINTER(ctypes.c_char))[0:byte]).rstrip('\x00')
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_TIMESTAMP):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_TIMESTAMP):
|
||||||
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_long))[0]
|
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_int64))[0]
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_NCHAR):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_NCHAR):
|
||||||
# return (ctypes.cast(data, ctypes.c_char_p).value).rstrip('\x00')
|
# return (ctypes.cast(data, ctypes.c_char_p).value).rstrip('\x00')
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
from .cinterface import CTaosInterface
|
from .cinterface import CTaosInterface
|
||||||
from .error import *
|
from .error import *
|
||||||
from .constants import FieldType
|
from .constants import FieldType
|
||||||
import threading
|
|
||||||
|
|
||||||
# querySeqNum = 0
|
# querySeqNum = 0
|
||||||
|
|
||||||
|
@ -38,7 +37,6 @@ class TDengineCursor(object):
|
||||||
self._block_iter = 0
|
self._block_iter = 0
|
||||||
self._affected_rows = 0
|
self._affected_rows = 0
|
||||||
self._logfile = ""
|
self._logfile = ""
|
||||||
self._threadId = threading.get_ident()
|
|
||||||
|
|
||||||
if connection is not None:
|
if connection is not None:
|
||||||
self._connection = connection
|
self._connection = connection
|
||||||
|
|
|
@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
|
||||||
|
|
||||||
setuptools.setup(
|
setuptools.setup(
|
||||||
name="taos",
|
name="taos",
|
||||||
version="2.0.4",
|
version="2.0.7",
|
||||||
author="Taosdata Inc.",
|
author="Taosdata Inc.",
|
||||||
author_email="support@taosdata.com",
|
author_email="support@taosdata.com",
|
||||||
description="TDengine python client package",
|
description="TDengine python client package",
|
||||||
|
|
|
@ -22,10 +22,10 @@ def _crow_timestamp_to_python(data, num_of_rows, nbytes=None, micro=False):
|
||||||
|
|
||||||
if num_of_rows > 0:
|
if num_of_rows > 0:
|
||||||
return list(map(_timestamp_converter, ctypes.cast(
|
return list(map(_timestamp_converter, ctypes.cast(
|
||||||
data, ctypes.POINTER(ctypes.c_long))[:abs(num_of_rows)]))
|
data, ctypes.POINTER(ctypes.c_int64))[:abs(num_of_rows)]))
|
||||||
else:
|
else:
|
||||||
return list(map(_timestamp_converter, ctypes.cast(
|
return list(map(_timestamp_converter, ctypes.cast(
|
||||||
data, ctypes.POINTER(ctypes.c_long))[:abs(num_of_rows)]))
|
data, ctypes.POINTER(ctypes.c_int64))[:abs(num_of_rows)]))
|
||||||
|
|
||||||
|
|
||||||
def _crow_bool_to_python(data, num_of_rows, nbytes=None, micro=False):
|
def _crow_bool_to_python(data, num_of_rows, nbytes=None, micro=False):
|
||||||
|
@ -145,10 +145,10 @@ def _crow_bigint_to_python(data, num_of_rows, nbytes=None, micro=False):
|
||||||
"""
|
"""
|
||||||
if num_of_rows > 0:
|
if num_of_rows > 0:
|
||||||
return [None if ele == FieldType.C_BIGINT_NULL else ele for ele in ctypes.cast(
|
return [None if ele == FieldType.C_BIGINT_NULL else ele for ele in ctypes.cast(
|
||||||
data, ctypes.POINTER(ctypes.c_long))[:abs(num_of_rows)]]
|
data, ctypes.POINTER(ctypes.c_int64))[:abs(num_of_rows)]]
|
||||||
else:
|
else:
|
||||||
return [None if ele == FieldType.C_BIGINT_NULL else ele for ele in ctypes.cast(
|
return [None if ele == FieldType.C_BIGINT_NULL else ele for ele in ctypes.cast(
|
||||||
data, ctypes.POINTER(ctypes.c_long))[:abs(num_of_rows)]]
|
data, ctypes.POINTER(ctypes.c_int64))[:abs(num_of_rows)]]
|
||||||
|
|
||||||
|
|
||||||
def _crow_bigint_unsigned_to_python(
|
def _crow_bigint_unsigned_to_python(
|
||||||
|
@ -162,13 +162,13 @@ def _crow_bigint_unsigned_to_python(
|
||||||
return [
|
return [
|
||||||
None if ele == FieldType.C_BIGINT_UNSIGNED_NULL else ele for ele in ctypes.cast(
|
None if ele == FieldType.C_BIGINT_UNSIGNED_NULL else ele for ele in ctypes.cast(
|
||||||
data, ctypes.POINTER(
|
data, ctypes.POINTER(
|
||||||
ctypes.c_ulong))[
|
ctypes.c_uint64))[
|
||||||
:abs(num_of_rows)]]
|
:abs(num_of_rows)]]
|
||||||
else:
|
else:
|
||||||
return [
|
return [
|
||||||
None if ele == FieldType.C_BIGINT_UNSIGNED_NULL else ele for ele in ctypes.cast(
|
None if ele == FieldType.C_BIGINT_UNSIGNED_NULL else ele for ele in ctypes.cast(
|
||||||
data, ctypes.POINTER(
|
data, ctypes.POINTER(
|
||||||
ctypes.c_ulong))[
|
ctypes.c_uint64))[
|
||||||
:abs(num_of_rows)]]
|
:abs(num_of_rows)]]
|
||||||
|
|
||||||
|
|
||||||
|
@ -600,7 +600,7 @@ class CTaosInterface(object):
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_INT):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_INT):
|
||||||
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_int))[0]
|
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_int))[0]
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_BIGINT):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_BIGINT):
|
||||||
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_long))[0]
|
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_int64))[0]
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_FLOAT):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_FLOAT):
|
||||||
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_float))[0]
|
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_float))[0]
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_DOUBLE):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_DOUBLE):
|
||||||
|
@ -608,7 +608,7 @@ class CTaosInterface(object):
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_BINARY):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_BINARY):
|
||||||
# return (ctypes.cast(data, ctypes.POINTER(ctypes.c_char))[0:byte]).rstrip('\x00')
|
# return (ctypes.cast(data, ctypes.POINTER(ctypes.c_char))[0:byte]).rstrip('\x00')
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_TIMESTAMP):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_TIMESTAMP):
|
||||||
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_long))[0]
|
# return ctypes.cast(data, ctypes.POINTER(ctypes.c_int64))[0]
|
||||||
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_NCHAR):
|
# elif (dtype == CTaosInterface.TSDB_DATA_TYPE_NCHAR):
|
||||||
# return (ctypes.cast(data, ctypes.c_char_p).value).rstrip('\x00')
|
# return (ctypes.cast(data, ctypes.c_char_p).value).rstrip('\x00')
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
from .cinterface import CTaosInterface
|
from .cinterface import CTaosInterface
|
||||||
from .error import *
|
from .error import *
|
||||||
from .constants import FieldType
|
from .constants import FieldType
|
||||||
import threading
|
|
||||||
|
|
||||||
# querySeqNum = 0
|
# querySeqNum = 0
|
||||||
|
|
||||||
|
@ -38,7 +37,6 @@ class TDengineCursor(object):
|
||||||
self._block_iter = 0
|
self._block_iter = 0
|
||||||
self._affected_rows = 0
|
self._affected_rows = 0
|
||||||
self._logfile = ""
|
self._logfile = ""
|
||||||
self._threadId = threading.get_ident()
|
|
||||||
|
|
||||||
if connection is not None:
|
if connection is not None:
|
||||||
self._connection = connection
|
self._connection = connection
|
||||||
|
|
Loading…
Reference in New Issue