Re: [Firebird-devel] ICU in HEAD

2019-02-08 Thread Dimitry Sibiryakov

08.02.2019 12:29, Alex Peshkoff via Firebird-devel wrote:

- adapt search knowing existing versions numbers (see 
http://site.icu-project.org/download)


Yes, this should be efficient.


  I would limit tried versions to only those which are known to work with 
Firebird.
  For example, cut off those versions that cannot be loaded from non-ANSI paths or those 
that contain outdated TZ information.



--
  WBR, SD.


Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] ICU in HEAD

2019-02-08 Thread Alex Peshkoff via Firebird-devel

On 2/8/19 3:00 PM, Vlad Khorsun wrote:

08.02.2019 13:29, Alex Peshkoff via Firebird-devel wrote:

On 2/8/19 12:15 PM, Vlad Khorsun wrote:

08.02.2019 10:48, Alex Peshkoff via Firebird-devel wrote:

On 2/8/19 10:56 AM, Vlad Khorsun wrote:


  Is it time to re-think how UnicodeUtil::getConversionICU() 
search for ICU library ?




Suggestions?
The fastest way sooner of all will be storing favorite ICU verson 
(once detected using long process) somewhere out of databases. But 
may be some better idea?


  I see "icu_versions" parameter at fbintl.conf but it seems not 
used by getConversionICU().

Probably it could be used here ?


Not sure is it needed or not currently (Adriano should know better) - 
but I dislike an idea of making .conf files firebird-writable for 
security reasons.


  I doesn't offer to write anything into .conf. I ask if we can use 
already present parameter.
It is used by loadICU(), but not by getConversionICU() (which is 
called earlier, as i see)




May be we can. I've thought about writing to it cause thread has my 
words ''storing favorite ICU verson (once detected using long process)". 
As solution for windows it's probably OK.





Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] ICU in HEAD

2019-02-08 Thread Alex Peshkoff via Firebird-devel

On 2/8/19 12:15 PM, Vlad Khorsun wrote:

08.02.2019 10:48, Alex Peshkoff via Firebird-devel wrote:

On 2/8/19 10:56 AM, Vlad Khorsun wrote:


  Is it time to re-think how UnicodeUtil::getConversionICU() search 
for ICU library ?




Suggestions?
The fastest way sooner of all will be storing favorite ICU verson 
(once detected using long process) somewhere out of databases. But 
may be some better idea?


  I see "icu_versions" parameter at fbintl.conf but it seems not used 
by getConversionICU().

Probably it could be used here ?


Not sure is it needed or not currently (Adriano should know better) - 
but I dislike an idea of making .conf files firebird-writable for 
security reasons.




  Also, we could limit number of ICU versions to check:
- exclude really old versions (at least with old X.Y versioning 
scheme, i.e. 4.8 and older)


Suppose we may exclude versions missing TZ support needed for FB4. What 
about versioning scheme - now it depends upon build parameters and 
therefore in linux is distro-depended. Not good criteria IMHO :)


- adapt search knowing existing versions numbers (see 
http://site.icu-project.org/download)


Yes, this should be efficient.


- guess number of future versions



Ask the spirit of Vanga?  ;)

Getting serious we may just decrease number of future versions to 
analyze - anyway they will invent something making that versions not 
loadable with current code.





Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] ICU in HEAD

2019-02-08 Thread Alex Peshkoff via Firebird-devel

On 2/8/19 2:24 PM, Dimitry Sibiryakov wrote:

08.02.2019 12:21, Alex Peshkoff via Firebird-devel wrote:
  The error you are getting is different, so I would guess that 
search loop is aborted faster in this case.


Is it good idea to provide full error message? (like I did - not to 
make other guess)


  Not in this case, but here it is:

creating msg.fdb
SQL> can't format message 17:0 -- message file 
C:\Users\SD\MYDOCU~1\firebird\temp\x64\release\firebird\firebird.msg 
not found

Could not find acceptable ICU library
SQL> loading msg.sql
can't format message 17:0 -- message file 
C:\Users\SD\MYDOCU~1\firebird\temp\x64\release\firebird\firebird.msg 
not found

