Beispiel #1
0
        /// <summary>
        /// Parses ADD FOREIGN KEY action.
        /// </summary>
        private static void ParseAddForeignKey(Parser parser, PgTable table)
        {
            IList <string> columnNames = new List <string>(1);

            parser.Expect("(");

            while (!parser.ExpectOptional(")"))
            {
                columnNames.Add(ParserUtils.GetObjectName(parser.ParseIdentifier()));

                if (parser.ExpectOptional(")"))
                {
                    break;
                }
                else
                {
                    parser.Expect(",");
                }
            }

            var constraintName = ParserUtils.GenerateName(table.Name + "_", columnNames, "_fkey");

            var constraint = new PgConstraint(constraintName);

            table.AddConstraint(constraint);
            constraint.Definition = parser.Expression();
            constraint.TableName  = table.Name;
        }
Beispiel #2
0
        private static void ParseConstraint(Parser parser, PgTable table)
        {
            var constraint = new PgConstraint(ParserUtils.GetObjectName(parser.ParseIdentifier()));

            table.AddConstraint(constraint);
            constraint.Definition = parser.GetExpression();
            constraint.TableName  = table.Name;
        }
Beispiel #3
0
        private static void ParseAddConstraint(Parser parser, PgTable table, PgSchema schema)
        {
            var constraintName = ParserUtils.GetObjectName(parser.ParseIdentifier());
            var constraint     = new PgConstraint(constraintName);

            constraint.TableName = table.Name;
            table.AddConstraint(constraint);

            if (parser.ExpectOptional("PRIMARY", "KEY"))
            {
                schema.AddPrimaryKey(constraint);
                constraint.Definition = "PRIMARY KEY " + parser.GetExpression();
            }
            else
            {
                constraint.Definition = parser.GetExpression();
            }
        }