/// <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; }
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; }
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(); } }