Bug #36059 Support for variable 'have_falcon'.
Submitted: 14 Apr 2008 14:22 Modified: 15 Apr 2008 10:50
Reporter: Santo Leto Email Updates:
Status: Won't fix Impact on me:
None 
Category:MySQL Server: Falcon storage engine Severity:S4 (Feature request)
Version:6.0.4-alpha OS:Any
Assigned to: Sergey Vojtovich CPU Architecture:Any
Tags: falcon variables, have_falcon

[14 Apr 2008 14:22] Santo Leto
Description:
Could you please add a variable 'have_falcon'?

Thanks.

How to repeat:
mysql> SHOW VARIABLES LIKE 'have_falcon';
Empty set (0.00 sec)

Suggested fix:
The variable should be similar to 'have_maria' or 'have_innodb':

mysql> SHOW VARIABLES LIKE 'have_maria';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_maria    | YES   |
+---------------+-------+
1 row in set (0.00 sec)

mysql> SHOW VARIABLES LIKE 'have_innodb';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_innodb   | YES   |
+---------------+-------+
1 row in set (0.00 sec)
[14 Apr 2008 23:49] Kevin Lewis
Sergey, Do you know how easy this is to do?
[15 Apr 2008 9:01] Santo Leto
Do you know a workaround for this issue?

I was thinking to use the SHOW PLUGIN syntax but it doesn't support a WHERE clause.
So I can't execute a query like

SHOW PLUGINS WHERE `Name` = 'Falcon' and `Status` = 'Active';

I can only do a version comparison: 

if 
	mysql_get_server_version(..) > 60000 
then 
	ok 
else 
	unsupported

This is not a real workaround: it fails if you (later) add the falcon engine in the 5.1.x series.

So the question is: suppose you are connected to a server; is there a way to know if the server has the falcon engine?

If the answer is no, you probably could increase from S4 to S3.

Maybe you can execute

USE information_schema;
SHOW TABLES LIKE 'FAL%';

and then check the recordcount: if > 0 then falcon is supported otherwise isn't supported.

This way is not elegant.

Please advice.
Thank you.
[15 Apr 2008 9:59] Sergey Vojtovich
It is rather trivial to add 'have_falcon' variable. But as have_engine variables are not well suited to work with pluggable architecture we would unlikely do that (think about bugs like this are open for every 3-d party engine). And it is very likely that they will get obsoleted some time.

Currently there is a good way to check if an engine is enabled or not by querying information_scema.engines (works for both 5.1 and 6.0):
select * from information_schema.engines where engine='Falcon' and (support='DEFAULT' or support='YES');

Closing this bug as "Won't fix". If you still believe that have_falcon makes sence for you, feel free to reopen this bug.
[15 Apr 2008 10:50] Santo Leto
Thank you for the hint.
I forgot that table.

Rgs.