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
ef8436be
Commit
ef8436be
authored
Jan 03, 2002
by
serg@serg.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
BIT_LENGTH ODBC function
parent
8b97f200
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
37 additions
and
0 deletions
+37
-0
Docs/manual.texi
Docs/manual.texi
+18
-0
mysql-test/r/func_str.result
mysql-test/r/func_str.result
+3
-0
mysql-test/t/func_str.test
mysql-test/t/func_str.test
+1
-0
sql/item_create.cc
sql/item_create.cc
+5
-0
sql/item_create.h
sql/item_create.h
+1
-0
sql/item_func.h
sql/item_func.h
+8
-0
sql/lex.h
sql/lex.h
+1
-0
No files found.
Docs/manual.texi
View file @
ef8436be
...
@@ -30076,6 +30076,15 @@ mysql> select OCTET_LENGTH('text');
...
@@ -30076,6 +30076,15 @@ mysql> select OCTET_LENGTH('text');
Note that for @code{CHAR_LENGTH()}, multi-byte characters are only counted
Note that for @code{CHAR_LENGTH()}, multi-byte characters are only counted
once.
once.
@findex BIT_LENGTH()
@item BIT_LENGTH(str)
Returns the length of the string @code{str} in bits:
@example
mysql> select BIT_LENGTH('text');
-> 32
@end example
@findex LOCATE()
@findex LOCATE()
@findex POSITION()
@findex POSITION()
@item LOCATE(substr,str)
@item LOCATE(substr,str)
...
@@ -47893,10 +47902,19 @@ Our TODO section contains what we plan to have in 4.0. @xref{TODO MySQL 4.0}.
...
@@ -47893,10 +47902,19 @@ Our TODO section contains what we plan to have in 4.0. @xref{TODO MySQL 4.0}.
@cindex changes, version 4.0
@cindex changes, version 4.0
@menu
@menu
* News-4.0.2:: Changes in release 4.0.2
* News-4.0.1:: Changes in release 4.0.1
* News-4.0.1:: Changes in release 4.0.1
* News-4.0.0:: Changes in release 4.0.0
* News-4.0.0:: Changes in release 4.0.0
@end menu
@end menu
@node News-4.0.2, News-4.0.1, News-4.0.x, News-4.0.x
@appendixsubsec Changes in release 4.0.2
@itemize @bullet
@item
ODBC compatibility: added @code{BIT_LENGTH()} function.
@end itemize
@node News-4.0.1, News-4.0.0, News-4.0.x, News-4.0.x
@node News-4.0.1, News-4.0.0, News-4.0.x, News-4.0.x
@appendixsubsec Changes in release 4.0.1
@appendixsubsec Changes in release 4.0.1
mysql-test/r/func_str.result
View file @
ef8436be
...
@@ -8,6 +8,9 @@ hellomonty
...
@@ -8,6 +8,9 @@ hellomonty
select length('\n\t\r\b\0\_\%\\');
select length('\n\t\r\b\0\_\%\\');
length('\n\t\r\b\0\_\%\\')
length('\n\t\r\b\0\_\%\\')
10
10
select bit_length('\n\t\r\b\0\_\%\\');
bit_length('\n\t\r\b\0\_\%\\')
80
select concat('monty',' was here ','again'),length('hello'),char(ascii('h'));
select concat('monty',' was here ','again'),length('hello'),char(ascii('h'));
concat('monty',' was here ','again') length('hello') char(ascii('h'))
concat('monty',' was here ','again') length('hello') char(ascii('h'))
monty was here again 5 h
monty was here again 5 h
...
...
mysql-test/t/func_str.test
View file @
ef8436be
...
@@ -9,6 +9,7 @@ drop table if exists t1;
...
@@ -9,6 +9,7 @@ drop table if exists t1;
select
'hello'
,
"'hello'"
,
'""hello""'
,
'''h''e''l''l''o'''
,
"hel""lo"
,
'hel\'lo'
;
select
'hello'
,
"'hello'"
,
'""hello""'
,
'''h''e''l''l''o'''
,
"hel""lo"
,
'hel\'lo'
;
select
'hello'
'monty'
;
select
'hello'
'monty'
;
select
length
(
'\n\t\r\b\0\_\%\\'
);
select
length
(
'\n\t\r\b\0\_\%\\'
);
select
bit_length
(
'\n\t\r\b\0\_\%\\'
);
select
concat
(
'monty'
,
' was here '
,
'again'
),
length
(
'hello'
),
char
(
ascii
(
'h'
));
select
concat
(
'monty'
,
' was here '
,
'again'
),
length
(
'hello'
),
char
(
ascii
(
'h'
));
select
locate
(
'he'
,
'hello'
),
locate
(
'he'
,
'hello'
,
2
),
locate
(
'lo'
,
'hello'
,
2
)
;
select
locate
(
'he'
,
'hello'
),
locate
(
'he'
,
'hello'
,
2
),
locate
(
'lo'
,
'hello'
,
2
)
;
select
instr
(
'hello'
,
'HE'
),
instr
(
'hello'
,
binary
'HE'
),
instr
(
binary
'hello'
,
'HE'
);
select
instr
(
'hello'
,
'HE'
),
instr
(
'hello'
,
binary
'HE'
),
instr
(
binary
'hello'
,
'HE'
);
...
...
sql/item_create.cc
View file @
ef8436be
...
@@ -200,6 +200,11 @@ Item *create_func_length(Item* a)
...
@@ -200,6 +200,11 @@ Item *create_func_length(Item* a)
return
new
Item_func_length
(
a
);
return
new
Item_func_length
(
a
);
}
}
Item
*
create_func_bit_length
(
Item
*
a
)
{
return
new
Item_func_bit_length
(
a
);
}
Item
*
create_func_char_length
(
Item
*
a
)
Item
*
create_func_char_length
(
Item
*
a
)
{
{
return
new
Item_func_char_length
(
a
);
return
new
Item_func_char_length
(
a
);
...
...
sql/item_create.h
View file @
ef8436be
...
@@ -22,6 +22,7 @@ Item *create_func_ascii(Item* a);
...
@@ -22,6 +22,7 @@ Item *create_func_ascii(Item* a);
Item
*
create_func_asin
(
Item
*
a
);
Item
*
create_func_asin
(
Item
*
a
);
Item
*
create_func_bin
(
Item
*
a
);
Item
*
create_func_bin
(
Item
*
a
);
Item
*
create_func_bit_count
(
Item
*
a
);
Item
*
create_func_bit_count
(
Item
*
a
);
Item
*
create_func_bit_length
(
Item
*
a
);
Item
*
create_func_ceiling
(
Item
*
a
);
Item
*
create_func_ceiling
(
Item
*
a
);
Item
*
create_func_char_length
(
Item
*
a
);
Item
*
create_func_char_length
(
Item
*
a
);
Item
*
create_func_connection_id
(
void
);
Item
*
create_func_connection_id
(
void
);
...
...
sql/item_func.h
View file @
ef8436be
...
@@ -501,6 +501,14 @@ class Item_func_length :public Item_int_func
...
@@ -501,6 +501,14 @@ class Item_func_length :public Item_int_func
void
fix_length_and_dec
()
{
max_length
=
10
;
}
void
fix_length_and_dec
()
{
max_length
=
10
;
}
};
};
class
Item_func_bit_length
:
public
Item_func_length
{
public:
Item_func_bit_length
(
Item
*
a
)
:
Item_func_length
(
a
)
{}
longlong
val_int
()
{
return
Item_func_length
::
val_int
()
*
8
;
}
const
char
*
func_name
()
const
{
return
"bit_length"
;
}
};
class
Item_func_char_length
:
public
Item_int_func
class
Item_func_char_length
:
public
Item_int_func
{
{
String
value
;
String
value
;
...
...
sql/lex.h
View file @
ef8436be
...
@@ -397,6 +397,7 @@ static SYMBOL sql_functions[] = {
...
@@ -397,6 +397,7 @@ static SYMBOL sql_functions[] = {
{
"BIT_OR"
,
SYM
(
BIT_OR
),
0
,
0
},
{
"BIT_OR"
,
SYM
(
BIT_OR
),
0
,
0
},
{
"BIT_AND"
,
SYM
(
BIT_AND
),
0
,
0
},
{
"BIT_AND"
,
SYM
(
BIT_AND
),
0
,
0
},
{
"CEILING"
,
SYM
(
FUNC_ARG1
),
0
,
CREATE_FUNC
(
create_func_ceiling
)},
{
"CEILING"
,
SYM
(
FUNC_ARG1
),
0
,
CREATE_FUNC
(
create_func_ceiling
)},
{
"BIT_LENGTH"
,
SYM
(
FUNC_ARG1
),
0
,
CREATE_FUNC
(
create_func_bit_length
)},
{
"CHAR_LENGTH"
,
SYM
(
FUNC_ARG1
),
0
,
CREATE_FUNC
(
create_func_char_length
)},
{
"CHAR_LENGTH"
,
SYM
(
FUNC_ARG1
),
0
,
CREATE_FUNC
(
create_func_char_length
)},
{
"CHARACTER_LENGTH"
,
SYM
(
FUNC_ARG1
),
0
,
CREATE_FUNC
(
create_func_char_length
)},
{
"CHARACTER_LENGTH"
,
SYM
(
FUNC_ARG1
),
0
,
CREATE_FUNC
(
create_func_char_length
)},
{
"COALESCE"
,
SYM
(
COALESCE
),
0
,
0
},
{
"COALESCE"
,
SYM
(
COALESCE
),
0
,
0
},
...
...
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