class YieldableInsert extends YieldableMerSert {

        public YieldableInsert(Insert statement, AsyncHandler<AsyncResult<Integer>> asyncHandler) {
            super(statement, asyncHandler);
        }

        @Override
        protected boolean startInternal() {<FILL_FUNCTION_BODY>}

        @Override
        protected void stopInternal() {
            table.fire(session, Trigger.INSERT, false);
        }

        @Override
        protected void merSert(Row row) {
            addRowInternal(row);
        }
    }

            if (!table.trySharedLock(session))
                return true;
            session.getUser().checkRight(table, Right.INSERT);
            table.fire(session, Trigger.INSERT, true);
            return super.startInternal();
        
<methods>public void <init>(com.lealone.db.session.ServerSession) ,public void addRow(com.lealone.sql.expression.Expression[]) ,public void clearRows() ,public int getPriority() ,public boolean isCacheable() ,public com.lealone.sql.PreparedSQLStatement prepare() ,public void setColumns(com.lealone.db.table.Column[]) ,public void setQuery(com.lealone.sql.query.Query) ,public void setTable(com.lealone.db.table.Table) <variables>protected com.lealone.db.table.Column[] columns,protected final ArrayList<com.lealone.sql.expression.Expression[]> list,protected com.lealone.sql.query.Query query,protected com.lealone.db.table.Table table