Пример #1
0
        public SqlToExpressionParsing()
        {
            TablesMetadata tablesMetadata = new TablesMetadata();

            tablesMetadata.AddTable(new TableMetadata("project", typeof(Project)));

            var queryExecutor = new QueryExecutor(
                new TableResolver(),
                new DefaultFromTableExecutorFactory(),
                new DefaultWhereExecutorFactory(),
                new DefaultGroupByExecutorFactory(),
                new DefaultSelectExecutorFactory(),
                new DefaultOrderByExecutorFactory(),
                new DefaultOffsetExecutorFactory(),
                new DefaultDistinctExecutorFactory(),
                new DefaultAggregateFunctionFactory());

            sqlExecutor = new SqlExecutor(
                new AntlrSqlParser(),
                tablesMetadata,
                queryExecutor,
                new DefaultSearchExpressionProvider(),
                new DefaultOperationsProvider());

            sql150Parser = new TSql150Parser(true);
        }
Пример #2
0
        public void Setup()
        {
            tpchData = new TpchData();
            TablesMetadata tablesMetadata = new TablesMetadata();

            tablesMetadata.AddTable(new TableMetadata("typetest", typeof(TypeTest), new InMemoryOperationsProvider()));
            tablesMetadata.AddTable(new TableMetadata("typetestdefaultoperationprovider", typeof(TypeTest)));

            var queryExecutor = new QueryExecutor(
                new TypeTestTableResolver(),
                new DefaultFromTableExecutorFactory(),
                new DefaultWhereExecutorFactory(),
                new DefaultGroupByExecutorFactory(),
                new DefaultSelectExecutorFactory(),
                new DefaultOrderByExecutorFactory(),
                new DefaultOffsetExecutorFactory(),
                new DefaultDistinctExecutorFactory(),
                new DefaultAggregateFunctionFactory());

            sqlExecutor = new SqlExecutor(
                new AntlrSqlParser(),
                tablesMetadata,
                queryExecutor,
                new DefaultSearchExpressionProvider(),
                new DefaultOperationsProvider());
        }
        public static IServiceCollection AddKoralium(this IServiceCollection services, Action <IKoraliumBuilder> builder)
        {
            services.AddScoped <IDiscoveryService, DefaultDiscoveryService>();

            KoraliumBuilder koraliumBuilder = new KoraliumBuilder(services);

            builder?.Invoke(koraliumBuilder);

            services.AddSingleton(koraliumBuilder.Build());

            TablesMetadata tablesMetadata = new TablesMetadata();

            foreach (var table in koraliumBuilder.Tables)
            {
                tablesMetadata.AddTable(new TableMetadata(
                                            table.Name,
                                            table.EntityType,
                                            table.OperationsProvider));
            }

            services.AddSqlToExpression(tablesMetadata);

            if (koraliumBuilder.SearchProviderType != null)
            {
                services.AddSingleton(typeof(ISearchExpressionProvider), koraliumBuilder.SearchProviderType);
            }

            services.AddScoped <DefaultPartitionResolver>();

            services.AddHostedService <PartitionHostedService>();
            services.AddScoped <IKoraliumTransportService, KoraliumTransportService>();
            services.AddScoped <Koralium.SqlToExpression.ISqlTableResolver, SqlTableResolver>();

            return(services);
        }
Пример #4
0
 public SqlExecutor(
     ISqlParser sqlParser,
     TablesMetadata tablesMetadata,
     IQueryExecutor queryExecutor,
     ISearchExpressionProvider searchExpressionProvider,
     IOperationsProvider operationsProvider)
 {
     _sqlParser                = sqlParser;
     _tablesMetadata           = tablesMetadata;
     _queryExecutor            = queryExecutor;
     _stageConverter           = new StageConverter();
     _searchExpressionProvider = searchExpressionProvider;
     _operationsProvider       = operationsProvider;
 }
Пример #5
0
        public VisitorMetadata(
            SqlParameters sqlParameters,
            TablesMetadata tablesMetadata,
            ISearchExpressionProvider searchExpressionProvider,
            IOperationsProvider operationsProvider)
        {
            Debug.Assert(tablesMetadata != null);

            if (sqlParameters != null)
            {
                Parameters = sqlParameters;
            }
            else
            {
                Parameters = new SqlParameters();
            }
            TablesMetadata           = tablesMetadata;
            SearchExpressionProvider = searchExpressionProvider;
            OperationsProvider       = operationsProvider;
        }
