+ *
+ * This program is free software: you can redistribute it and/or modify it under the terms of the
+ * GNU General Public License as published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
+ * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with this program. If
+ * not, see .
+ */
+package io.mycat.calcite.prepare;
+
+import io.mycat.PlanRunner;
+import io.mycat.beans.mycat.MycatRowMetaData;
+import io.mycat.upondb.MycatDBContext;
+import lombok.Getter;
+import org.apache.calcite.sql.SqlLiteral;
+import org.apache.calcite.sql.SqlNode;
+import org.apache.calcite.sql.dialect.MysqlSqlDialect;
+import org.apache.calcite.sql.parser.SqlParserPos;
+import org.apache.calcite.util.DateString;
+import org.apache.calcite.util.TimeString;
+import org.apache.calcite.util.TimestampString;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.util.List;
+
+/**
+ * @author Junwen Chen
+ **/
+@Getter
+public class FastMycatCalciteSQLPrepareObject extends MycatSQLPrepareObject {
+ private final SqlNode sqlNode;
+ private boolean forUpdate;
+ private final MycatDBContext dataContext;
+
+ public FastMycatCalciteSQLPrepareObject(Long id, String sql, SqlNode sqlNode, MycatRowMetaData parameterRowType, MycatRowMetaData resultSetRowType, boolean forUpdate, MycatDBContext dataContext) {
+ super(id,dataContext,sql,forUpdate);
+ this.sqlNode = sqlNode;
+ this.forUpdate = forUpdate;
+ this.dataContext = dataContext;
+ }
+
+ @Override
+ public MycatRowMetaData prepareParams() {
+ return null;
+ }
+
+ @Override
+ public MycatRowMetaData resultSetRowType() {
+ return null;
+ }
+
+ @Override
+ public PlanRunner plan(List