pyobvector 0.2.8__tar.gz → 0.2.10__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. {pyobvector-0.2.8 → pyobvector-0.2.10}/PKG-INFO +3 -3
  2. {pyobvector-0.2.8 → pyobvector-0.2.10}/README.md +1 -1
  3. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/client/ob_vec_json_table_client.py +17 -10
  4. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyproject.toml +2 -2
  5. {pyobvector-0.2.8 → pyobvector-0.2.10}/LICENSE +0 -0
  6. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/__init__.py +0 -0
  7. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/client/__init__.py +0 -0
  8. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/client/collection_schema.py +0 -0
  9. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/client/enum.py +0 -0
  10. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/client/exceptions.py +0 -0
  11. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/client/fts_index_param.py +0 -0
  12. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/client/index_param.py +0 -0
  13. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/client/milvus_like_client.py +0 -0
  14. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/client/ob_vec_client.py +0 -0
  15. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/client/partitions.py +0 -0
  16. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/client/schema_type.py +0 -0
  17. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/json_table/__init__.py +0 -0
  18. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/json_table/json_value_returning_func.py +0 -0
  19. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/json_table/oceanbase_dialect.py +0 -0
  20. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/json_table/virtual_data_type.py +0 -0
  21. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/schema/__init__.py +0 -0
  22. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/schema/dialect.py +0 -0
  23. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/schema/full_text_index.py +0 -0
  24. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/schema/geo_srid_point.py +0 -0
  25. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/schema/gis_func.py +0 -0
  26. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/schema/match_against_func.py +0 -0
  27. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/schema/ob_table.py +0 -0
  28. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/schema/reflection.py +0 -0
  29. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/schema/replace_stmt.py +0 -0
  30. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/schema/vec_dist_func.py +0 -0
  31. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/schema/vector.py +0 -0
  32. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/schema/vector_index.py +0 -0
  33. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/util/__init__.py +0 -0
  34. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/util/ob_version.py +0 -0
  35. {pyobvector-0.2.8 → pyobvector-0.2.10}/pyobvector/util/vector.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyobvector
3
- Version: 0.2.8
3
+ Version: 0.2.10
4
4
  Summary: A python SDK for OceanBase Vector Store, based on SQLAlchemy, compatible with Milvus API.
5
5
  Author: shanhaikang.shk
6
6
  Author-email: shanhaikang.shk@oceanbase.com
@@ -15,7 +15,7 @@ Requires-Dist: aiomysql (>=0.2.0,<0.3.0)
15
15
  Requires-Dist: numpy (>=1.17.0,<2.0.0)
16
16
  Requires-Dist: pydantic (>=2.7.0,<3)
17
17
  Requires-Dist: pymysql (>=1.1.1,<2.0.0)
18
- Requires-Dist: sqlalchemy (>=1.4,<2.0.36)
18
+ Requires-Dist: sqlalchemy (>=1.4,<=3)
19
19
  Requires-Dist: sqlglot (>=26.0.1,<27.0.0)
20
20
  Description-Content-Type: text/markdown
21
21
 
@@ -36,7 +36,7 @@ poetry install
36
36
  - install with pip:
37
37
 
38
38
  ```shell
39
- pip install pyobvector==0.2.8
39
+ pip install pyobvector==0.2.10
40
40
  ```
41
41
 
42
42
  ## Build Doc
@@ -15,7 +15,7 @@ poetry install
15
15
  - install with pip:
16
16
 
17
17
  ```shell
18
- pip install pyobvector==0.2.8
18
+ pip install pyobvector==0.2.10
19
19
  ```
20
20
 
21
21
  ## Build Doc
@@ -144,15 +144,16 @@ class ObVecJsonTableClient(ObVecClient):
144
144
  if self.user_id is None:
145
145
  return True
146
146
 
