/*
* Copyright 2004-2014 H2 Group. Multiple-Licensed under the MPL 2.0,
* and the EPL 1.0 (http://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package com.lealone.sql;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.nio.charset.Charset;
import java.text.Collator;
import java.util.ArrayList;
import java.util.HashSet;
import com.lealone.common.exceptions.DbException;
import com.lealone.common.exceptions.UnsupportedSchemaException;
import com.lealone.common.util.CaseInsensitiveMap;
import com.lealone.common.util.MathUtils;
import com.lealone.common.util.StatementBuilder;
import com.lealone.common.util.StringUtils;
import com.lealone.common.util.Utils;
import com.lealone.db.Constants;
import com.lealone.db.Database;
import com.lealone.db.DbObjectType;
import com.lealone.db.DbSetting;
import com.lealone.db.DbSettings;
import com.lealone.db.LealoneDatabase;
import com.lealone.db.Procedure;
import com.lealone.db.RunMode;
import com.lealone.db.SysProperties;
import com.lealone.db.api.ErrorCode;
import com.lealone.db.api.Trigger;
import com.lealone.db.auth.Right;
import com.lealone.db.auth.User;
import com.lealone.db.constraint.ConstraintReferential;
import com.lealone.db.index.Index;
import com.lealone.db.index.IndexColumn;
import com.lealone.db.result.SortOrder;
import com.lealone.db.schema.FunctionAlias;
import com.lealone.db.schema.Schema;
import com.lealone.db.schema.Sequence;
import com.lealone.db.schema.UserAggregate;
import com.lealone.db.schema.UserDataType;
import com.lealone.db.service.Service;
import com.lealone.db.session.ServerSession;
import com.lealone.db.session.SessionSetting;
import com.lealone.db.table.Column;
import com.lealone.db.table.Column.EnumColumn;
import com.lealone.db.table.Column.ListColumn;
import com.lealone.db.table.Column.MapColumn;
import com.lealone.db.table.Column.SetColumn;
import com.lealone.db.table.CreateTableData;
import com.lealone.db.table.DummyTable;
import com.lealone.db.table.RangeTable;
import com.lealone.db.table.Table;
import com.lealone.db.table.TableView;
import com.lealone.db.value.CompareMode;
import com.lealone.db.value.DataType;
import com.lealone.db.value.Value;
import com.lealone.db.value.ValueBoolean;
import com.lealone.db.value.ValueBytes;
import com.lealone.db.value.ValueDate;
import com.lealone.db.value.ValueDecimal;
import com.lealone.db.value.ValueInt;
import com.lealone.db.value.ValueLong;
import com.lealone.db.value.ValueNull;
import com.lealone.db.value.ValueString;
import com.lealone.db.value.ValueTime;
import com.lealone.db.value.ValueTimestamp;
import com.lealone.sql.admin.CreatePlugin;
import com.lealone.sql.admin.DropPlugin;
import com.lealone.sql.admin.ShutdownDatabase;
import com.lealone.sql.admin.ShutdownPlugin;
import com.lealone.sql.admin.ShutdownServer;
import com.lealone.sql.admin.StartPlugin;
import com.lealone.sql.admin.StartServer;
import com.lealone.sql.ddl.AlterDatabase;
import com.lealone.sql.ddl.AlterIndexRename;
import com.lealone.sql.ddl.AlterSchemaRename;
import com.lealone.sql.ddl.AlterSequence;
import com.lealone.sql.ddl.AlterTableAddConstraint;
import com.lealone.sql.ddl.AlterTableAlterColumn;
import com.lealone.sql.ddl.AlterTableDropConstraint;
import com.lealone.sql.ddl.AlterTableRename;
import com.lealone.sql.ddl.AlterTableRenameColumn;
import com.lealone.sql.ddl.AlterTableSet;
import com.lealone.sql.ddl.AlterUser;
import com.lealone.sql.ddl.AlterView;
import com.lealone.sql.ddl.Analyze;
import com.lealone.sql.ddl.CreateAggregate;
import com.lealone.sql.ddl.CreateConstant;
import com.lealone.sql.ddl.CreateDatabase;
import com.lealone.sql.ddl.CreateFunctionAlias;
import com.lealone.sql.ddl.CreateIndex;
import com.lealone.sql.ddl.CreateRole;
import com.lealone.sql.ddl.CreateSchema;
import com.lealone.sql.ddl.CreateSequence;
import com.lealone.sql.ddl.CreateService;
import com.lealone.sql.ddl.CreateTable;
import com.lealone.sql.ddl.CreateTrigger;
import com.lealone.sql.ddl.CreateUser;
import com.lealone.sql.ddl.CreateUserDataType;
import com.lealone.sql.ddl.CreateView;
import com.lealone.sql.ddl.DeallocateProcedure;
import com.lealone.sql.ddl.DefinitionStatement;
import com.lealone.sql.ddl.DropAggregate;
import com.lealone.sql.ddl.DropConstant;
import com.lealone.sql.ddl.DropDatabase;
import com.lealone.sql.ddl.DropFunctionAlias;
import com.lealone.sql.ddl.DropIndex;
import com.lealone.sql.ddl.DropRole;
import com.lealone.sql.ddl.DropSchema;
import com.lealone.sql.ddl.DropSequence;
import com.lealone.sql.ddl.DropService;
import com.lealone.sql.ddl.DropTable;
import com.lealone.sql.ddl.DropTrigger;
import com.lealone.sql.ddl.DropUser;
import com.lealone.sql.ddl.DropUserDataType;
import com.lealone.sql.ddl.DropView;
import com.lealone.sql.ddl.GrantRevoke;
import com.lealone.sql.ddl.PrepareProcedure;
import com.lealone.sql.ddl.RepairTable;
import com.lealone.sql.ddl.SetComment;
import com.lealone.sql.ddl.TruncateTable;
import com.lealone.sql.ddl.UserStatement;
import com.lealone.sql.dml.Backup;
import com.lealone.sql.dml.Call;
import com.lealone.sql.dml.Delete;
import com.lealone.sql.dml.ExecuteProcedure;
import com.lealone.sql.dml.ExecuteService;
import com.lealone.sql.dml.ExecuteStatement;
import com.lealone.sql.dml.Explain;
import com.lealone.sql.dml.GenScript;
import com.lealone.sql.dml.Insert;
import com.lealone.sql.dml.Merge;
import com.lealone.sql.dml.NoOperation;
import com.lealone.sql.dml.RunScript;
import com.lealone.sql.dml.SetDatabase;
import com.lealone.sql.dml.SetSession;
import com.lealone.sql.dml.SetStatement;
import com.lealone.sql.dml.TransactionStatement;
import com.lealone.sql.dml.Update;
import com.lealone.sql.expression.Alias;
import com.lealone.sql.expression.Expression;
import com.lealone.sql.expression.ExpressionColumn;
import com.lealone.sql.expression.ExpressionList;
import com.lealone.sql.expression.Operation;
import com.lealone.sql.expression.Parameter;
import com.lealone.sql.expression.Rownum;
import com.lealone.sql.expression.SelectOrderBy;
import com.lealone.sql.expression.SequenceValue;
import com.lealone.sql.expression.ValueExpression;
import com.lealone.sql.expression.Variable;
import com.lealone.sql.expression.Wildcard;
import com.lealone.sql.expression.aggregate.AGroupConcat;
import com.lealone.sql.expression.aggregate.Aggregate;
import com.lealone.sql.expression.aggregate.JavaAggregate;
import com.lealone.sql.expression.condition.CompareLike;
import com.lealone.sql.expression.condition.Comparison;
import com.lealone.sql.expression.condition.ConditionAndOr;
import com.lealone.sql.expression.condition.ConditionExists;
import com.lealone.sql.expression.condition.ConditionIn;
import com.lealone.sql.expression.condition.ConditionInSelect;
import com.lealone.sql.expression.condition.ConditionNot;
import com.lealone.sql.expression.function.DateTimeFunction;
import com.lealone.sql.expression.function.Function;
import com.lealone.sql.expression.function.FunctionTable;
import com.lealone.sql.expression.function.JavaFunction;
import com.lealone.sql.expression.function.StringFunction;
import com.lealone.sql.expression.function.SystemFunction;
import com.lealone.sql.expression.function.TableFunction;
import com.lealone.sql.expression.subquery.SubQuery;
import com.lealone.sql.optimizer.SingleColumnResolver;
import com.lealone.sql.optimizer.TableFilter;
import com.lealone.sql.optimizer.TableFilter.TableFilterVisitor;
import com.lealone.sql.query.Query;
import com.lealone.sql.query.Select;
import com.lealone.sql.query.SelectUnion;
/**
* The parser is used to convert a SQL statement string to an command object.
*
* @author H2 Group
* @author zhh
*/
public class SQLParserBase implements SQLParser {
// used during the tokenizer phase
protected static final int CHAR_END = 1, CHAR_VALUE = 2, CHAR_QUOTED = 3;
protected static final int CHAR_NAME = 4, CHAR_SPECIAL_1 = 5, CHAR_SPECIAL_2 = 6;
protected static final int CHAR_STRING = 7, CHAR_DOT = 8, CHAR_DOLLAR_QUOTED_STRING = 9;
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
比 MySQL 和 MongoDB 快10倍的 OLTP 关系数据库和文档数据库 Lealone 是什么 是一个高性能的面向 OLTP 场景的关系数据库 也是一个兼容 MongoDB 的高性能文档数据库 同时还高度兼容 MySQL 和 PostgreSQL 的协议和 SQL 语法 Lealone 有哪些特性 高亮特性 并发写性能极其炸裂 全链路异步化,使用少量线程就能处理大量并发 可暂停的、渐进式的 SQL 引擎 基于 SQL 优先级的抢占式调度,慢查询不会长期霸占 CPU 创建 JDBC 连接非常快速,占用资源少,不再需要 JDBC 连接池 插件化存储引擎架构,内置 AOSE 引擎,采用新颖的异步化 B-Tree 插件化事务引擎架构,事务处理逻辑与存储分离,内置 AOTE 引擎 支持 Page 级别的行列混合存储,对于有很多字段的表,只读少量字段时能大量节约内存 支持通过 CREATE SERVICE 语句创建可托管的后端服务 只需要一个不到 2M 的 jar 包就能运行,不需要安装
资源推荐
资源详情
资源评论
收起资源包目录
比 MySQL 和 MongoDB 快10倍的 OLTP 关系数据库和文档数据库.zip (865个子文件)
build.bat 2KB
lealone.bat 1KB
sqlshell.bat 166B
help.csv 104KB
java.sql.Driver 34B
SQLParserBase.java 223KB
JdbcResultSet.java 112KB
JdbcDatabaseMetaData.java 96KB
Database.java 66KB
ErrorCode.java 65KB
InfoMetaTable.java 64KB
ServerSession.java 55KB
JdbcConnection.java 54KB
SimpleResultSet.java 54KB
JdbcPreparedStatement.java 53KB
JdbcCallableStatement.java 51KB
CreateService.java 46KB
DataType.java 37KB
Select.java 36KB
JdbcStatement.java 35KB
Value.java 35KB
Utils.java 34KB
Table.java 32KB
SystemFunction.java 32KB
StringUtils.java 31KB
TableFilter.java 29KB
DateTimeUtils.java 29KB
Csv.java 28KB
DataBuffer.java 27KB
Column.java 27KB
Schema.java 25KB
GenScript.java 25KB
ConnectionInfo.java 25KB
DataUtils.java 24KB
StringFunction.java 23KB
StandardTable.java 23KB
LealoneClient.java 23KB
ConstraintReferential.java 22KB
NioEventLoop.java 21KB
ValueLob.java 21KB
BTreeMap.java 21KB
AOTransactionMap.java 20KB
FunctionAlias.java 19KB
StandardPrimaryIndex.java 19KB
DateTimeFunction.java 18KB
PageOperations.java 18KB
FileStorage.java 18KB
CompressLZF.java 17KB
Comparison.java 17KB
AES.java 17KB
NumericFunction.java 17KB
CheckpointService.java 17KB
LobStreamMap.java 17KB
Query.java 16KB
TransferOutputStream.java 16KB
DbSettings.java 16KB
AlterTableAddConstraint.java 15KB
StatementBase.java 15KB
ViewIndex.java 15KB
TableView.java 15KB
LobStreamStorage.java 14KB
PageReference.java 14KB
IOUtils.java 14KB
IndexBase.java 14KB
SysProperties.java 14KB
FileEncrypt.java 14KB
LocalResult.java 14KB
Operation.java 14KB
Sequence.java 14KB
GlobalScheduler.java 14KB
AOTransaction.java 14KB
CompareLike.java 13KB
JdbcResultSetMetaData.java 13KB
SourceCompiler.java 13KB
TriggerObject.java 13KB
StandardSecondaryIndex.java 13KB
DbException.java 13KB
TableTest.java 13KB
RedoLogChunk.java 12KB
TransferInputStream.java 12KB
FileUtils.java 12KB
AlterTableAlterColumn.java 12KB
BTreeStorage.java 12KB
CreateTable.java 12KB
FilePathDisk.java 12KB
ClientSession.java 12KB
Lealone.java 12KB
LeafPage.java 12KB
Constants.java 11KB
User.java 11KB
JdbcPreparedStatementTest.java 11KB
Chunk.java 11KB
MathUtils.java 11KB
SHA256.java 11KB
UpdatableRow.java 11KB
CompressTool.java 11KB
ADefault.java 10KB
JdbcStatementTest.java 10KB
TransactionalValue.java 10KB
Page.java 10KB
共 865 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
博士僧小星
- 粉丝: 1711
- 资源: 5876
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功