Re: [sqlalchemy] Problem with binary field

2019-02-01 Thread Teymur Agayev
Hi Mike,

Thank you for your help.
with mysqlclient  everything works OK.
just in case below is error i had with mysqlclient connector.

Traceback (most recent call last):
  File "/var/app/admin.feeds.az/scripts/test.py", line 18, in 
t = session.query(Test.hash).filter(Test.id == 380059).all()
  File "/var/venv/lib/python3.6/site-packages/sqlalchemy/orm/query.py", 
line 2925, in all
return list(self)
  File "/var/venv/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", 
line 105, in instances
util.raise_from_cause(err)
  File "/var/venv/lib/python3.6/site-packages/sqlalchemy/util/compat.py", 
line 296, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/var/venv/lib/python3.6/site-packages/sqlalchemy/util/compat.py", 
line 277, in reraise
raise value
  File "/var/venv/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", 
line 89, in instances
for row in fetch
  File "/var/venv/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", 
line 89, in 
for row in fetch
  File "/var/venv/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", 
line 88, in 
keyed_tuple([proc(row) for proc in process])
  File "/var/venv/lib/python3.6/site-packages/sqlalchemy/sql/sqltypes.py", 
line 936, in process
value = bytes(value)
TypeError: string argument without an encoding



On Friday, February 1, 2019 at 2:12:55 AM UTC+4, Mike Bayer wrote:
>
> Please use mysqlclient or pymysql, don't use mysqlclient connector.  Also 
> please define "crash".  complete stack trace please ?
>
> On Thu, Jan 31, 2019, 4:44 PM Teymur Agayev   wrote:
>
>> Hi All,
>>
>> After upgrade on my VPS the one of the scripts started periodical crash.
>> After debugging I found that the problem in the filed that stores hashes. 
>> for some reason the script started crash on some particular hash values.
>> Below is the test script and attached is the database dump.
>>
>> when ID is 380059 script crashs, other ids, 380058 or 380060 for example, 
>> work ok.
>>
>> from sqlalchemy import MetaData, Column, Integer, LargeBinary
>> from sqlalchemy.ext.declarative import declarative_base
>> from sqlalchemy import create_engine
>> from sqlalchemy.orm import sessionmaker
>>
>> metadata = MetaData()
>> Base = declarative_base(metadata=metadata)
>>
>> class Test(Base):
>> __tablename__ = "test"
>> id = Column(Integer, primary_key=True)
>> hash = Column(LargeBinary(16))
>>
>> engine = create_engine('mysql+mysqlconnector://root:q2w3e4r5@localhost/
>> ru.feeds.az')
>> Session = sessionmaker(bind=engine)
>> session = Session()
>>
>> t = session.query(Test.hash).filter(Test.id == 380059).all()
>> print(t)
>>
>>
>> On this system doesn't work.
>> Python 3.6, SQLAlchemy 1.2.17
>>
>> On this systems works fine.
>> Python 3.5, SQLAlchemy 1.1.14
>>
>> Is it a bug or I just doing something wrong.
>>
>> Thanks,
>> Teymur
>>
>> -- 
>> SQLAlchemy - 
>> The Python SQL Toolkit and Object Relational Mapper
>>  
>> http://www.sqlalchemy.org/
>>  
>> To post example code, please provide an MCVE: Minimal, Complete, and 
>> Verifiable Example. See http://stackoverflow.com/help/mcve for a full 
>> description.
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "sqlalchemy" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to sqlalchemy+...@googlegroups.com .
>> To post to this group, send email to sqlal...@googlegroups.com 
>> .
>> Visit this group at https://groups.google.com/group/sqlalchemy.
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.


[sqlalchemy] Problem with binary field

2019-01-31 Thread Teymur Agayev
Hi All,

After upgrade on my VPS the one of the scripts started periodical crash.
After debugging I found that the problem in the filed that stores hashes. 
for some reason the script started crash on some particular hash values.
Below is the test script and attached is the database dump.

when ID is 380059 script crash, other ids, 380058 or 380060 for example, 
work OK.

from sqlalchemy import MetaData, Column, Integer, LargeBinary
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

metadata = MetaData()
Base = declarative_base(metadata=metadata)

class Test(Base):
__tablename__ = "test"
id = Column(Integer, primary_key=True)
hash = Column(LargeBinary(16))

engine = create_engine('')
Session = sessionmaker(bind=engine)
session = Session()

t = session.query(Test.hash).filter(Test.id == 380059).all()
print(t)


On this system doesn't work.
Python 3.6, SQLAlchemy 1.2.17

On this systems works fine.
Python 3.5, SQLAlchemy 1.1.14

Is it a bug or I just doing something wrong.

Thanks,
Teymur

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.


[sqlalchemy] Problem with binary field

2019-01-31 Thread Teymur Agayev
Hi All,

After upgrade on my VPS the one of the scripts started periodical crash.
After debugging I found that the problem in the filed that stores hashes. 
for some reason the script started crash on some particular hash values.
Below is the test script and attached is the database dump.

when ID is 380059 script crashs, other ids, 380058 or 380060 for example, 
work ok.

from sqlalchemy import MetaData, Column, Integer, LargeBinary
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

metadata = MetaData()
Base = declarative_base(metadata=metadata)

class Test(Base):
__tablename__ = "test"
id = Column(Integer, primary_key=True)
hash = Column(LargeBinary(16))

engine = 
create_engine('mysql+mysqlconnector://root:q2w3e4r5@localhost/ru.feeds.az')
Session = sessionmaker(bind=engine)
session = Session()

t = session.query(Test.hash).filter(Test.id == 380059).all()
print(t)


On this system doesn't work.
Python 3.6, SQLAlchemy 1.2.17

On this systems works fine.
Python 3.5, SQLAlchemy 1.1.14

Is it a bug or I just doing something wrong.

Thanks,
Teymur

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.
-- MySQL dump 10.13  Distrib 5.7.25, for Linux (x86_64)
--
-- Host: localhostDatabase: ru.feeds.az
-- --
-- Server version	5.7.25-0ubuntu0.18.04.2-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `test`
--

DROP TABLE IF EXISTS `test`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `test` (
  `id` int(10) unsigned zerofill NOT NULL AUTO_INCREMENT,
  `hash` binary(16) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `url_hash_UNIQUE` (`hash`)
) ENGINE=InnoDB AUTO_INCREMENT=380241 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `test`
--

LOCK TABLES `test` WRITE;
/*!4 ALTER TABLE `test` DISABLE KEYS */;
INSERT INTO `test` VALUES (380058,0x21B11D9B9D2168E0D35E1BE6AF55A096),(380059,0x6D3BCAA5241A62480DC8AECDA5625863),(380060,0x7E3541D9BDFE8473A0DA0EB5ACAB832E),(380057,0x9F1B213C50F645F4D7BB02CBAB021BBA);
/*!4 ALTER TABLE `test` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2019-02-01  0:30:14