Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enh/cython #229

Open
wants to merge 31 commits into
base: main
Choose a base branch
from
Open

Enh/cython #229

wants to merge 31 commits into from

Conversation

hadrianl
Copy link
Contributor

@hadrianl hadrianl commented Sep 13, 2023

use cython to wrap dynamic linking into python object

  • add serval pyx files(_cinterface.pyx, _objects.pyx, _constant.pyx, _parser.pyx), which can replace the legacy objects
  • build.py, cython , setuptools and compiler are required to build these code
  • faster, more pythonic and async supported
  • not compatible with earlier taos versions yet
  • developed under python 3.10.12, taos client 3.1.0.0, taos server 3.1.0.0, not fully tested with other versions yet
  • add more examples and tests (further test is still needed)
  • query 3~4 times faster when test with taosbenchmark data
  • I left the other python file almost untouch to let you guys determine when and how to switch these and the legacy code
  • the comments with FIXME, BUG need to be reviewed, I`m not sured about these code

1. add taos._cinterface.fetch_all_cython
1. add TaosResult._fetch_all_cython
1. add TaoConnection and TaosResult
1. add TaosField
2. serval more methods
3. typo
1. _cinterface split into _cinterface, _objects, _parser
1. add TaosCusor
2. add TaosConsumer and TaosTopicAssignment
1. add async function
1. better exception
1. add async commit
1. TopicPartition
2. TaosConsumer
1. add Message, MessageBlock
1.add schemaless_insert
2.add TaosStmt
1.add annotation
1. fix TaosStmt, TaosMultiBind
2. add TaosMultiBinds
3. fix row_iter for null value
4. add annotation
1. add taos_stop_query
1. better error info
1. add _constants.pyx
2.fix some bug
3.more async code
4.more doc
5. more annotation
1. add TaosResult._is_async
2.add validate_sql
1.improve taos_get_column_data_is_null
1.add tmq auto commit callback
2.free heap data properly
1.add example and test
1. add _parse_bytes
2. separate timestamp parsing and datetime convert
1.connection and consumer would have independent timezone and dt epoch
1.compile as c only
1.fix taos_fetch_block_v3
1. fix `TaosConsumer.commit_a`
2. remove useless `no gil`
3. fix typo
4. fix some type hints
1.fix potential memory leak(set values more than once)
@markcheney1
Copy link
Contributor

markcheney1 commented Nov 21, 2023

能否关注一下这个pr @zitsen @sunpe @AdamEECS

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants