Deveel.Data.CreateTriggerTests.CreateTestTable C# (CSharp) Method

CreateTestTable() private static method

private static CreateTestTable ( IQuery query ) : void
query IQuery
return void
        private static void CreateTestTable(IQuery query)
        {
            var tableName1 = ObjectName.Parse("APP.test_table");

            query.Access().CreateTable(table => table
                .Named(tableName1)
                .WithColumn(column => column
                    .Named("id")
                    .HavingType(PrimitiveTypes.Integer())
                    .WithDefault(SqlExpression.FunctionCall("UNIQUEKEY",
                        new SqlExpression[] {SqlExpression.Constant(tableName1.FullName)}))
                    .NotNull())
                .WithColumn("first_name", PrimitiveTypes.String())
                .WithColumn("last_name", PrimitiveTypes.String())
                .WithColumn("birth_date", PrimitiveTypes.DateTime())
                .WithColumn("active", PrimitiveTypes.Boolean()));

            query.Session.Access().AddPrimaryKey(tableName1, "id", "PK_TEST_TABLE");

            query.Access().CreateTable(table => table
                .Named("APP.test_table2")
                .WithColumn("person_id", PrimitiveTypes.Integer())
                .WithColumn("value", PrimitiveTypes.Boolean()));

            var body = new PlSqlBlockStatement();
            body.Statements.Add(new CallStatement(ObjectName.Parse("system.output"), new[] {
                new InvokeArgument(SqlExpression.Constant("One row was inserted"))
            }));
            var procedureInfo = new PlSqlProcedureInfo(ObjectName.Parse("APP.proc1"), new RoutineParameter[0], body);
            query.Access().CreateObject(procedureInfo);
        }