Пример #6
0
        public void Setup()
        {
            tpchData = new TpchData();
            TablesMetadata tablesMetadata = new TablesMetadata();

            tablesMetadata.AddTable(new TableMetadata("customer", typeof(Customer)));
            tablesMetadata.AddTable(new TableMetadata("lineitem", typeof(LineItem)));
            tablesMetadata.AddTable(new TableMetadata("nation", typeof(Nation)));
            tablesMetadata.AddTable(new TableMetadata("order", typeof(Order), new InMemoryOperationsProvider()));
            tablesMetadata.AddTable(new TableMetadata("part", typeof(Part)));
            tablesMetadata.AddTable(new TableMetadata("partsupp", typeof(Partsupp)));
            tablesMetadata.AddTable(new TableMetadata("region", typeof(Region)));
            tablesMetadata.AddTable(new TableMetadata("supplier", typeof(Supplier)));
            tablesMetadata.AddTable(new TableMetadata("columntest", typeof(ColumnTest)));
            tablesMetadata.AddTable(new TableMetadata("nulltest", typeof(NullTest), new InMemoryOperationsProvider()));
            tablesMetadata.AddTable(new TableMetadata("enumtable", typeof(EnumTest)));
            tablesMetadata.AddTable(new TableMetadata("objecttable", typeof(ObjectTest)));

            var queryExecutor = new QueryExecutor(
                new TableResolver(tpchData),
                new DefaultFromTableExecutorFactory(),
                new DefaultWhereExecutorFactory(),
                new DefaultGroupByExecutorFactory(),
                new DefaultSelectExecutorFactory(),
                new DefaultOrderByExecutorFactory(),
                new DefaultOffsetExecutorFactory(),
                new DefaultDistinctExecutorFactory(),
                new DefaultAggregateFunctionFactory());

            sqlExecutor = new SqlExecutor(
                new AntlrSqlParser(),
                tablesMetadata,
                queryExecutor,
                new DefaultSearchExpressionProvider(),
                new DefaultOperationsProvider());
        }
Пример #7
0
 public PersistCommand(MsSqlTableSet tableSet)
 {
     this.oraTableName = TablesMetadata.FindByTableName(DbTypesEnum.MsSql, tableSet.TableName).OracleTable.TableName;
     this.tableSet     = tableSet;
 }
Пример #8
0
 protected PersistCommand(OracleTableSet tableSet)
 {
     this.tableSet    = tableSet;
     this.msTableName = TablesMetadata.FindByTableName(DbTypesEnum.Oracle, tableSet.TableName).MsSqlTable.TableName;
 }
        public static IServiceCollection AddSqlToExpression(this IServiceCollection services, TablesMetadata tablesMetadata)
        {
            services.AddSingleton(tablesMetadata);

            services.AddScoped <IQueryExecutor, QueryExecutor>();
            services.AddSingleton <IFromTableExecutorFactory, DefaultFromTableExecutorFactory>();
            services.AddSingleton <IWhereExecutorFactory, DefaultWhereExecutorFactory>();
            services.AddSingleton <IGroupByExecutorFactory, DefaultGroupByExecutorFactory>();
            services.AddSingleton <ISelectExecutorFactory, DefaultSelectExecutorFactory>();
            services.AddSingleton <IOrderByExecutorFactory, DefaultOrderByExecutorFactory>();
            services.AddSingleton <IOffsetExecutorFactory, DefaultOffsetExecutorFactory>();
            services.AddSingleton <IDistinctExecutorFactory, DefaultDistinctExecutorFactory>();
            services.AddSingleton <ISearchExpressionProvider, DefaultSearchExpressionProvider>();
            services.AddSingleton <IOperationsProvider, DefaultOperationsProvider>();
            services.AddSingleton <IAggregateFunctionExecutorFactory, DefaultAggregateFunctionFactory>();

            services.AddScoped <SqlExecutor>();

            //Add parser
            services.AddSingleton <ISqlParser>(new AntlrSqlParser());

            return(services);
        }