Could not find acceptable ICU library
can't format message 17:120 -- message file 
C:\Users\SD\MYDOCU~1\firebird\temp\x64\release\firebird\firebird.msg 
not found




Well - as for me I can with some efforts read that . As a minimum it's 
clear that it differs from what I get.

When fully reproduced your case must say that result does not differ much:

# time (echo 'exit;' | ./isql employee)
Statement failed, SQLSTATE = XX000
Could not find acceptable ICU library
Use CONNECT or CREATE DATABASE to specify a database

real    0m0.199s
user    0m0.048s
sys 0m0.086s




Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] ICU in HEAD

2019-02-08 Thread Dimitry Sibiryakov

08.02.2019 12:21, Alex Peshkoff via Firebird-devel wrote:
  The error you are getting is different, so I would guess that search loop is aborted 
faster in this case.


Is it good idea to provide full error message? (like I did - not to make other 
guess)


  Not in this case, but here it is:

creating msg.fdb
SQL> can't format message 17:0 -- message file 
C:\Users\SD\MYDOCU~1\firebird\temp\x64\release\firebird\firebird.msg not found

Could not find acceptable ICU library
SQL> loading msg.sql
can't format message 17:0 -- message file 
C:\Users\SD\MYDOCU~1\firebird\temp\x64\release\firebird\firebird.msg not found

Could not find acceptable ICU library
can't format message 17:120 -- message file 
C:\Users\SD\MYDOCU~1\firebird\temp\x64\release\firebird\firebird.msg not found


--
  WBR, SD.


Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] ICU in HEAD

2019-02-08 Thread Alex Peshkoff via Firebird-devel

On 2/8/19 2:01 PM, Dimitry Sibiryakov wrote:

08.02.2019 8:31, Alex Peshkoff via Firebird-devel wrote:

I can't reproduce performance problem:

# time (echo 'exit;' | ./isql employee)
Statement failed, SQLSTATE = XX000
Could not find acceptable ICU library
-Missing entrypoint u_setDataDirectory in ICU library


  The error you are getting is different, so I would guess that search 
loop is aborted faster in this case.


Is it good idea to provide full error message? (like I did - not to make 
other guess)


Also on linux other providers, which are called after Engine13 
failure, may work differently and don't waste time waiting for connect 
to host "C", for example.


I remember there was a code avoiding host names contatning single drive 
letter. But may be I'm missing something with windows build...
Anyway - iif you suppose problems with other providers you can turn them 
off to avoid side effects.





Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] ICU in HEAD

2019-02-08 Thread Dimitry Sibiryakov

08.02.2019 10:15, Vlad Khorsun wrote:

   Also, we could limit number of ICU versions to check:
- exclude really old versions (at least with old X.Y versioning scheme, i.e. 
4.8 and older)
- adapt search knowing existing versions numbers (see 
http://site.icu-project.org/download)
- guess number of future versions


  I would also suggest to search from newest versions to oldest.

  But one question left: why the ICU which is in sources is considered "unacceptable"? 
Does it miss any functionality _required_ for build process?


--
  WBR, SD.


Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] ICU in HEAD

2019-02-08 Thread Dimitry Sibiryakov

08.02.2019 8:31, Alex Peshkoff via Firebird-devel wrote:

I can't reproduce performance problem:

# time (echo 'exit;' | ./isql employee)
Statement failed, SQLSTATE = XX000
Could not find acceptable ICU library
-Missing entrypoint u_setDataDirectory in ICU library


  The error you are getting is different, so I would guess that search loop is aborted 
faster in this case. Also on linux other providers, which are called after Engine13 
failure, may work differently and don't waste time waiting for connect to host "C", for 
example.
  Unfortunately, MSVC 2013 Community Edition does not include a profiler, but I'll try to 
see what is happening with ProcessMonitor.


--
  WBR, SD.


Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] ICU in HEAD

2019-02-08 Thread Vlad Khorsun

08.02.2019 10:48, Alex Peshkoff via Firebird-devel wrote:

On 2/8/19 10:56 AM, Vlad Khorsun wrote:



  Is it time to re-think how UnicodeUtil::getConversionICU() search for ICU 
library ?



Suggestions?
The fastest way sooner of all will be storing favorite ICU verson (once detected using long process) somewhere out of databases. But 
may be some better idea?


  I see "icu_versions" parameter at fbintl.conf but it seems not used by 
getConversionICU().
Probably it could be used here ?

  Also, we could limit number of ICU versions to check:
- exclude really old versions (at least with old X.Y versioning scheme, i.e. 
4.8 and older)
- adapt search knowing existing versions numbers (see 
http://site.icu-project.org/download)
- guess number of future versions

Regards,
Vlad



Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] ICU in HEAD

2019-02-08 Thread Alex Peshkoff via Firebird-devel

On 2/8/19 10:56 AM, Vlad Khorsun wrote:

08.02.2019 9:31, Alex Peshkoff via Firebird-devel wrote:

On 2/7/19 6:14 PM, Dimitry Sibiryakov wrote:

Hello, All.

  I somehow understand why build of current HEAD is failing with 
message "Could not find acceptable ICU library", but I wonder why it 
takes so much time to get this error? More than 15 second between 
running of isql and this failure on my notebook.


  Probably, you have too much entries in PATH


I can't reproduce performance problem:

>
> # time (echo 'exit;' | ./isql employee)
> Statement failed, SQLSTATE = XX000
> Could not find acceptable ICU library
> -Missing entrypoint u_setDataDirectory in ICU library
> Use CONNECT or CREATE DATABASE to specify a database
>
> real    0m0.204s

  This is too much, imo. Hope strace could show the huge number of 
calls made.


Yes.


I can show such trace on Windows, if you wish.

  Is it time to re-think how UnicodeUtil::getConversionICU() search 
for ICU library ?




Suggestions?
The fastest way sooner of all will be storing favorite ICU verson (once 
detected using long process) somewhere out of databases. But may be some 
better idea?





Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] ICU in HEAD

2019-02-07 Thread Vlad Khorsun

08.02.2019 9:31, Alex Peshkoff via Firebird-devel wrote:

On 2/7/19 6:14 PM, Dimitry Sibiryakov wrote:

Hello, All.

  I somehow understand why build of current HEAD is failing with message "Could not find acceptable ICU library", but I wonder why 
it takes so much time to get this error? More than 15 second between running of isql and this failure on my notebook.


  Probably, you have too much entries in PATH


I can't reproduce performance problem:

>
> # time (echo 'exit;' | ./isql employee)
> Statement failed, SQLSTATE = XX000
> Could not find acceptable ICU library
> -Missing entrypoint u_setDataDirectory in ICU library
> Use CONNECT or CREATE DATABASE to specify a database
>
> real0m0.204s

  This is too much, imo. Hope strace could show the huge number of calls made.
I can show such trace on Windows, if you wish.

  Is it time to re-think how UnicodeUtil::getConversionICU() search for ICU 
library ?

Regards,
Vlad

PS going to update "favorite" ICU version to 6.3


Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] ICU in HEAD

2019-02-07 Thread Alex Peshkoff via Firebird-devel

On 2/7/19 6:14 PM, Dimitry Sibiryakov wrote:

Hello, All.

  I somehow understand why build of current HEAD is failing with 
message "Could not find acceptable ICU library", but I wonder why it 
takes so much time to get this error? More than 15 second between 
running of isql and this failure on my notebook.




I can't reproduce performance problem:

# time (echo 'exit;' | ./isql employee)
Statement failed, SQLSTATE = XX000
Could not find acceptable ICU library
-Missing entrypoint u_setDataDirectory in ICU library
Use CONNECT or CREATE DATABASE to specify a database

real    0m0.204s
user    0m0.051s
sys 0m0.085s




Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


Re: [Firebird-devel] ICU in HEAD

2019-02-07 Thread Roman Simakov
Have you tried to profile? :)

чт, 7 февр. 2019 г. в 18:15, Dimitry Sibiryakov :
>
>Hello, All.
>
>I somehow understand why build of current HEAD is failing with message 
> "Could not find
> acceptable ICU library", but I wonder why it takes so much time to get this 
> error? More
> than 15 second between running of isql and this failure on my notebook.
>
> --
>WBR, SD.
>
>
> Firebird-Devel mailing list, web interface at 
> https://lists.sourceforge.net/lists/listinfo/firebird-devel



-- 
Roman Simakov


Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel