mplang-nightly 0.1.dev151__tar.gz → 0.1.dev152__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 (165) hide show
  1. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/PKG-INFO +1 -1
  2. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/kernels/sql_duckdb.py +5 -0
  3. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/ops/base.py +2 -2
  4. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/ops/ibis_cc.py +1 -0
  5. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/ops/sql.py +2 -1
  6. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/.gitignore +0 -0
  7. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/LICENSE +0 -0
  8. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/README.md +0 -0
  9. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/examples/conf/3pc.yaml +0 -0
  10. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/examples/stax_nn/README.md +0 -0
  11. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/examples/stax_nn/models.py +0 -0
  12. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/examples/stax_nn/stax_nn.py +0 -0
  13. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/examples/xgboost/hist_jax.py +0 -0
  14. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/examples/xgboost/hist_jax_test.py +0 -0
  15. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/examples/xgboost/naive_np.py +0 -0
  16. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/examples/xgboost/readme.md +0 -0
  17. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/examples/xgboost/sgb.py +0 -0
  18. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/examples/xgboost/sgb_test.py +0 -0
  19. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/hatch_build.py +0 -0
  20. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/__init__.py +0 -0
  21. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/analysis/__init__.py +0 -0
  22. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/analysis/diagram.py +0 -0
  23. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/api.py +0 -0
  24. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/__init__.py +0 -0
  25. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/cluster.py +0 -0
  26. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/comm.py +0 -0
  27. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/context_mgr.py +0 -0
  28. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/dtype.py +0 -0
  29. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/expr/__init__.py +0 -0
  30. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/expr/ast.py +0 -0
  31. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/expr/evaluator.py +0 -0
  32. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/expr/printer.py +0 -0
  33. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/expr/transformer.py +0 -0
  34. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/expr/utils.py +0 -0
  35. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/expr/visitor.py +0 -0
  36. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/expr/walk.py +0 -0
  37. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/interp.py +0 -0
  38. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/mask.py +0 -0
  39. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/mpir.py +0 -0
  40. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/mpobject.py +0 -0
  41. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/mptype.py +0 -0
  42. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/pfunc.py +0 -0
  43. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/primitive.py +0 -0
  44. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/table.py +0 -0
  45. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/tensor.py +0 -0
  46. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/core/tracer.py +0 -0
  47. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/device.py +0 -0
  48. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/kernels/__init__.py +0 -0
  49. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/kernels/base.py +0 -0
  50. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/kernels/builtin.py +0 -0
  51. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/kernels/context.py +0 -0
  52. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/kernels/crypto.py +0 -0
  53. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/kernels/mock_tee.py +0 -0
  54. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/kernels/phe.py +0 -0
  55. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/kernels/spu.py +0 -0
  56. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/kernels/stablehlo.py +0 -0
  57. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/ops/__init__.py +0 -0
  58. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/ops/builtin.py +0 -0
  59. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/ops/crypto.py +0 -0
  60. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/ops/jax_cc.py +0 -0
  61. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/ops/phe.py +0 -0
  62. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/ops/spu.py +0 -0
  63. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/ops/tee.py +0 -0
  64. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/protos/v1alpha1/mpir_pb2.py +0 -0
  65. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/protos/v1alpha1/mpir_pb2.pyi +0 -0
  66. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/protos/v1alpha1/mpir_pb2_grpc.py +0 -0
  67. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/runtime/__init__.py +0 -0
  68. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/runtime/cli.py +0 -0
  69. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/runtime/client.py +0 -0
  70. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/runtime/communicator.py +0 -0
  71. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/runtime/data_providers.py +0 -0
  72. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/runtime/driver.py +0 -0
  73. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/runtime/exceptions.py +0 -0
  74. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/runtime/http_api.md +0 -0
  75. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/runtime/link_comm.py +0 -0
  76. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/runtime/resource.py +0 -0
  77. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/runtime/server.py +0 -0
  78. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/runtime/simulation.py +0 -0
  79. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/simp/__init__.py +0 -0
  80. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/simp/mpi.py +0 -0
  81. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/simp/random.py +0 -0
  82. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/simp/smpc.py +0 -0
  83. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/utils/__init__.py +0 -0
  84. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/utils/crypto.py +0 -0
  85. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/utils/func_utils.py +0 -0
  86. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/utils/spu_utils.py +0 -0
  87. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/mplang/utils/table_utils.py +0 -0
  88. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/pyproject.toml +0 -0
  89. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/__init__.py +0 -0
  90. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/analysis/test_diagram.py +0 -0
  91. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/core/__init__.py +0 -0
  92. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/core/expr/__init__.py +0 -0
  93. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/core/expr/conftest.py +0 -0
  94. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/core/expr/test_ast.py +0 -0
  95. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/core/expr/test_printer.py +0 -0
  96. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/core/expr/test_utils.py +0 -0
  97. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/core/expr/test_walk.py +0 -0
  98. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/core/test_cluster.py +0 -0
  99. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/core/test_dtype.py +0 -0
  100. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/core/test_mask.py +0 -0
  101. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/core/test_mpir.py +0 -0
  102. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/core/test_mptype.py +0 -0
  103. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/core/test_primitive.py +0 -0
  104. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/core/test_table.py +0 -0
  105. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/core/test_tensor.py +0 -0
  106. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/core/test_tracer.py +0 -0
  107. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/device/__init__.py +0 -0
  108. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/device/test_device_basic.py +0 -0
  109. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/integration/README.md +0 -0
  110. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/integration/test_crypto_roundtrip.py +0 -0
  111. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/integration/test_http_e2e.py +0 -0
  112. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/integration/test_symbols_roundtrip.py +0 -0
  113. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/integration/test_tutorials.py +0 -0
  114. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/integration/test_unused_param_integration.py +0 -0
  115. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/kernels/test_builtin.py +0 -0
  116. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/kernels/test_debug_print.py +0 -0
  117. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/kernels/test_kernel_binding.py +0 -0
  118. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/kernels/test_phe.py +0 -0
  119. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/kernels/test_spu.py +0 -0
  120. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/kernels/test_sql_duckdb.py +0 -0
  121. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/kernels/test_stablehlo.py +0 -0
  122. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/ops/__init__.py +0 -0
  123. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/ops/dummy.py +0 -0
  124. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/ops/test_builtin_pack.py +0 -0
  125. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/ops/test_crypto_tee.py +0 -0
  126. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/ops/test_feop_base.py +0 -0
  127. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/ops/test_ibis.py +0 -0
  128. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/ops/test_ibis_cc.py +0 -0
  129. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/ops/test_jax_cc.py +0 -0
  130. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/ops/test_phe.py +0 -0
  131. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/ops/test_spu.py +0 -0
  132. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/ops/test_spu_defensive.py +0 -0
  133. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/ops/test_sql.py +0 -0
  134. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/ops/test_table_tensor_conversion.py +0 -0
  135. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/runtime/__init__.py +0 -0
  136. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/runtime/test_cli.py +0 -0
  137. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/runtime/test_communicator.py +0 -0
  138. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/runtime/test_driver.py +0 -0
  139. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/runtime/test_server.py +0 -0
  140. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/runtime/test_simulation.py +0 -0
  141. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/simp/test_mpi.py +0 -0
  142. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/simp/test_random.py +0 -0
  143. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/simp/test_simp.py +0 -0
  144. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/simp/test_smpc.py +0 -0
  145. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/simp/test_sugar.py +0 -0
  146. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/utils/__init__.py +0 -0
  147. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/utils/server_fixtures.py +0 -0
  148. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/utils/test_func_utils.py +0 -0
  149. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/utils/test_spu_utils.py +0 -0
  150. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tests/utils/test_table_utils.py +0 -0
  151. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tutorials/0_basic.py +0 -0
  152. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tutorials/10_analysis.py +0 -0
  153. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tutorials/1_condition.py +0 -0
  154. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tutorials/2_whileloop.py +0 -0
  155. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tutorials/3_device.py +0 -0
  156. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tutorials/4_simulation.py +0 -0
  157. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tutorials/5_ir_dump.py +0 -0
  158. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tutorials/6_advanced.py +0 -0
  159. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tutorials/7_stdio.py +0 -0
  160. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tutorials/8_phe.py +0 -0
  161. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tutorials/9_tee.py +0 -0
  162. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tutorials/__init__.py +0 -0
  163. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tutorials/pitfalls/late_binding.py +0 -0
  164. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tutorials/pitfalls/rand.py +0 -0
  165. {mplang_nightly-0.1.dev151 → mplang_nightly-0.1.dev152}/tutorials/run.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mplang-nightly
