Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
b83bf332
Commit
b83bf332
authored
Dec 21, 2001
by
serg@serg.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
HANDLER works only with MyISAM tables
HA_NO_FULLTEXT_KEY property -> HA_CAN_FULLTEXT
parent
7a6a543d
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
26 additions
and
17 deletions
+26
-17
sql/ha_berkeley.h
sql/ha_berkeley.h
+1
-1
sql/ha_heap.h
sql/ha_heap.h
+1
-1
sql/ha_innobase.h
sql/ha_innobase.h
+1
-1
sql/ha_isam.h
sql/ha_isam.h
+1
-1
sql/ha_isammrg.h
sql/ha_isammrg.h
+1
-1
sql/ha_myisam.h
sql/ha_myisam.h
+3
-2
sql/ha_myisammrg.h
sql/ha_myisammrg.h
+1
-1
sql/handler.h
sql/handler.h
+2
-1
sql/sql_handler.cc
sql/sql_handler.cc
+14
-7
sql/sql_table.cc
sql/sql_table.cc
+1
-1
No files found.
sql/ha_berkeley.h
View file @
b83bf332
...
@@ -90,7 +90,7 @@ class ha_berkeley: public handler
...
@@ -90,7 +90,7 @@ class ha_berkeley: public handler
HA_REC_NOT_IN_SEQ
|
HA_REC_NOT_IN_SEQ
|
HA_KEYPOS_TO_RNDPOS
|
HA_READ_ORDER
|
HA_LASTKEY_ORDER
|
HA_KEYPOS_TO_RNDPOS
|
HA_READ_ORDER
|
HA_LASTKEY_ORDER
|
HA_LONGLONG_KEYS
|
HA_NULL_KEY
|
HA_HAVE_KEY_READ_ONLY
|
HA_LONGLONG_KEYS
|
HA_NULL_KEY
|
HA_HAVE_KEY_READ_ONLY
|
HA_BLOB_KEY
|
HA_NOT_EXACT_COUNT
|
HA_NO_FULLTEXT_KEY
|
HA_BLOB_KEY
|
HA_NOT_EXACT_COUNT
|
HA_PRIMARY_KEY_IN_READ_INDEX
|
HA_DROP_BEFORE_CREATE
|
HA_PRIMARY_KEY_IN_READ_INDEX
|
HA_DROP_BEFORE_CREATE
|
HA_AUTO_PART_KEY
),
HA_AUTO_PART_KEY
),
changed_rows
(
0
),
last_dup_key
((
uint
)
-
1
),
version
(
0
),
using_ignore
(
0
)
changed_rows
(
0
),
last_dup_key
((
uint
)
-
1
),
version
(
0
),
using_ignore
(
0
)
...
...
sql/ha_heap.h
View file @
b83bf332
...
@@ -35,7 +35,7 @@ class ha_heap: public handler
...
@@ -35,7 +35,7 @@ class ha_heap: public handler
ulong
option_flag
()
const
ulong
option_flag
()
const
{
return
(
HA_READ_RND_SAME
|
HA_NO_INDEX
|
HA_ONLY_WHOLE_INDEX
|
{
return
(
HA_READ_RND_SAME
|
HA_NO_INDEX
|
HA_ONLY_WHOLE_INDEX
|
HA_WRONG_ASCII_ORDER
|
HA_KEYPOS_TO_RNDPOS
|
HA_NO_BLOBS
|
HA_WRONG_ASCII_ORDER
|
HA_KEYPOS_TO_RNDPOS
|
HA_NO_BLOBS
|
HA_REC_NOT_IN_SEQ
|
HA_NO_FULLTEXT_KEY
);
}
HA_REC_NOT_IN_SEQ
);
}
uint
max_record_length
()
const
{
return
HA_MAX_REC_LENGTH
;
}
uint
max_record_length
()
const
{
return
HA_MAX_REC_LENGTH
;
}
uint
max_keys
()
const
{
return
MAX_KEY
;
}
uint
max_keys
()
const
{
return
MAX_KEY
;
}
uint
max_key_parts
()
const
{
return
MAX_REF_PARTS
;
}
uint
max_key_parts
()
const
{
return
MAX_REF_PARTS
;
}
...
...
sql/ha_innobase.h
View file @
b83bf332
...
@@ -79,7 +79,7 @@ class ha_innobase: public handler
...
@@ -79,7 +79,7 @@ class ha_innobase: public handler
HA_KEYPOS_TO_RNDPOS
|
HA_LASTKEY_ORDER
|
HA_KEYPOS_TO_RNDPOS
|
HA_LASTKEY_ORDER
|
HA_HAVE_KEY_READ_ONLY
|
HA_READ_NOT_EXACT_KEY
|
HA_HAVE_KEY_READ_ONLY
|
HA_READ_NOT_EXACT_KEY
|
HA_LONGLONG_KEYS
|
HA_NULL_KEY
|
HA_LONGLONG_KEYS
|
HA_NULL_KEY
|
HA_NOT_EXACT_COUNT
|
HA_NO_FULLTEXT_KEY
|
HA_NOT_EXACT_COUNT
|
HA_NO_WRITE_DELAYED
|
HA_NO_WRITE_DELAYED
|
HA_PRIMARY_KEY_IN_READ_INDEX
|
HA_PRIMARY_KEY_IN_READ_INDEX
|
HA_DROP_BEFORE_CREATE
|
HA_DROP_BEFORE_CREATE
|
...
...
sql/ha_isam.h
View file @
b83bf332
...
@@ -34,7 +34,7 @@ class ha_isam: public handler
...
@@ -34,7 +34,7 @@ class ha_isam: public handler
HA_KEYPOS_TO_RNDPOS
|
HA_READ_ORDER
|
HA_LASTKEY_ORDER
|
HA_KEYPOS_TO_RNDPOS
|
HA_READ_ORDER
|
HA_LASTKEY_ORDER
|
HA_HAVE_KEY_READ_ONLY
|
HA_READ_NOT_EXACT_KEY
|
HA_HAVE_KEY_READ_ONLY
|
HA_READ_NOT_EXACT_KEY
|
HA_LONGLONG_KEYS
|
HA_KEY_READ_WRONG_STR
|
HA_DUPP_POS
|
HA_LONGLONG_KEYS
|
HA_KEY_READ_WRONG_STR
|
HA_DUPP_POS
|
HA_NOT_DELETE_WITH_CACHE
|
HA_NO_FULLTEXT_KEY
)
HA_NOT_DELETE_WITH_CACHE
)
{}
{}
~
ha_isam
()
{}
~
ha_isam
()
{}
const
char
*
table_type
()
const
{
return
"ISAM"
;
}
const
char
*
table_type
()
const
{
return
"ISAM"
;
}
...
...
sql/ha_isammrg.h
View file @
b83bf332
...
@@ -33,7 +33,7 @@ class ha_isammrg: public handler
...
@@ -33,7 +33,7 @@ class ha_isammrg: public handler
const
char
*
table_type
()
const
{
return
"MRG_ISAM"
;
}
const
char
*
table_type
()
const
{
return
"MRG_ISAM"
;
}
const
char
**
bas_ext
()
const
;
const
char
**
bas_ext
()
const
;
ulong
option_flag
()
const
{
return
HA_READ_RND_SAME
|
HA_KEYPOS_TO_RNDPOS
ulong
option_flag
()
const
{
return
HA_READ_RND_SAME
|
HA_KEYPOS_TO_RNDPOS
|
HA_REC_NOT_IN_SEQ
|
HA_NO_FULLTEXT_KEY
;}
|
HA_REC_NOT_IN_SEQ
;}
uint
max_record_length
()
const
{
return
HA_MAX_REC_LENGTH
;
}
uint
max_record_length
()
const
{
return
HA_MAX_REC_LENGTH
;
}
uint
max_keys
()
const
{
return
0
;
}
uint
max_keys
()
const
{
return
0
;
}
uint
max_key_parts
()
const
{
return
0
;
}
uint
max_key_parts
()
const
{
return
0
;
}
...
...
sql/ha_myisam.h
View file @
b83bf332
...
@@ -45,9 +45,10 @@ class ha_myisam: public handler
...
@@ -45,9 +45,10 @@ class ha_myisam: public handler
public:
public:
ha_myisam
(
TABLE
*
table
)
:
handler
(
table
),
file
(
0
),
ha_myisam
(
TABLE
*
table
)
:
handler
(
table
),
file
(
0
),
int_option_flag
(
HA_READ_NEXT
|
HA_READ_PREV
|
HA_READ_RND_SAME
|
int_option_flag
(
HA_READ_NEXT
|
HA_READ_PREV
|
HA_READ_RND_SAME
|
HA_KEYPOS_TO_RNDPOS
|
HA_READ_ORDER
|
HA_LASTKEY_ORDER
|
HA_KEYPOS_TO_RNDPOS
|
HA_READ_ORDER
|
HA_LASTKEY_ORDER
|
HA_HAVE_KEY_READ_ONLY
|
HA_READ_NOT_EXACT_KEY
|
HA_HAVE_KEY_READ_ONLY
|
HA_READ_NOT_EXACT_KEY
|
HA_LONGLONG_KEYS
|
HA_NULL_KEY
|
HA_LONGLONG_KEYS
|
HA_NULL_KEY
|
HA_CAN_FULLTEXT
|
HA_CAN_SQL_HANDLER
|
HA_DUPP_POS
|
HA_BLOB_KEY
|
HA_AUTO_PART_KEY
),
HA_DUPP_POS
|
HA_BLOB_KEY
|
HA_AUTO_PART_KEY
),
enable_activate_all_index
(
1
)
enable_activate_all_index
(
1
)
{}
{}
...
...
sql/ha_myisammrg.h
View file @
b83bf332
...
@@ -35,7 +35,7 @@ class ha_myisammrg: public handler
...
@@ -35,7 +35,7 @@ class ha_myisammrg: public handler
ulong
option_flag
()
const
ulong
option_flag
()
const
{
return
(
HA_REC_NOT_IN_SEQ
|
HA_READ_NEXT
|
{
return
(
HA_REC_NOT_IN_SEQ
|
HA_READ_NEXT
|
HA_READ_PREV
|
HA_READ_RND_SAME
|
HA_READ_PREV
|
HA_READ_RND_SAME
|
HA_HAVE_KEY_READ_ONLY
|
HA_NO_FULLTEXT_KEY
|
HA_HAVE_KEY_READ_ONLY
|
HA_KEYPOS_TO_RNDPOS
|
HA_READ_ORDER
|
HA_KEYPOS_TO_RNDPOS
|
HA_READ_ORDER
|
HA_LASTKEY_ORDER
|
HA_READ_NOT_EXACT_KEY
|
HA_LASTKEY_ORDER
|
HA_READ_NOT_EXACT_KEY
|
HA_LONGLONG_KEYS
|
HA_NULL_KEY
|
HA_BLOB_KEY
);
}
HA_LONGLONG_KEYS
|
HA_NULL_KEY
|
HA_BLOB_KEY
);
}
...
...
sql/handler.h
View file @
b83bf332
...
@@ -76,7 +76,8 @@
...
@@ -76,7 +76,8 @@
#define HA_NOT_DELETE_WITH_CACHE (HA_NOT_READ_AFTER_KEY*2)
#define HA_NOT_DELETE_WITH_CACHE (HA_NOT_READ_AFTER_KEY*2)
#define HA_NO_TEMP_TABLES (HA_NOT_DELETE_WITH_CACHE*2)
#define HA_NO_TEMP_TABLES (HA_NOT_DELETE_WITH_CACHE*2)
#define HA_NO_PREFIX_CHAR_KEYS (HA_NO_TEMP_TABLES*2)
#define HA_NO_PREFIX_CHAR_KEYS (HA_NO_TEMP_TABLES*2)
#define HA_NO_FULLTEXT_KEY (HA_NO_PREFIX_CHAR_KEYS*2)
#define HA_CAN_FULLTEXT (HA_NO_PREFIX_CHAR_KEYS*2)
#define HA_CAN_SQL_HANDLER (HA_CAN_FULLTEXT*2)
/* Parameters for open() (in register form->filestat) */
/* Parameters for open() (in register form->filestat) */
/* HA_GET_INFO does an implicit HA_ABORT_IF_LOCKED */
/* HA_GET_INFO does an implicit HA_ABORT_IF_LOCKED */
...
...
sql/sql_handler.cc
View file @
b83bf332
...
@@ -43,7 +43,7 @@
...
@@ -43,7 +43,7 @@
thd->open_tables=thd->handler_tables; \
thd->open_tables=thd->handler_tables; \
thd->handler_tables=tmp; }
thd->handler_tables=tmp; }
static
TABLE
**
find_table_ptr_by_name
(
THD
*
thd
,
const
char
*
db
,
static
TABLE
**
find_table_ptr_by_name
(
THD
*
thd
,
const
char
*
db
,
const
char
*
table_name
);
const
char
*
table_name
);
int
mysql_ha_open
(
THD
*
thd
,
TABLE_LIST
*
tables
)
int
mysql_ha_open
(
THD
*
thd
,
TABLE_LIST
*
tables
)
...
@@ -54,6 +54,13 @@ int mysql_ha_open(THD *thd, TABLE_LIST *tables)
...
@@ -54,6 +54,13 @@ int mysql_ha_open(THD *thd, TABLE_LIST *tables)
if
(
err
)
if
(
err
)
return
-
1
;
return
-
1
;
// there can be only one table in *tables
if
(
!
(
tables
->
table
->
file
->
option_flag
()
&
HA_CAN_SQL_HANDLER
))
{
my_printf_error
(
ER_ILLEGAL_HA
,
ER
(
ER_ILLEGAL_HA
),
MYF
(
0
),
tables
->
name
);
return
-
1
;
}
send_ok
(
&
thd
->
net
);
send_ok
(
&
thd
->
net
);
return
0
;
return
0
;
}
}
...
@@ -73,7 +80,7 @@ int mysql_ha_close(THD *thd, TABLE_LIST *tables)
...
@@ -73,7 +80,7 @@ int mysql_ha_close(THD *thd, TABLE_LIST *tables)
return
0
;
return
0
;
}
}
static
enum
enum_ha_read_modes
rkey_to_rnext
[]
=
static
enum
enum_ha_read_modes
rkey_to_rnext
[]
=
{
RNEXT
,
RNEXT
,
RPREV
,
RNEXT
,
RPREV
,
RNEXT
,
RPREV
};
{
RNEXT
,
RNEXT
,
RPREV
,
RNEXT
,
RPREV
,
RNEXT
,
RPREV
};
int
mysql_ha_read
(
THD
*
thd
,
TABLE_LIST
*
tables
,
int
mysql_ha_read
(
THD
*
thd
,
TABLE_LIST
*
tables
,
...
@@ -166,7 +173,7 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
...
@@ -166,7 +173,7 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
if
(
!
(
key
=
(
byte
*
)
sql_calloc
(
ALIGN_SIZE
(
key_len
))))
if
(
!
(
key
=
(
byte
*
)
sql_calloc
(
ALIGN_SIZE
(
key_len
))))
{
{
send_error
(
&
thd
->
net
,
ER_OUTOFMEMORY
);
send_error
(
&
thd
->
net
,
ER_OUTOFMEMORY
);
goto
err
;
goto
err
;
}
}
key_copy
(
key
,
table
,
keyno
,
key_len
);
key_copy
(
key
,
table
,
keyno
,
key_len
);
err
=
table
->
file
->
index_read
(
table
->
record
[
0
],
err
=
table
->
file
->
index_read
(
table
->
record
[
0
],
...
@@ -176,7 +183,7 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
...
@@ -176,7 +183,7 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
}
}
default:
default:
send_error
(
&
thd
->
net
,
ER_ILLEGAL_HA
);
send_error
(
&
thd
->
net
,
ER_ILLEGAL_HA
);
goto
err
;
goto
err
;
}
}
if
(
err
)
if
(
err
)
...
@@ -191,7 +198,7 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
...
@@ -191,7 +198,7 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
goto
ok
;
goto
ok
;
}
}
if
(
cond
)
if
(
cond
)
{
{
err
=
err
;
err
=
err
;
if
(
!
cond
->
val_int
())
if
(
!
cond
->
val_int
())
continue
;
continue
;
...
@@ -234,7 +241,7 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
...
@@ -234,7 +241,7 @@ int mysql_ha_read(THD *thd, TABLE_LIST *tables,
**************************************************************************/
**************************************************************************/
/* Note: this function differs from find_locked_table() because we're looking
/* Note: this function differs from find_locked_table() because we're looking
here for alias, not real table name
here for alias, not real table name
*/
*/
static
TABLE
**
find_table_ptr_by_name
(
THD
*
thd
,
const
char
*
db
,
static
TABLE
**
find_table_ptr_by_name
(
THD
*
thd
,
const
char
*
db
,
const
char
*
table_name
)
const
char
*
table_name
)
...
@@ -244,7 +251,7 @@ static TABLE **find_table_ptr_by_name(THD *thd, const char *db,
...
@@ -244,7 +251,7 @@ static TABLE **find_table_ptr_by_name(THD *thd, const char *db,
if
(
!
db
||
!
*
db
)
if
(
!
db
||
!
*
db
)
db
=
thd
->
db
?
thd
->
db
:
""
;
db
=
thd
->
db
?
thd
->
db
:
""
;
dblen
=
strlen
(
db
)
+
1
;
dblen
=
strlen
(
db
)
+
1
;
ptr
=&
(
thd
->
handler_tables
);
ptr
=&
(
thd
->
handler_tables
);
for
(
TABLE
*
table
=*
ptr
;
table
;
table
=*
ptr
)
for
(
TABLE
*
table
=*
ptr
;
table
;
table
=*
ptr
)
...
...
sql/sql_table.cc
View file @
b83bf332
...
@@ -430,7 +430,7 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name,
...
@@ -430,7 +430,7 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name,
if
(
key
->
type
==
Key
::
FULLTEXT
)
if
(
key
->
type
==
Key
::
FULLTEXT
)
{
{
if
(
file
->
option_flag
()
&
HA_NO_FULLTEXT_KEY
)
if
(
!
(
file
->
option_flag
()
&
HA_CAN_FULLTEXT
)
)
{
{
my_error
(
ER_TABLE_CANT_HANDLE_FULLTEXT
,
MYF
(
0
));
my_error
(
ER_TABLE_CANT_HANDLE_FULLTEXT
,
MYF
(
0
));
DBUG_RETURN
(
-
1
);
DBUG_RETURN
(
-
1
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment