Ejemplo n.º 1
0
        /// <summary>
        /// Composes a source query for a remote table
        /// </summary>
        /// <param name="table"></param>
        /// <returns></returns>
        public SourceTableQuery PrepareCopyRemoteTable(TableReference table)
        {
            // -- Load schema
            var sm = this.GetSchemaManager(false);
            var ds = sm.Datasets[table.DatasetName];

            // Graywulf dataset has to be converted to prevent registry access
            if (ds is GraywulfDataset)
            {
                ds = new SqlServerDataset(ds);
            }

            // --- Generate most restrictive query

            // Find the query specification this table belongs to
            var qs = ((TableSource)table.Node).QuerySpecification;

            // Run the normalizer to convert where clause to a normal form
            var cnr = new SearchConditionNormalizer();

            cnr.NormalizeQuerySpecification(qs);

            var cg  = SqlCodeGeneratorFactory.CreateCodeGenerator(ds);
            var sql = cg.GenerateMostRestrictiveTableQuery(table, true, 0);

            return(new SourceTableQuery()
            {
                Dataset = ds,
                Query = sql
            });
        }
Ejemplo n.º 2
0
        private void CopyMembers(QueryObject old)
        {
            this.syncRoot = new object();

            this.context   = old.context;
            this.scheduler = old.scheduler;

            this.queryFactoryTypeName = old.queryFactoryTypeName;
            this.queryFactory         = new Lazy <QueryFactory>(() => (QueryFactory)Activator.CreateInstance(Type.GetType(queryFactoryTypeName)), false);

            this.federationReference = new EntityProperty <Registry.Federation>(old.federationReference);

            this.queryString = old.queryString;

            this.defaultDataset   = old.defaultDataset;
            this.temporaryDataset = old.temporaryDataset;
            this.codeDataset      = old.codeDataset;
            this.customDatasets   = new List <DatasetBase>(old.customDatasets);

            this.executionMode = old.executionMode;

            this.isCanceled      = false;
            this.cancelableTasks = new Dictionary <string, ICancelableTask>();

            this.assignedServerInstanceReference = new EntityProperty <ServerInstance>(old.assignedServerInstanceReference);
            this.selectStatement     = null;
            this.isInterpretFinished = false;

            this.temporaryDatabaseInstanceReference = new EntityProperty <DatabaseInstance>(old.temporaryDatabaseInstanceReference);

            this.temporaryTables = new ConcurrentDictionary <string, Table>(old.temporaryTables, SchemaManager.Comparer);
            this.temporaryViews  = new ConcurrentDictionary <string, View>(old.temporaryViews, SchemaManager.Comparer);

            this.codeDatabaseInstanceReference = new EntityProperty <DatabaseInstance>(old.codeDatabaseInstanceReference);
        }
Ejemplo n.º 3
0
 private void CopyMembers(DestinationTable old)
 {
     this.dataset      = old.dataset;
     this.databaseName = old.databaseName;
     this.schemaName   = old.schemaName;
     this.tableName    = old.tableName;
     this.options      = old.options;
 }
Ejemplo n.º 4
0
 private void InitializeMembers()
 {
     this.dataset      = null;
     this.databaseName = null;
     this.schemaName   = null;
     this.tableName    = null;
     this.options      = TableInitializationOptions.Create;
 }
Ejemplo n.º 5
0
        public DestinationTable(Table table)
        {
            InitializeMembers();

            this.dataset      = (SqlServerDataset)table.Dataset;
            this.databaseName = table.DatabaseName;
            this.schemaName   = table.SchemaName;
            this.tableName    = table.TableName;
        }
Ejemplo n.º 6
0
        private SchemaManager CreateSchemaManager()
        {
            var sm = new SqlServerSchemaManager();
            var ds = new SqlServerDataset(Jhu.Graywulf.Test.Constants.TestDatasetName, Jhu.Graywulf.Test.AppSettings.SqlServerSchemaTestConnectionString);

            sm.Datasets[ds.Name] = ds;

            return(sm);
        }
Ejemplo n.º 7
0
        public DestinationTable(Table table)
        {
            InitializeMembers();

            this.dataset = (SqlServerDataset)table.Dataset;
            this.databaseName = table.DatabaseName;
            this.schemaName = table.SchemaName;
            this.tableName = table.TableName;
        }
Ejemplo n.º 8
0
        public DestinationTable(SqlServerDataset dataset, string databaseName, string schemaName, string tableName, TableInitializationOptions options)
        {
            InitializeMembers();

            this.dataset = dataset;
            this.databaseName = databaseName;
            this.schemaName = schemaName;
            this.tableName = tableName;
            this.options = options;
        }
Ejemplo n.º 9
0
        public DestinationTable(SqlServerDataset dataset, string databaseName, string schemaName, string tableName, TableInitializationOptions options)
        {
            InitializeMembers();

            this.dataset      = dataset;
            this.databaseName = databaseName;
            this.schemaName   = schemaName;
            this.tableName    = tableName;
            this.options      = options;
        }
Ejemplo n.º 10
0
        private SqlServerDataset CreateTestDataset()
        {
            var csb = new SqlConnectionStringBuilder(Jhu.Graywulf.Schema.Test.AppSettings.SqlServerConnectionString);

            var ds = new SqlServerDataset(Jhu.Graywulf.Test.Constants.TestDatasetName, csb.ConnectionString)
            {
                DatabaseName = csb.InitialCatalog
            };

            return(ds);
        }
Ejemplo n.º 11
0
        protected override DatasetBase LoadDataset(string datasetName)
        {
            string key = String.Format("{0}.{1}", ConnectionStringNamePrefix, datasetName);

            SqlServerDataset ds =
                new SqlServerDataset(
                    datasetName,
                    ConfigurationManager.ConnectionStrings[key].ConnectionString);

            return ds;
        }
Ejemplo n.º 12
0
        protected override IEnumerable<KeyValuePair<string, DatasetBase>> LoadAllDatasets()
        {
            foreach (ConnectionStringSettings s in ConfigurationManager.ConnectionStrings)
            {
                if (s.Name.StartsWith(ConnectionStringNamePrefix))
                {
                    string name = s.Name.Substring(ConnectionStringNamePrefix.Length + 1);

                    SqlServerDataset ds =
                    new SqlServerDataset(
                        name,
                        s.ConnectionString);

                    yield return new KeyValuePair<string, DatasetBase>(name, ds);
                }
            }
        }
Ejemplo n.º 13
0
        protected override void GetInitializedQuery_SingleServer(QueryBase query, string queryString, string outputTable, SqlServerDataset mydbds, SqlServerDataset tempds, SqlServerDataset codeds)
        {
            query.ExecutionMode = ExecutionMode.SingleServer;
            query.QueryString   = queryString;

            query.QueryTimeout = 7200;

            if (mydbds != null)
            {
                query.DefaultDataset = mydbds;

                // Add MyDB as custom source
                query.CustomDatasets.Add(mydbds);

                // Set up MYDB for destination
                query.Destination = new DestinationTable(
                    mydbds,
                    mydbds.DatabaseName,
                    mydbds.DefaultSchemaName,
                    "",  // *** TODO ?
                    TableInitializationOptions.Drop | TableInitializationOptions.Create);
            }

            // Set up temporary and code database
            query.TemporaryDataset = tempds;
            query.CodeDataset      = codeds;
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Composes a source query for a remote table
        /// </summary>
        /// <param name="table"></param>
        /// <returns></returns>
        public SourceTableQuery PrepareCopyRemoteTable(TableReference table)
        {
            // -- Load schema
            var sm = this.GetSchemaManager(false);
            var ds = sm.Datasets[table.DatasetName];

            // Graywulf dataset has to be converted to prevent registry access
            if (ds is GraywulfDataset)
            {
                ds = new SqlServerDataset(ds);
            }

            // --- Generate most restrictive query

            // Find the query specification this table belongs to
            var qs = ((TableSource)table.Node).QuerySpecification;

            // Run the normalizer to convert where clause to a normal form
            var cnr = new SearchConditionNormalizer();
            cnr.NormalizeQuerySpecification(qs);

            var cg = SqlCodeGeneratorFactory.CreateCodeGenerator(ds);
            var sql = cg.GenerateMostRestrictiveTableQuery(table, true, 0);

            return new SourceTableQuery()
            {
                Dataset = ds,
                Query = sql
            };
        }
Ejemplo n.º 15
0
 protected abstract void GetInitializedQuery_SingleServer(QueryBase query, string queryString, string outputTable, SqlServerDataset mydbds, SqlServerDataset tempds);
Ejemplo n.º 16
0
        public SourceQueryParameters PrepareCopyRemoteTable(TableReference table)
        {
            // Load schema
            var sm = this.GetSchemaManager(false);
            var ds = sm.Datasets[table.DatasetName];

            // Graywulf dataset is to be converted to prevent registry access
            if (ds is GraywulfDataset)
            {
                ds = new SqlServerDataset(ds);
            }

            var source = new SourceQueryParameters();

            source.Dataset = ds;

            // Find the query specification this table belongs to
            var qs = ((TableSource)table.Node).QuerySpecification;

            // Run the normalizer
            var cnr = new SearchConditionNormalizer();
            cnr.NormalizeQuerySpecification(qs);

            var cg = SqlCodeGeneratorFactory.CreateCodeGenerator(ds);
            source.Query = cg.GenerateMostRestrictiveTableQuery(table, true, 0);

            return source;
        }
Ejemplo n.º 17
0
        protected override void GetInitializedQuery_SingleServer(QueryBase query, string queryString, string outputTable, SqlServerDataset mydbds, SqlServerDataset tempds, SqlServerDataset codeds)
        {
            query.ExecutionMode = ExecutionMode.SingleServer;
            query.QueryString = queryString;

            query.QueryTimeout = 7200;

            if (mydbds != null)
            {
                query.DefaultDataset = mydbds;

                // Add MyDB as custom source
                query.CustomDatasets.Add(mydbds);

                // Set up MYDB for destination
                query.Destination = new DestinationTable(
                    mydbds,
                    mydbds.DatabaseName,
                    mydbds.DefaultSchemaName,
                    "",  // *** TODO ?
                    TableInitializationOptions.Drop | TableInitializationOptions.Create);
            }

            // Set up temporary and code database
            query.TemporaryDataset = tempds;
            query.CodeDataset = codeds;
        }
Ejemplo n.º 18
0
        private SqlServerDataset CreateTestDataset()
        {
            var csb = new SqlConnectionStringBuilder(Jhu.Graywulf.Schema.Test.AppSettings.SqlServerConnectionString);

            var ds = new SqlServerDataset(Jhu.Graywulf.Test.Constants.TestDatasetName, csb.ConnectionString)
            {
                DatabaseName = csb.InitialCatalog
            };

            return ds;
        }
Ejemplo n.º 19
0
        private SchemaManager CreateSchemaManager()
        {
            var sm = new SqlServerSchemaManager();
            var ds = new SqlServerDataset("Test", "Data Source=localhost;Initial Catalog=Graywulf_Test;Integrated Security=true");

            sm.Datasets[ds.Name] = ds;

            return sm;
        }
Ejemplo n.º 20
0
        private void InitializeMembers(StreamingContext context)
        {
            this.syncRoot = new object();

            this.context = null;
            this.scheduler = null;

            this.queryFactoryTypeName = null;
            this.queryFactory = new Lazy<QueryFactory>(() => (QueryFactory)Activator.CreateInstance(Type.GetType(queryFactoryTypeName)), false);

            this.federationReference = new EntityProperty<Federation>();

            this.queryString = null;

            this.defaultDataset = null;
            this.temporaryDataset = null;
            this.codeDataset = null;
            this.customDatasets = new List<DatasetBase>();

            /*this.databaseVersionName = null;
            this.defaultDatasetName = null;
            this.defaultSchemaName = null;*/

            this.executionMode = ExecutionMode.SingleServer;

            this.isCanceled = false;
            this.cancelableTasks = new Dictionary<string, ICancelableTask>();

            this.assignedServerInstanceReference = new EntityProperty<ServerInstance>();
            this.interpretedQueryString = null;
            this.selectStatement = null;

            this.temporaryDatabaseInstanceReference = new EntityProperty<DatabaseInstance>();

            this.temporaryTables = new ConcurrentDictionary<string, Table>(SchemaManager.Comparer);
            this.temporaryViews = new ConcurrentDictionary<string, View>(SchemaManager.Comparer);

            this.codeDatabaseInstanceReference = new EntityProperty<DatabaseInstance>();
        }
Ejemplo n.º 21
0
        protected override void GetInitializedQuery_SingleServer(QueryBase query, string queryString, string outputTable, SqlServerDataset mydbds, SqlServerDataset tempds)
        {
            query.ExecutionMode = ExecutionMode.SingleServer;
            query.QueryString = queryString;

            query.QueryTimeout = 7200;

            if (mydbds != null)
            {
                query.DefaultDataset = mydbds;

                // Add MyDB as custom source
                query.CustomDatasets.Add(mydbds);

                // Set up MYDB for destination
                query.Destination.Table = new Table();
                query.Destination.Table.Dataset = mydbds;
                query.Destination.Table.DatabaseName = mydbds.DatabaseName;
                query.Destination.Table.SchemaName = mydbds.DefaultSchemaName;
                query.Destination.Operation = DestinationTableOperation.Drop | DestinationTableOperation.Create;
            }

            // Set up temporary database
            query.TemporaryDataset = tempds;
        }
Ejemplo n.º 22
0
 private void CopyMembers(DestinationTable old)
 {
     this.dataset = old.dataset;
     this.databaseName = old.databaseName;
     this.schemaName = old.schemaName;
     this.tableName = old.tableName;
     this.options = old.options;
 }
Ejemplo n.º 23
0
 private void InitializeMembers()
 {
     this.dataset = null;
     this.databaseName = null;
     this.schemaName = null;
     this.tableName = null;
     this.options = TableInitializationOptions.Create;
 }
        private SchemaManager CreateSchemaManager()
        {
            var sm = new SqlServerSchemaManager();
            var ds = new SqlServerDataset("Test", Jhu.Graywulf.Test.Constants.TestConnectionString);

            sm.Datasets[ds.Name] = ds;

            return sm;
        }
Ejemplo n.º 25
0
 protected abstract void GetInitializedQuery_SingleServer(QueryBase query, string queryString, string outputTable, SqlServerDataset mydbds, SqlServerDataset tempds, SqlServerDataset codeds);