mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
Merge
include/violite.h: Auto merged mysql-test/r/ps_7ndb.result: Auto merged sql/sql_parse.cc: Auto merged sql/sql_select.cc: Manual merge
This commit is contained in:
commit
72aef9c207
9 changed files with 31 additions and 34 deletions
|
@ -144,8 +144,8 @@ int vio_close_shared_memory(Vio * vio);
|
|||
#if !defined(DONT_MAP_VIO)
|
||||
#define vio_delete(vio) (vio)->viodelete(vio)
|
||||
#define vio_errno(vio) (vio)->vioerrno(vio)
|
||||
#define vio_read(vio, buf, size) (vio)->read(vio,buf,size)
|
||||
#define vio_write(vio, buf, size) (vio)->write(vio, buf, size)
|
||||
#define vio_read(vio, buf, size) ((vio)->read)(vio,buf,size)
|
||||
#define vio_write(vio, buf, size) ((vio)->write)(vio, buf, size)
|
||||
#define vio_blocking(vio, set_blocking_mode, old_mode)\
|
||||
(vio)->vioblocking(vio, set_blocking_mode, old_mode)
|
||||
#define vio_is_blocking(vio) (vio)->is_blocking(vio)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
drop table if exists t1;
|
||||
SET NAMES cp1251;
|
||||
create table t1 (a varchar(10) not null);
|
||||
create table t1 (a varchar(10) not null) character set cp1251;
|
||||
insert into t1 values ("a"),("ab"),("abc");
|
||||
select * from t1;
|
||||
a
|
||||
|
@ -23,7 +23,7 @@ a
|
|||
b
|
||||
c
|
||||
drop table t1;
|
||||
create table t1 (a char(15) binary, b binary(15));
|
||||
create table t1 (a char(15) binary, b binary(15)) character set cp1251;
|
||||
insert into t1 values ('aaa','bbb'),('AAA','BBB');
|
||||
select upper(a),upper(b) from t1;
|
||||
upper(a) upper(b)
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
--default-character-set=cp1251 --new
|
||||
|
|
@ -10,7 +10,7 @@ SET NAMES cp1251;
|
|||
# Test problem with LEFT() (Bug #514)
|
||||
#
|
||||
|
||||
create table t1 (a varchar(10) not null);
|
||||
create table t1 (a varchar(10) not null) character set cp1251;
|
||||
insert into t1 values ("a"),("ab"),("abc");
|
||||
select * from t1;
|
||||
select a, left(a,1) as b from t1;
|
||||
|
@ -21,7 +21,7 @@ drop table t1;
|
|||
#
|
||||
# Test of binary and upper/lower
|
||||
#
|
||||
create table t1 (a char(15) binary, b binary(15));
|
||||
create table t1 (a char(15) binary, b binary(15)) character set cp1251;
|
||||
insert into t1 values ('aaa','bbb'),('AAA','BBB');
|
||||
select upper(a),upper(b) from t1;
|
||||
select lower(a),lower(b) from t1;
|
||||
|
|
|
@ -4579,6 +4579,7 @@ check_access(THD *thd, ulong want_access, const char *db, ulong *save_priv,
|
|||
{
|
||||
#ifndef NO_EMBEDDED_ACCESS_CHECKS
|
||||
ulong db_access;
|
||||
bool db_is_pattern= test(want_access & GRANT_ACL);
|
||||
#endif
|
||||
ulong dummy;
|
||||
DBUG_ENTER("check_access");
|
||||
|
@ -4610,9 +4611,8 @@ check_access(THD *thd, ulong want_access, const char *db, ulong *save_priv,
|
|||
*/
|
||||
db_access= thd->db_access;
|
||||
if (!(thd->master_access & SELECT_ACL) &&
|
||||
(db && (!thd->db || strcmp(db,thd->db))))
|
||||
db_access=acl_get(thd->host, thd->ip,
|
||||
thd->priv_user, db, test(want_access & GRANT_ACL));
|
||||
(db && (!thd->db || db_is_pattern || strcmp(db,thd->db))))
|
||||
db_access=acl_get(thd->host, thd->ip, thd->priv_user, db, db_is_pattern);
|
||||
*save_priv=thd->master_access | db_access;
|
||||
DBUG_RETURN(FALSE);
|
||||
}
|
||||
|
@ -4633,9 +4633,8 @@ check_access(THD *thd, ulong want_access, const char *db, ulong *save_priv,
|
|||
if (db == any_db)
|
||||
DBUG_RETURN(FALSE); // Allow select on anything
|
||||
|
||||
if (db && (!thd->db || strcmp(db,thd->db)))
|
||||
db_access=acl_get(thd->host, thd->ip,
|
||||
thd->priv_user, db, test(want_access & GRANT_ACL));
|
||||
if (db && (!thd->db || db_is_pattern || strcmp(db,thd->db)))
|
||||
db_access=acl_get(thd->host, thd->ip, thd->priv_user, db, db_is_pattern);
|
||||
else
|
||||
db_access=thd->db_access;
|
||||
DBUG_PRINT("info",("db_access: %lu", db_access));
|
||||
|
|
|
@ -7591,14 +7591,13 @@ const_expression_in_where(COND *cond, Item *comp_item, Item **const_item)
|
|||
create_tmp_field_from_field()
|
||||
thd Thread handler
|
||||
org_field field from which new field will be created
|
||||
item Item to create a field for
|
||||
name New field name
|
||||
table Temporary table
|
||||
modify_item 1 if item->result_field should point to new item.
|
||||
This is relevent for how fill_record() is going to
|
||||
work:
|
||||
If modify_item is 1 then fill_record() will update
|
||||
item !=NULL if item->result_field should point to new field.
|
||||
This is relevant for how fill_record() is going to work:
|
||||
If item != NULL then fill_record() will update
|
||||
the record in the original table.
|
||||
If modify_item is 0 then fill_record() will update
|
||||
If item == NULL then fill_record() will update
|
||||
the temporary table
|
||||
convert_blob_length If >0 create a varstring(convert_blob_length) field
|
||||
instead of blob.
|
||||
|
@ -7609,9 +7608,8 @@ const_expression_in_where(COND *cond, Item *comp_item, Item **const_item)
|
|||
*/
|
||||
|
||||
Field* create_tmp_field_from_field(THD *thd, Field* org_field,
|
||||
Item *item, TABLE *table,
|
||||
bool modify_item,
|
||||
uint convert_blob_length)
|
||||
const char *name, TABLE *table,
|
||||
Item_field *item, uint convert_blob_length)
|
||||
{
|
||||
Field *new_field;
|
||||
|
||||
|
@ -7624,10 +7622,10 @@ Field* create_tmp_field_from_field(THD *thd, Field* org_field,
|
|||
new_field= org_field->new_field(thd->mem_root, table);
|
||||
if (new_field)
|
||||
{
|
||||
if (modify_item)
|
||||
((Item_field *)item)->result_field= new_field;
|
||||
if (item)
|
||||
item->result_field= new_field;
|
||||
else
|
||||
new_field->field_name= item->name;
|
||||
new_field->field_name= name;
|
||||
if (org_field->maybe_null())
|
||||
new_field->flags&= ~NOT_NULL_FLAG; // Because of outer join
|
||||
if (org_field->type() == MYSQL_TYPE_VAR_STRING ||
|
||||
|
@ -7782,8 +7780,10 @@ Field *create_tmp_field(THD *thd, TABLE *table,Item *item, Item::Type type,
|
|||
case Item::DEFAULT_VALUE_ITEM:
|
||||
{
|
||||
Item_field *field= (Item_field*) item;
|
||||
return create_tmp_field_from_field(thd, (*from_field= field->field), item,
|
||||
table, modify_item, convert_blob_length);
|
||||
return create_tmp_field_from_field(thd, (*from_field= field->field),
|
||||
item->name, table,
|
||||
modify_item ? (Item_field*) item : NULL,
|
||||
convert_blob_length);
|
||||
}
|
||||
case Item::FUNC_ITEM:
|
||||
case Item::COND_ITEM:
|
||||
|
@ -7805,7 +7805,7 @@ Field *create_tmp_field(THD *thd, TABLE *table,Item *item, Item::Type type,
|
|||
{
|
||||
Field *example= ((Item_type_holder *)item)->example();
|
||||
if (example)
|
||||
return create_tmp_field_from_field(thd, example, item, table, 0,
|
||||
return create_tmp_field_from_field(thd, example, item->name, table, NULL,
|
||||
convert_blob_length);
|
||||
return create_tmp_field_from_item(thd, item, table, copy_func, 0,
|
||||
convert_blob_length);
|
||||
|
|
|
@ -394,7 +394,7 @@ my_strtoll10:
|
|||
popl %ebp
|
||||
ret
|
||||
|
||||
my_strtoll10_end:
|
||||
.my_strtoll10_end:
|
||||
.size my_strtoll10,.my_strtoll10_end-my_strtoll10
|
||||
.comm res,240,32
|
||||
.comm end_ptr,120,32
|
||||
|
|
|
@ -115,7 +115,7 @@ main(int argc, char** argv)
|
|||
{
|
||||
/* child, therefore, client */
|
||||
char xbuf[100];
|
||||
int r = client_vio->read(client_vio,xbuf, sizeof(xbuf));
|
||||
int r = vio_read(client_vio,xbuf, sizeof(xbuf));
|
||||
if (r<=0) {
|
||||
my_free((gptr)ssl_acceptor,MYF(0));
|
||||
my_free((gptr)ssl_connector,MYF(0));
|
||||
|
@ -130,7 +130,7 @@ main(int argc, char** argv)
|
|||
else
|
||||
{
|
||||
const char* s = "Huhuhuh";
|
||||
int r = server_vio->write(server_vio,(gptr)s, strlen(s));
|
||||
int r = vio_write(server_vio,(gptr)s, strlen(s));
|
||||
if (r<=0) {
|
||||
my_free((gptr)ssl_acceptor,MYF(0));
|
||||
my_free((gptr)ssl_connector,MYF(0));
|
||||
|
|
|
@ -77,13 +77,13 @@ main( int argc __attribute__((unused)),
|
|||
sa.sin_port = htons (1111); /* Server Port number */
|
||||
|
||||
err = connect(client_vio->sd, (struct sockaddr*) &sa,
|
||||
sizeof(sa));
|
||||
sizeof(sa));
|
||||
|
||||
/* ----------------------------------------------- */
|
||||
/* Now we have TCP conncetion. Start SSL negotiation. */
|
||||
read(client_vio->sd,xbuf, sizeof(xbuf));
|
||||
sslconnect(ssl_connector,client_vio,60L);
|
||||
err = client_vio->read(client_vio,xbuf, sizeof(xbuf));
|
||||
err = vio_read(client_vio,xbuf, sizeof(xbuf));
|
||||
if (err<=0) {
|
||||
my_free((gptr)ssl_connector,MYF(0));
|
||||
fatal_error("client:SSL_read");
|
||||
|
|
Loading…
Reference in a new issue