3
- Version: 0.1.dev151
3
+ Version: 0.1.dev152
4
4
  Summary: Multi-Party Programming Language
5
5
  Author-email: SecretFlow Team <secretflow-contact@service.alipay.com>
6
6
  License: Apache License
@@ -25,6 +25,11 @@ def _duckdb_sql(pfunc: PFunction, *args: Any) -> Any:
25
25
  import duckdb
26
26
  import pandas as pd
27
27
 
28
+ # TODO: maybe we could translate the sql to duckdb dialect
29
+ # instead of raising an exception
30
+ if pfunc.attrs.get("dialect") != "duckdb":
31
+ raise ValueError("duckdb.run_sql must have dialect=duckdb attr")
32
+
28
33
  conn = duckdb.connect(":memory:")
29
34
  if args:
30
35
  in_names = pfunc.attrs.get("in_names")
@@ -30,7 +30,7 @@ from mplang.core.tensor import TensorType
30
30
  # The standard return contract for frontend operations (FeOperation.trace).
31
31
  #
32
32
  # Triad := (PFunction, list[MPObject], PyTreeDef)
33
- # - PFunction: Captures fn_type (routing key, e.g., "mlir.stablehlo", "sql.duckdb"),
33
+ # - PFunction: Captures fn_type (routing key, e.g., "mlir.stablehlo", "sql.run"),
34
34
  # input/output MPTypes and optional attributes.
35
35
  # - list[MPObject]: The flat positional MPObjects captured under the current
36
36
  # context (Trace/Interp). Order matches pfunc.ins_info.
@@ -422,6 +422,6 @@ def list_ops(module: str | None = None) -> dict[tuple[str, str], FeOperation]:
422
422
  # - For type-only kernels, use @module.typed_op(pfunc_name)(kernel). The op name is derived from the kernel function name.
423
423
  # - For complex ops (with Python callables/closures), subclass FeOperation and register
424
424
  # using get_registry().register_op(module, name, op_instance) or use @module.feop with InlineFeOperation.
425
- # - Ensure PFunction.fn_type is set as the routing key (e.g., "mlir.stablehlo", "sql.duckdb").
425
+ # - Ensure PFunction.fn_type is set as the routing key (e.g., "mlir.stablehlo", "sql.run").
426
426
  # - Keep device selection/routing out of frontend code; only set fn_type and attributes.
427
427
  # - Avoid moving MPObjects across contexts directly; capture within current ctx in trace().
@@ -65,6 +65,7 @@ def ibis2sql(
65
65
  ins_info=tuple(ins_info),
66
66
  outs_info=tuple(outs_info),
67
67
  in_names=tuple(in_names),
68
+ dialect="duckdb",
68
69
  )
69
70
  return pfn
70
71
 
@@ -46,12 +46,13 @@ class SqlFE(FeOperation):
46
46
  in_vars.append(tbl)
47
47
 
48
48
  pfn = PFunction(
49
- fn_type=f"sql[{self._dialect}]",
49
+ fn_type="sql.run",
50
50
  fn_name="",
51
51
  fn_text=sql,
52
52
  ins_info=tuple(ins_info),
53
53
  outs_info=(out_type,),
54
54
  in_names=tuple(in_names),
55
+ dialect=self._dialect,
55
56
  )
56
57
  _, treedef = tree_flatten(out_type)
57
58
  return pfn, in_vars, treedef