147
- session = self.session()
148
- distinct_admin_ids = (
149
- session.query(ObVecJsonTableClient.JsonTableDataTBL.admin_id)
150
- .filter_by(user_id = self.user_id)
151
- .distinct()
152
- .all()
153
- )
154
- admin_ids = [admin_id[0] for admin_id in distinct_admin_ids]
155
- return (len(admin_ids) == 0) or (len(admin_ids) == 1 and admin_ids[0] == self.admin_id)
147
+ with self.session() as session:
148
+ with session.begin():
149
+ distinct_admin_ids = (
150
+ session.query(ObVecJsonTableClient.JsonTableDataTBL.admin_id)
151
+ .filter_by(user_id = self.user_id)
152
+ .distinct()
153
+ .all()
154
+ )
155
+ admin_ids = [admin_id[0] for admin_id in distinct_admin_ids]
156
+ return (len(admin_ids) == 0) or (len(admin_ids) == 1 and admin_ids[0] == self.admin_id)
156
157
 
157
158
  def _reset(self):
158
159
  # Only for test
@@ -845,6 +846,7 @@ class ObVecJsonTableClient(ObVecClient):
845
846
  new_select_exprs.append(data_id_col_expr)
846
847
  need_replace_select_exprs = True
847
848
 
849
+ alias_names = set()
848
850
  for select_expr in ast.args['expressions']:
849
851
  if isinstance(select_expr, exp.Star):
850
852
  need_replace_select_exprs = True
@@ -856,6 +858,8 @@ class ObVecJsonTableClient(ObVecClient):
856
858
  col_expr.args['this'] = identifier
857
859
  new_select_exprs.append(col_expr)
858
860
  else:
861
+ if isinstance(select_expr, exp.Alias):
862
+ alias_names.add(select_expr.args['alias'].args['this'])
859
863
  new_select_exprs.append(select_expr)
860
864
  if need_replace_select_exprs:
861
865
  ast.args['expressions'] = new_select_exprs
@@ -864,6 +868,9 @@ class ObVecJsonTableClient(ObVecClient):
864
868
  json_table_str = f"json_table({JSON_TABLE_DATA_TABLE_NAME}.jdata, '$' COLUMNS ({', '.join(json_table_meta_str)})) {tmp_table_name}"
865
869
 
866
870
  for col in ast.find_all(exp.Column):
871
+ col_name = col.args["this"].args["this"]
872
+ if col_name in alias_names:
873
+ continue
867
874
  if 'table' in col.args.keys():
868
875
  if col.args['table'].args['this'] != JSON_TABLE_DATA_TABLE_NAME:
869
876
  col.args['table'].args['this'] = tmp_table_name
@@ -893,6 +900,6 @@ class ObVecJsonTableClient(ObVecClient):
893
900
  where_clause.args['this'] = parse_one(extra_filter_str)
894
901
  ast.args['where'] = where_clause
895
902
 
896
- select_sql = str(ast)
903
+ select_sql = ast.sql(dialect="mysql", identify=True)
897
904
  logger.debug(f"===================== do select: {select_sql}")
898
905
  return self.perform_raw_text_sql(select_sql)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pyobvector"
3
- version = "0.2.8"
3
+ version = "0.2.10"
4
4
  description = "A python SDK for OceanBase Vector Store, based on SQLAlchemy, compatible with Milvus API."
5
5
  authors = ["shanhaikang.shk <shanhaikang.shk@oceanbase.com>"]
6
6
  readme = "README.md"
@@ -8,7 +8,7 @@ readme = "README.md"
8
8
  [tool.poetry.dependencies]
9
9
  python = ">=3.9,<4.0"
10
10
  numpy = ">=1.17.0,<2.0.0"
11
- sqlalchemy = ">=1.4,<2.0.36"
11
+ sqlalchemy = ">=1.4,<=3"
12
12
  pymysql = "^1.1.1"
13
13
  aiomysql = "^0.2.0"
14
14
  sqlglot = "^26.0.1"
File without changes