All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hundsun.lightdb.unisql.golang.IGoParser Maven / Gradle / Ivy

There is a newer version: 24.1.7.0-beta-2
Show newest version
package com.hundsun.lightdb.unisql.golang;

import jnr.ffi.Pointer;
import jnr.ffi.annotations.Encoding;

/**
 * go转换器
 *
 * @author gaobo48919
 * @date 2023/08/31
 * @since 23.1.0.0
 */
public interface IGoParser {

    /**
     * 转换sql
     *
     * @param sourceSQL     源sql
     * @param sourceDialect 源方言
     * @param targetDialect 目标方言
     * @return {@link Pointer}
     * @since 23.1.0.0
     */
    Pointer Transform(@Encoding("UTF-8") String sourceSQL,
                      @Encoding("UTF-8") String sourceDialect,
                      @Encoding("UTF-8") String targetDialect);

    /**
     * 转换sql
     *
     * @param variableParameterJson 源sql、源方言、目标方言和一些可变参数
     * @return {@link Pointer}
     * @since 23.4.0.0
     */
    Pointer TransformPro(@Encoding("UTF-8") String variableParameterJson);

    /**
     * 释放native的内存地址
     *
     * @param pointer 内存地址
     * @since 23.1.0.0
     */
    void FreePointer(Pointer pointer);

    /**
     * 设置go gc参数
     *
     * @param n 参数值
     * @since 23.2.0.0
     */
    void SetGoGc(long n);

    /**
     * 设置go memlimit参数
     *
     * @param n 参数值
     * @since 23.2.0.0
     */
    void SetGoMemLimit(long n);

    /**
     * 设置全局静态参数
     *
     * @param globalStaticParameter 全局静态参数Json
     * @since 23.4.0.0
     */
    void SetGlobalStaticParameter(@Encoding("UTF-8") String globalStaticParameter);

    /**
     * 根据DML 获取执行前的DQL和执行后的DQL
     *
     * @param variableParameterJson 源sql、源方言、目标方言和一些可变参数
     * @return {@link Pointer}
     * @since 24.1.0.0
     */
    Pointer GetDqlByDml(@Encoding("UTF-8") String variableParameterJson);

    /**
     * 设置统一SQL表元数据
     * @param variableParameterJson
     * @return
     */
    Pointer InitTableMetas(@Encoding("UTF-8") String variableParameterJson);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy