[Firebird-devel] [FB-Tracker] Created: (CORE-4599) replace funcion with utf-8 extrange behaviour
replace funcion with utf-8 extrange behaviour - Key: CORE-4599 URL: http://tracker.firebirdsql.org/browse/CORE-4599 Project: Firebird Core Issue Type: Bug Components: Charsets/Collation Affects Versions: 2.5.3 Environment: windows7 and linux centos 6.5. Database creation script is: create database "localhost:alias" user "username" password "*" page_size 16384 default character set utf8 collation unicode_ci_ai; Reporter: Pablo León Test done with flamerobin, though also fails from jaybird: recreate table test1 (field1 varchar(50)); insert into test1 values ('PABLO NUÑEZ SANCHEZ'); update test1 set field1=replace(field1,'Ñ','N'); select * from test1; and you obtain "PABLO NÑN SANCNZ" instead of expected "PABLO NUNEZ SANCHEZ". I other situations we obtain an OOM error from firebird or even get a server crash, here is server log: PALEVI-XPS (Server) Fri Nov 07 13:10:53 2014 Access violation. The code attempted to access a virtual address without privilege to do so. This exception will cause the Firebird server to terminate abnormally. PALEVI-XPS (Server) Fri Nov 07 13:10:53 2014 Shutting down the server with 1 active connection(s) to 1 database(s), 0 active service(s) PALEVI-XPS (Server) Fri Nov 07 13:10:58 2014 Firebird shutdown is still in progress after the specified timeout PALEVI-XPS (Server) Fri Nov 07 13:10:58 2014 Operating system call ReleaseSemaphore failed. Error code 6 PALEVI-XPS (Server) Fri Nov 07 13:10:58 2014 Operating system call ReleaseSemaphore failed. Error code 6 PALEVI-XPS (Client) Fri Nov 07 13:10:58 2014 "C:\Program Files\Firebird\Firebird_2_5\bin\fbserver.exe": terminated abnormally (4294967295) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://tracker.firebirdsql.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira -- Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
[Firebird-devel] I need help with parse.y
Hello, All. I've changed parse.y with attached diff, but even after clean full rebuild isql shows me this error: SQL> set transaction no replication; Commit current transaction (y/n)?n Rolling back work. Statement failed, SQLSTATE = 42000 Dynamic SQL Error -SQL error code = -104 -Token unknown - line 1, column 20 -replication I'm out of ideas what I did wrong. -- WBR, SD. parse.y.diff.7z Description: Binary data -- Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] I need help with parse.y
On 07/11/2014 14:03, Dimitry Sibiryakov wrote: > Hello, All. > > I've changed parse.y with attached diff, but even after clean full > rebuild isql shows me this error: > > SQL> set transaction no replication; > Commit current transaction (y/n)?n > Rolling back work. > Statement failed, SQLSTATE = 42000 > Dynamic SQL Error > -SQL error code = -104 > -Token unknown - line 1, column 20 > -replication > > I'm out of ideas what I did wrong. > Was not added it to keywords.cpp? Adriano -- Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] I need help with parse.y
Dimitry, > SQL> set transaction no replication; > Commit current transaction (y/n)?n > Rolling back work. > Statement failed, SQLSTATE = 42000 > Dynamic SQL Error > -SQL error code = -104 > -Token unknown - line 1, column 20 > -replication Are you proposing to make this change (adding "no replication" syntax) to the Firebird codebase? Sean -- Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] I need help with parse.y
07.11.2014 17:07, Adriano dos Santos Fernandes wrote: > Was not added it to keywords.cpp? Yep, that is the trick. Thanks. -- WBR, SD. -- Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] I need help with parse.y
07.11.2014 17:18, Leyne, Sean wrote: > Are you proposing to make this change (adding "no replication" syntax) to the > Firebird codebase? So far it is a private fork. But, according to the IDPL license, you can merge changed sources to the main codebase if you wish as soon as they are published. -- WBR, SD. -- Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] I need help with parse.y
On Fri, 07 Nov 2014 17:21:51 +0100, Dimitry Sibiryakov wrote: > 07.11.2014 17:18, Leyne, Sean wrote: >> Are you proposing to make this change (adding "no replication" syntax) >> to the Firebird codebase? > >So far it is a private fork. But, according to the IDPL license, you >can merge changed > sources to the main codebase if you wish as soon as they are published. Maybe a different syntax for these type of extensions would be better as it introduces less pollution in the parser and would make it easier to introduce extensions without changing the parser. Consider something like: SET TRANSACTION WITH (replication=off, some_other_option=5, etc=true) These options (and their values) are not keywords(!), but values/names (comparable to a column name in a SELECT clause). Checking validity of the names and values is deferred to execute time instead of statement parse time. This is similar to what for example SQL Server has with its index options: http://msdn.microsoft.com/en-us/library/ms188783.aspx. I believe SQL server has a this WITH-feature in multiple DDL and DML statements. Mark -- Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] SET TRANSACTION option to disable replication
On 11/6/2014 10:40 AM, Dimitry Sibiryakov wrote: > Hello, All. > > I wonder if SQL standard says something about syntax of transaction's > option for > disabling replication of changes made by this transaction? > I might be wrong, but I think this whole topic needs a more than a bit more thought. Statement level multi-master replication is basically impossible to get right, so you need to pick among a set of bad options. There about a billion things that can go wrong (consider a timestamp or random number generator, for example) that requires hacks. The reason MySQL was able to charge $40k per node for an enterprise license was that an enterprise license was required to access support, and multi-master replication without expert support is so full of elephant pits that no rational person would want to go there without an emergency parachute. I strongly suggest that you not sweat the syntax until you get a firm grasp on the semantics. -- Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Re: [Firebird-devel] SET TRANSACTION option to disable replication
07.11.2014 19:58, Jim Starkey wrote: > Statement level multi-master replication is basically > impossible to get right, so you need to pick among a set of bad > options. There about a billion things that can go wrong (consider a > timestamp or random number generator, for example) that requires hacks. That's why I'm stuck on record-level replication which has much less issues. -- WBR, SD. -- Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel