Пример #1
0
        // create statement
        private void HandleStatement(CreateStatement statement)
        {
            _catalogManager.CheckValidation(statement);
            switch (statement.CreateType)
            {
            case CreateType.Table:
                int newTableRoot = _recordManager.CreateTable();
                _catalogManager.CreateStatement(statement, newTableRoot);
                break;

            case CreateType.Index:
                SchemaRecord tableSchema  = _catalogManager.GetTableSchemaRecord(statement.TableName);
                int          newIndexRoot = _recordManager.CreateIndex(tableSchema.RootPage, statement.AttributeName, tableSchema.SQL.AttributeDeclarations);
                _catalogManager.CreateStatement(statement, newIndexRoot);
                break;
            }
        }
Пример #2
0
        //check whether we can successfully return the schema record of a table or an index
        static bool CheckGetSchemaRecord()
        {
            SchemaRecord target_table = icatalog.GetTableSchemaRecord("Student");

            Console.WriteLine("Schema of Table");
            Console.WriteLine(target_table.Name);
            Console.WriteLine(target_table.RootPage);
            Console.WriteLine(target_table.Type);
            Console.WriteLine(target_table.SQL.PrimaryKey);
            Console.WriteLine(target_table.SQL.TableName);
            Console.WriteLine(target_table.SQL.Type);

            SchemaRecord target_index = icatalog.GetIndexSchemaRecord("index_for_student_id");

            Console.WriteLine("Schema of Index");
            Console.WriteLine(target_index.Name);
            Console.WriteLine(target_index.RootPage);
            Console.WriteLine(target_index.Type);
            Console.WriteLine(target_index.SQL.IndexName);
            Console.WriteLine(target_index.SQL.IsUnique);
            Console.WriteLine(target_index.SQL.Type);

            List <SchemaRecord> target_indices = icatalog.GetIndicesSchemaRecord("Student");

            for (int i = 0; i < target_indices.Count; i++)
            {
                Console.WriteLine("Schema of Indices");
                Console.WriteLine(target_indices[i].Name);
                Console.WriteLine(target_indices[i].RootPage);
                Console.WriteLine(target_indices[i].Type);
                Console.WriteLine(target_indices[i].SQL.IndexName);
                Console.WriteLine(target_indices[i].SQL.IsUnique);
                Console.WriteLine(target_indices[i].SQL.Type);
            }
            return(true);
        }