MySQL Lists are EOL. Please join:

List:Falcon Storage Engine« Previous MessageNext Message »
From:John Embretsen Date:July 3 2009 11:51am
Subject:Weekly Falcon bazaar merge
View as plain text  
Hi falconers,

I just finished a merge of our bazaar branches

   mysql-6.0-falcon-team (private) --> mysql-6.0-falcon (public)

Commit comments from the merged revisions are attached to this E-mail.

As always, please test your code tree for unusual problems such as
compile errors or the like.

The latest merge will appear in the public falcon branch on Launchpad
within a couple of hours. You can create your own local branch from

bzr branch lp:~mysql/mysql-server/mysql-6.0-falcon




Merged 9 revision(s):
revno: 2732 [merge]
committer: John H. Embretsen 
branch nick: mysql-6.0-falcon-to-merge
timestamp: Fri 2009-07-03 13:41:35 +0200
  Merge mysql-6.0-falcon-team --> mysql-6.0-falcon.
    revno: 2729.1.23
    committer: John H. Embretsen 
    branch nick: mysql-6.0-falcon-team-jsandbox
    timestamp: Fri 2009-07-03 13:14:02 +0200
      Bump Falcon's internal version number.
      We try to do this every time we merge upwards. This also makes it easier for
developers to compare the ages of different codebases.
    revno: 2729.1.22 [merge]
    committer: lars-erik.bjork
    branch nick: cleanup
    timestamp: Wed 2009-07-01 12:45:50 +0200
      merging ...
        revno: 2729.6.1
        committer: Christopher Powers 
        branch nick: mysql
        timestamp: Sun 2009-06-28 13:58:38 -0500
          Bug #45775, "Crash when adding primary key to Falcon table with unique
          There are several issues here:
          1) The server assigns TABLE->s->primary_key != MAX_KEY for EITHER a
primary key
             OR a unique key with non-null columns.
          2) Falcon assumed ::primary_key unambiguously identifies ONLY the primary key,
             and therfore incorrectly interpreted (a INT NOT NULL UNIQUE) as being a
             primary key declaration.
          3) Given (2), the command "ALTER TABLE ADD PRIMARY KEY (b)" caused an update
             conflict for which Falcon raised an exception that subsequently crashed.
          4) The crash was caused by a null pointer encountered during exception handling.
          Item 4 was easy to fix. Item 2, not so easy.
          Fortunately, the server always names the primary key "PRIMARY", so to
          distinguish between a primary key and a unique, non-null key, Falcon now checks
          the key name.
    revno: 2729.1.21
    committer: lars-erik.bjork
    branch nick: cleanup
    timestamp: Wed 2009-07-01 11:02:00 +0200
      IndexRootPage::splitIndexPage has a return statement that will never be exercised.
This is probably because
      of multiple rewrites of the method. Because of this, there is really no need for the
method to be declared
      to return a bool, as 'false' always will be the returned value. Changing the
declaration to void, improves the readability of the code, and allows us to
      readability and allows us to remove two if-statements
    revno: 2729.1.20 [merge]
    committer: Olav.Sandstaa
    branch nick: falcon-elog
    timestamp: Fri 2009-06-26 21:54:33 +0200
        revno: 2729.5.2 [merge]
        committer: Kevin Lewis 
        branch nick: mysql-6.0-falcon-team
        timestamp: Fri 2009-06-26 07:51:06 -0600
        revno: 2729.5.1
        committer: Kevin Lewis 
        branch nick: mysql-6.0-falcon-team
        timestamp: Thu 2009-06-25 16:48:40 -0600
          Bug#45701 - If a table has two foreign key relationships with one other table,
an alter table that drops one of the FKs will call external_lock twice for each table. And
if a table has a foreign key relationship with another table, an alter that creates
another foreign key relationship between the two tables will also call external_lock twice
for each table.
          So it is necessary for Falcon to support multiple calls to external_lock by the
same connection to the same table.  This was not needed before the Foriegn Key
          So the current Connection pointer is sent into Table::SetAlter() and stored in
Table::alterConnection.   And alterIsActive is now an int instead of a boolean.  If the
same connection locks the table a second time, alterIsActive is incremented and
alterConnection remains set.  It is not set to NULL until alterIsActive is decremented to
    revno: 2729.1.19
    committer: Olav.Sandstaa
    branch nick: falcon-elog
    timestamp: Fri 2009-06-26 13:13:44 +0200
      Bug#43490 Falcon internal thread terminate after throwing an instance of 'SQLError'
      The thrown exception contains the error string "can't continue after
      fatal error ". This exception is only thrown by the Falcon IO
      system. It is thrown after a fatal IO error has
      occurred. Unfortunately it gives very little information about what
      the actual error was.
      This patch improves the logging of "fatal" IO errors by writing to the
      error log file information about the error when it occurs. With this
      patch a message similar to this example will be written when
      IO::declareFatalError() is called:
      Falcon: Fatal IO error occurred in "IO::writePages": file
page 21: No space left on device (28)
      Note that this patch does not fix the problem but only improves the logging
      when the actually error occurs, hopefully making it easier to find the
      real error.

Weekly Falcon bazaar mergeJohn Embretsen3 Jul