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
5333cfb4
Commit
5333cfb4
authored
Nov 05, 2002
by
monty@hundin.mysql.fi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Removed wrong patch to fix DATE BETWEEN TIMESTAMP1 AND TIMESTAMP2
Some simple optimizations
parent
aceaf381
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
50 additions
and
39 deletions
+50
-39
Docs/manual.texi
Docs/manual.texi
+9
-5
mysql-test/mysql-test-run.sh
mysql-test/mysql-test-run.sh
+1
-1
mysql-test/r/func_test.result
mysql-test/r/func_test.result
+0
-14
mysql-test/r/func_time.result
mysql-test/r/func_time.result
+16
-1
mysql-test/t/func_test.test
mysql-test/t/func_test.test
+0
-10
mysql-test/t/func_time.test
mysql-test/t/func_time.test
+18
-1
sql/field.h
sql/field.h
+0
-1
sql/item_cmpfunc.cc
sql/item_cmpfunc.cc
+0
-1
sql/lock.cc
sql/lock.cc
+3
-4
sql/set_var.cc
sql/set_var.cc
+2
-0
sql/sql_base.cc
sql/sql_base.cc
+1
-1
No files found.
Docs/manual.texi
View file @
5333cfb4
...
...
@@ -23510,17 +23510,21 @@ will be logged in the execution order.
Updates to non-transactional tables are stored in the binary log
immediately after execution. For transactional tables such as @code{BDB}
or @code{InnoDB} tables, all updates (@code{UPDATE}, @code{DELETE}
or @code{INSERT}) that change tables are cached until a @code{COMMIT}.
or @code{INSERT}) that change tables are cached until a @code{COMMIT} command
is sent to the server. At this point mysqld writes the whole transaction to
the binary log before the @code{COMMIT} is executed.
Every thread will, on start, allocate a buffer of @code{binlog_cache_size}
to buffer queries. If a query is bigger than this, the thread will open
a temporary file to
handle the bigger cache
. The temporary file will
a temporary file to
store the transcation
. The temporary file will
be deleted when the thread ends.
The @code{max_binlog_cache_size} can be used to restrict the total size used
to cache a multi-query transaction.
The @code{max_binlog_cache_size} (default 4G) can be used to restrict
the total size used to cache a multi-query transaction. If a transaction is
bigger than this it will fail and roll back.
If you are using the update or binary log, concurrent inserts will
not work together with @code{CREATE ... SELECT} and @code{INSERT ... SELECT}.
be converted to normal inserts when using @code{CREATE ... SELECT} and
@code{INSERT ... SELECT}.
This is to ensure that you can recreate an exact copy of your tables by
applying the log on a backup.
mysql-test/mysql-test-run.sh
View file @
5333cfb4
...
...
@@ -468,7 +468,7 @@ fi
MYSQL_TEST_ARGS
=
"--no-defaults --socket=
$MASTER_MYSOCK
--database=
$DB
\
--user=
$DBUSER
--password=
$DBPASSWD
--silent -v --skip-safemalloc
\
--tmpdir=
$MYSQL_TMP_DIR
"
--tmpdir=
$MYSQL_TMP_DIR
--port=
$MASTER_MYPORT
"
MYSQL_TEST_BIN
=
$MYSQL_TEST
MYSQL_TEST
=
"
$MYSQL_TEST
$MYSQL_TEST_ARGS
"
GDB_CLIENT_INIT
=
$MYSQL_TMP_DIR
/gdbinit.client
...
...
mysql-test/r/func_test.result
View file @
5333cfb4
...
...
@@ -46,20 +46,6 @@ select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1;
select 1 XOR 1, 1 XOR 0, 0 XOR 1, 0 XOR 0, NULL XOR 1, 1 XOR NULL, 0 XOR NULL;
1 XOR 1 1 XOR 0 0 XOR 1 0 XOR 0 NULL XOR 1 1 XOR NULL 0 XOR NULL
0 1 1 0 NULL NULL NULL
drop table if exists t1,t2;
CREATE TABLE t1 ( start datetime default NULL) TYPE=MyISAM;
INSERT INTO t1 VALUES ('2002-10-21 00:00:00');
INSERT INTO t1 VALUES ('2002-10-28 00:00:00');
INSERT INTO t1 VALUES ('2002-11-04 00:00:00');
CREATE TABLE t2 ( ctime1 timestamp(14) NOT NULL, ctime2 timestamp(14) NOT NULL) TYPE=MyISAM;
INSERT INTO t2 VALUES (20021029165106,20021105164731);
select * from t1, t2 where t1.start between t2.ctime1 and t2.ctime2;
start ctime1 ctime2
2002-11-04 00:00:00 20021029165106 20021105164731
select * from t1, t2 where t1.start >= t2.ctime1 and t1.start <= t2.ctime2;
start ctime1 ctime2
2002-11-04 00:00:00 20021029165106 20021105164731
drop table if exists t1,t2;
select 5 between 0 and 10 between 0 and 1,(5 between 0 and 10) between 0 and 1;
5 between 0 and 10 between 0 and 1 (5 between 0 and 10) between 0 and 1
0 1
...
...
mysql-test/r/func_time.result
View file @
5333cfb4
drop table if exists t1,t2;
drop table if exists t1,t2
,t3
;
select from_days(to_days("960101")),to_days(960201)-to_days("19960101"),to_days(date_add(curdate(), interval 1 day))-to_days(curdate()),weekday("1997-11-29");
from_days(to_days("960101")) to_days(960201)-to_days("19960101") to_days(date_add(curdate(), interval 1 day))-to_days(curdate()) weekday("1997-11-29")
1996-01-01 31 1 5
...
...
@@ -372,3 +372,18 @@ select extract(MONTH FROM "0000-00-00"),extract(MONTH FROM d),extract(MONTH FROM
extract(MONTH FROM "0000-00-00") extract(MONTH FROM d) extract(MONTH FROM dt) extract(MONTH FROM t) extract(MONTH FROM c)
0 0 0 0 0
drop table t1;
CREATE TABLE t1 ( start datetime default NULL);
INSERT INTO t1 VALUES ('2002-10-21 00:00:00'),('2002-10-28 00:00:00'),('2002-11-04 00:00:00');
CREATE TABLE t2 ( ctime1 timestamp(14) NOT NULL, ctime2 timestamp(14) NOT NULL);
INSERT INTO t2 VALUES (20021029165106,20021105164731);
CREATE TABLE t3 (ctime1 char(19) NOT NULL, ctime2 char(19) NOT NULL);
INSERT INTO t3 VALUES ("2002-10-29 16:51:06","2002-11-05 16:47:31");
select * from t1, t2 where t1.start between t2.ctime1 and t2.ctime2;
start ctime1 ctime2
select * from t1, t2 where t1.start >= t2.ctime1 and t1.start <= t2.ctime2;
start ctime1 ctime2
2002-11-04 00:00:00 20021029165106 20021105164731
select * from t1, t3 where t1.start between t3.ctime1 and t3.ctime2;
start ctime1 ctime2
2002-11-04 00:00:00 2002-10-29 16:51:06 2002-11-05 16:47:31
drop table t1,t2,t3;
mysql-test/t/func_test.test
View file @
5333cfb4
...
...
@@ -17,16 +17,6 @@ select 2 in (3,2,5,9,5,1),"monty" in ("david","monty","allan"), 1.2 in (1.4,1.2,
select
-
1.49
or
-
1.49
,
0.6
or
0.6
;
select
3
^
11
,
1
^
1
,
1
^
0
,
1
^
NULL
,
NULL
^
1
;
select
1
XOR
1
,
1
XOR
0
,
0
XOR
1
,
0
XOR
0
,
NULL
XOR
1
,
1
XOR
NULL
,
0
XOR
NULL
;
drop
table
if
exists
t1
,
t2
;
CREATE
TABLE
t1
(
start
datetime
default
NULL
)
TYPE
=
MyISAM
;
INSERT
INTO
t1
VALUES
(
'2002-10-21 00:00:00'
);
INSERT
INTO
t1
VALUES
(
'2002-10-28 00:00:00'
);
INSERT
INTO
t1
VALUES
(
'2002-11-04 00:00:00'
);
CREATE
TABLE
t2
(
ctime1
timestamp
(
14
)
NOT
NULL
,
ctime2
timestamp
(
14
)
NOT
NULL
)
TYPE
=
MyISAM
;
INSERT
INTO
t2
VALUES
(
20021029165106
,
20021105164731
);
select
*
from
t1
,
t2
where
t1
.
start
between
t2
.
ctime1
and
t2
.
ctime2
;
select
*
from
t1
,
t2
where
t1
.
start
>=
t2
.
ctime1
and
t1
.
start
<=
t2
.
ctime2
;
drop
table
if
exists
t1
,
t2
;
#
# Wrong usage of functions
...
...
mysql-test/t/func_time.test
View file @
5333cfb4
#
# time functions
#
drop
table
if
exists
t1
,
t2
;
drop
table
if
exists
t1
,
t2
,
t3
;
select
from_days
(
to_days
(
"960101"
)),
to_days
(
960201
)
-
to_days
(
"19960101"
),
to_days
(
date_add
(
curdate
(),
interval
1
day
))
-
to_days
(
curdate
()),
weekday
(
"1997-11-29"
);
select
period_add
(
"9602"
,
-
12
),
period_diff
(
199505
,
"9404"
)
;
...
...
@@ -160,3 +160,20 @@ select yearweek("0000-00-00"),yearweek(d),yearweek(dt),yearweek(t),yearweek(c) f
select
to_days
(
"0000-00-00"
),
to_days
(
d
),
to_days
(
dt
),
to_days
(
t
),
to_days
(
c
)
from
t1
;
select
extract
(
MONTH
FROM
"0000-00-00"
),
extract
(
MONTH
FROM
d
),
extract
(
MONTH
FROM
dt
),
extract
(
MONTH
FROM
t
),
extract
(
MONTH
FROM
c
)
from
t1
;
drop
table
t1
;
#
# Test problem with TIMESTAMP and BETWEEN
#
CREATE
TABLE
t1
(
start
datetime
default
NULL
);
INSERT
INTO
t1
VALUES
(
'2002-10-21 00:00:00'
),(
'2002-10-28 00:00:00'
),(
'2002-11-04 00:00:00'
);
CREATE
TABLE
t2
(
ctime1
timestamp
(
14
)
NOT
NULL
,
ctime2
timestamp
(
14
)
NOT
NULL
);
INSERT
INTO
t2
VALUES
(
20021029165106
,
20021105164731
);
CREATE
TABLE
t3
(
ctime1
char
(
19
)
NOT
NULL
,
ctime2
char
(
19
)
NOT
NULL
);
INSERT
INTO
t3
VALUES
(
"2002-10-29 16:51:06"
,
"2002-11-05 16:47:31"
);
# The following statement should be fixed to return a row in 4.1
select
*
from
t1
,
t2
where
t1
.
start
between
t2
.
ctime1
and
t2
.
ctime2
;
select
*
from
t1
,
t2
where
t1
.
start
>=
t2
.
ctime1
and
t1
.
start
<=
t2
.
ctime2
;
select
*
from
t1
,
t3
where
t1
.
start
between
t3
.
ctime1
and
t3
.
ctime2
;
drop
table
t1
,
t2
,
t3
;
sql/field.h
View file @
5333cfb4
...
...
@@ -544,7 +544,6 @@ class Field_timestamp :public Field_num {
enum
Item_result
result_type
()
const
{
return
field_length
==
8
||
field_length
==
14
?
INT_RESULT
:
STRING_RESULT
;
}
enum_field_types
type
()
const
{
return
FIELD_TYPE_TIMESTAMP
;}
enum
ha_base_keytype
key_type
()
const
{
return
HA_KEYTYPE_ULONG_INT
;
}
enum
Item_result
cmp_type
()
const
{
return
INT_RESULT
;
}
void
store
(
const
char
*
to
,
uint
length
);
void
store
(
double
nr
);
void
store
(
longlong
nr
);
...
...
sql/item_cmpfunc.cc
View file @
5333cfb4
...
...
@@ -360,7 +360,6 @@ void Item_func_between::fix_length_and_dec()
if
(
args
[
0
]
->
type
()
==
FIELD_ITEM
)
{
Field
*
field
=
((
Item_field
*
)
args
[
0
])
->
field
;
cmp_type
=
field
->
cmp_type
();
if
(
field
->
store_for_compare
())
{
if
(
convert_constant_item
(
field
,
&
args
[
1
]))
...
...
sql/lock.cc
View file @
5333cfb4
...
...
@@ -74,7 +74,7 @@ extern HASH open_cache;
static
MYSQL_LOCK
*
get_lock_data
(
THD
*
thd
,
TABLE
**
table
,
uint
count
,
bool
unlock
,
TABLE
**
write_locked
);
static
int
lock_external
(
TABLE
**
table
,
uint
count
);
static
int
lock_external
(
T
HD
*
thd
,
T
ABLE
**
table
,
uint
count
);
static
int
unlock_external
(
THD
*
thd
,
TABLE
**
table
,
uint
count
);
static
void
print_lock_error
(
int
error
);
...
...
@@ -110,7 +110,7 @@ MYSQL_LOCK *mysql_lock_tables(THD *thd,TABLE **tables,uint count)
}
thd
->
proc_info
=
"System lock"
;
if
(
lock_external
(
t
ables
,
count
))
if
(
lock_external
(
t
hd
,
tables
,
count
))
{
my_free
((
gptr
)
sql_lock
,
MYF
(
0
));
sql_lock
=
0
;
...
...
@@ -159,11 +159,10 @@ MYSQL_LOCK *mysql_lock_tables(THD *thd,TABLE **tables,uint count)
}
static
int
lock_external
(
T
ABLE
**
tables
,
uint
count
)
static
int
lock_external
(
T
HD
*
thd
,
TABLE
**
tables
,
uint
count
)
{
reg1
uint
i
;
int
lock_type
,
error
;
THD
*
thd
=
current_thd
;
DBUG_ENTER
(
"lock_external"
);
for
(
i
=
1
;
i
<=
count
;
i
++
,
tables
++
)
...
...
sql/set_var.cc
View file @
5333cfb4
...
...
@@ -502,7 +502,9 @@ struct show_var_st init_vars[]= {
{
"skip_networking"
,
(
char
*
)
&
opt_disable_networking
,
SHOW_BOOL
},
{
"skip_show_database"
,
(
char
*
)
&
opt_skip_show_db
,
SHOW_BOOL
},
{
sys_slow_launch_time
.
name
,
(
char
*
)
&
sys_slow_launch_time
,
SHOW_SYS
},
#ifdef HAVE_SYS_UN_H
{
"socket"
,
(
char
*
)
&
mysql_unix_port
,
SHOW_CHAR_PTR
},
#endif
{
sys_sort_buffer
.
name
,
(
char
*
)
&
sys_sort_buffer
,
SHOW_SYS
},
{
"sql_mode"
,
(
char
*
)
&
opt_sql_mode
,
SHOW_LONG
},
{
"table_cache"
,
(
char
*
)
&
table_cache_size
,
SHOW_LONG
},
...
...
sql/sql_base.cc
View file @
5333cfb4
...
...
@@ -1275,7 +1275,7 @@ static int open_unireg_entry(THD *thd, TABLE *entry, const char *db,
int
error
;
DBUG_ENTER
(
"open_unireg_entry"
);
(
void
)
sprintf
(
path
,
"%s/%s/%s"
,
mysql_data_home
,
db
,
name
);
strxmov
(
path
,
mysql_data_home
,
"/"
,
db
,
"/"
,
name
,
NullS
);
if
(
openfrm
(
path
,
alias
,
(
uint
)
(
HA_OPEN_KEYFILE
|
HA_OPEN_RNDFILE
|
HA_GET_INDEX
|
HA_TRY_READ_ONLY
),
...
...
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