summaryrefslogtreecommitdiff
path: root/storage/maria/ma_open.c
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2011-01-14 11:54:39 +0100
committerSergei Golubchik <sergii@pisem.net>2011-01-14 11:54:39 +0100
commitf5ea301acc593b51b13303899246a38efff92c1a (patch)
treeb85595f5ed66cbb43d12be94f66dc49e3a35d561 /storage/maria/ma_open.c
parent17c188779b2c3d5abafe233a31df32a1a6f20c54 (diff)
downloadmariadb-git-f5ea301acc593b51b13303899246a38efff92c1a.tar.gz
Added support for NO_RECORD record format (don't store any row data) for Aria.
This makes the keys smaller (no row pointer) and gives us proper errors if we use the table wrongly. sql/sql_select.cc: Use NO_RECORD for tables that doesn't need row data. storage/maria/Makefile.am: Added ma_norec.c storage/maria/ma_check.c: Added support for NO_RECORD record format (don't store any row data) storage/maria/ma_norec.c: Added support for NO_RECORD record format storage/maria/ma_open.c: Added support for NO_RECORD record format storage/maria/ma_search.c: Added support for 0 size row pointers (used with NO_RECORD) storage/maria/ma_test1.c: Added testing of NO_RECORD record format. storage/maria/maria_chk.c: Added support for NO_RECORD storage/maria/maria_def.h: Added support for NO_RECORD storage/maria/unittest/ma_test_all-t: Added testing of NO_RECORD record format
Diffstat (limited to 'storage/maria/ma_open.c')
-rw-r--r--storage/maria/ma_open.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/storage/maria/ma_open.c b/storage/maria/ma_open.c
index ae3a3918eee..95df7378f05 100644
--- a/storage/maria/ma_open.c
+++ b/storage/maria/ma_open.c
@@ -1076,6 +1076,20 @@ void _ma_setup_functions(register MARIA_SHARE *share)
else
share->calc_checksum= _ma_checksum;
break;
+ case NO_RECORD:
+ share->read_record= _ma_read_no_record;
+ share->scan= _ma_read_rnd_no_record;
+ share->delete_record= _ma_delete_no_record;
+ share->update_record= _ma_update_no_record;
+ share->write_record= _ma_write_no_record;
+ share->recpos_to_keypos= _ma_no_keypos_to_recpos;
+ share->keypos_to_recpos= _ma_no_keypos_to_recpos;
+
+ /* Abort if following functions are called */
+ share->compare_record= 0;
+ share->compare_unique= 0;
+ share->calc_checksum= 0;
+ break;
case BLOCK_RECORD:
share->once_init= _ma_once_init_block_record;
share->once_end= _ma_once_end_block_record;