#pragma once

typedef void *pAttrDescs;
typedef void **pTuples;

extern "C" const char *encryptOneSql(const char* sql, char** err_msg, const char* user_name, const char* db_name);

extern "C" void decryptResult(int numberAttr, int numTuples, pAttrDescs pattDescs, pTuples ptuples);

struct EncryptInfo {
    const char *sql; // 正在处理的sql
    bool isFloatCol; //当前处理的col是否是float
    // bool isFloatorIntCol; //当前处理的col是否是float或int
    void *father;
    bool isPeerColFloat;    // where col_float = 10;  这种where条件中，10的AES需要放缩， isPeerColFloat为true表示在一个二元操作符中，操作数为float column.
    bool isALeftOps;
    bool isARightOps;
    bool isFromAExpr = false;
    bool isFromUpdate = false;
};
