Пример #1
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);
        }
Пример #3
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);
        }
Пример #4
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());
        }