/// <summary>
        /// Listener for Unique Key detection
        /// </summary>
        /// <param name="context"></param>
        public override void EnterUniqueKeyTableConstraint([NotNull] UniqueKeyTableConstraintContext context)
        {
            base.EnterUniqueKeyTableConstraint(context);

            // unique key
            var definition = MySqlKeyDefinition.ExtractUniqueKey(context);

            TableDefinition.AddUniqueKey(definition);

            // map UniqueKey and existing Column reference
            definition.AddUniqueKeyReferenceOnColumn(TableDefinition.Columns);
        }
        /// <summary>
        /// Listener for Index Index detection
        /// </summary>
        /// <remarks>
        /// override method <see cref="EnterIndexColumnNames"/> includes PK and secondary key and it not contains index name. Therefore let's drill down declaration.
        /// </remarks>
        /// <param name="context"></param>
        public override void EnterIndexDeclaration([NotNull] IndexDeclarationContext context)
        {
            base.EnterIndexDeclaration(context);

            // index (secondary key)
            var definition = MySqlKeyDefinition.ExtractIndexKey(context);

            TableDefinition.AddIndexKey(definition);

            // map IndexKey and existing Column reference
            definition.AddIndexKeyReferenceOnColumn(TableDefinition.Columns);
        }
        /// <summary>
        /// Listener for Primary Key detection
        /// </summary>
        /// <param name="context"></param>
        public override void EnterPrimaryKeyTableConstraint([NotNull] PrimaryKeyTableConstraintContext context)
        {
            base.EnterPrimaryKeyTableConstraint(context);

            // primary key (pk)
            var definition = MySqlKeyDefinition.ExtractPrimaryKey(context);

            TableDefinition.PrimaryKey = definition;

            // map PrimaryKey and existing Column reference
            definition.AddPrimaryKeyReferenceOnColumn(TableDefinition.Columns);
        }