Thread: JDBC and Unicode problem
Hello, I'm trying to store / retrieve data from UNICODE database, but without success. I installet PostgreSQL 7.02 binaries for RedHat Linux on RH 6.2 I created database with UNICODE as charset (createdb -E UNICODE name) I can establish JDBC connection and everything works fine when I use ASCII characters. When I use non-ASCII characters, I get all kind of stuff. I tried to store data using* setString* setObject* setBytes* setUnicodeStream without success. My questions are:* Are binaries configured for UNICODE support?* How can I check are binaries configured for UNICODE support?*Do I have to set somethinh in Java in order to get UNICODE working?* Which method should I use to read UNICODE data? I have to enter multilingual data so I can't switch to national character set.
After browsing through hundreds of messages, downloading source etc. I finally found how to use UNICODE from JDBC. This is problem because of bug in driver which I'll explain later. I'll post that here to help other with the same problem: Check that PostgreSQL supports UNICODE with SELECT getdatabaseencoding(); Check that database is created for UNICODE: open psql and type \l[ENTER] Maybe you should do just one of above; I'm not sure. Check that you have correct code page during compiling Java source, or your String constants will be wrong. In JBuilder 3.0: Project -> Properties -> Compiler -> Encoding And now solution for JDBC problems: Add to Java parameters -Dfile.encoding=UTF-8 Everything should work now, but mind that all methods that use default encoding (file readers/writers, string.toBytes()) will use UTF-8 so you have to explicitly say which encoding you use. This is because of bug in driver; in connection.ExecSQL there is line buf = sql.getBytes(); This line uses platform default encoding. If you use Cp1250, sql statement will be encoded for that code page, or whatever code page you use, BUT IT SHOULD BE ENCODED FOR DATABASE'S CODE PAGE! The best solution will be if Connection reads which encoding PostgreSQL expects and to replace line with: buf = sql.getBytes(javaEncodingName); (PostgreSQL's UNICODE must be converted to standard UTF-8) Less perfect, but also acceptable solution will be to inform driver somehow which encoding to use. One of the options will be to use "SET client_encoding", but PostgreSQL don't have support for Unicode-to-something-else support. Solution is based on Tatsuo Ishii's postings.
It isn't a bug as such as I've never implemented unicode. However, your solution looks like a good one, but I'm not sure how you would pass that parameter to either an applet or a servlet. There's a lot of factors here, which cause JDBC to suffer. Because of the sheer amount of email I see (about 200 a day each at work and at home), I tend to read only emails that say "JDBC" in the subject line. However, this means that a lot of the time I miss out on emails saying that something has changed (eg: getTimestamp() fails due to the format changing slightly between versions), and I know there's a lot of functionality in 7.0 that would improve things but I haven't seen enough examples to actually implement them... Peter -- Peter Mount Enterprise Support Officer, Maidstone Borough Council Email: petermount@maidstone.gov.uk WWW: http://www.maidstone.gov.uk All views expressed within this email are not the views of Maidstone Borough Council -----Original Message----- From: Zeljko Trogrlic [mailto:zeljko@technologist.com] Sent: Tuesday, September 05, 2000 7:47 PM To: pgsql-interfaces@postgresql.org Cc: Peter Mount Subject: Re: [INTERFACES] JDBC and Unicode problem After browsing through hundreds of messages, downloading source etc. I finally found how to use UNICODE from JDBC. This is problem because of bug in driver which I'll explain later. I'll post that here to help other with the same problem: Check that PostgreSQL supports UNICODE with SELECT getdatabaseencoding(); Check that database is created for UNICODE: open psql and type \l[ENTER] Maybe you should do just one of above; I'm not sure. Check that you have correct code page during compiling Java source, or your String constants will be wrong. In JBuilder 3.0: Project -> Properties -> Compiler -> Encoding And now solution for JDBC problems: Add to Java parameters -Dfile.encoding=UTF-8 Everything should work now, but mind that all methods that use default encoding (file readers/writers, string.toBytes()) will use UTF-8 so you have to explicitly say which encoding you use. This is because of bug in driver; in connection.ExecSQL there is line buf = sql.getBytes(); This line uses platform default encoding. If you use Cp1250, sql statement will be encoded for that code page, or whatever code page you use, BUT IT SHOULD BE ENCODED FOR DATABASE'S CODE PAGE! The best solution will be if Connection reads which encoding PostgreSQL expects and to replace line with: buf = sql.getBytes(javaEncodingName); (PostgreSQL's UNICODE must be converted to standard UTF-8) Less perfect, but also acceptable solution will be to inform driver somehow which encoding to use. One of the options will be to use "SET client_encoding", but PostgreSQL don't have support for Unicode-to-something-else support. Solution is based on Tatsuo Ishii's postings.
Which parameter? Servlet or applet don't have to know anything about encoding. But if you want to pass parameter from servlet/applet to driver, connection properties would be a good place. Interbase use such approach. Interbase example: properties.put("user", "SYSDBA"); properties.put("password", "masterkey"); properties.put("charSet", "UTF8"); DriverManager.getConnection("jdbc:interbase://192.168.0.200/root/AIR.GDB", properties); At 10:01 6.9.2000 , Peter Mount wrote: >It isn't a bug as such as I've never implemented unicode. > >However, your solution looks like a good one, but I'm not sure how you would >pass that parameter to either an applet or a servlet. > >There's a lot of factors here, which cause JDBC to suffer. Because of the >sheer amount of email I see (about 200 a day each at work and at home), I >tend to read only emails that say "JDBC" in the subject line. However, this >means that a lot of the time I miss out on emails saying that something has >changed (eg: getTimestamp() fails due to the format changing slightly >between versions), and I know there's a lot of functionality in 7.0 that >would improve things but I haven't seen enough examples to actually >implement them... > >Peter
Solution for automatic encoding detection: * Make a Hashmap that maps PostgreSQL encoding names to Java encoding names (UNICODE = UTF-8) * When getConnection is called, execute select getdatabaseencoding(). This will return encoding name. * Get Java encoding name and store it into connection specific variable. * When executing SQL-s or reading data, use that encoding as parameter. In getString, replace:return new String(this_row[columnIndex - 1]); withreturn new String(this_row[columnIndex - 1], encoding); And JDBC will work for all encodings entered into mapping Hashmap. If I only had write CVS access... ;) At 10:01 6.9.2000 , Peter Mount wrote: >It isn't a bug as such as I've never implemented unicode. > >However, your solution looks like a good one, but I'm not sure how you would >pass that parameter to either an applet or a servlet.
The problem continues... We are using Webmacro for dynamic web pages. Unfortunately, there is no way to tell Webmacro which encoding to use to load templates. So you have to pieces of software with "fixed" encoding. If you need different ones for each piece, it won't work. I know that Webmacro team is working on solution of this problem, but it will be better to fix this on both places, in case there is some other Java library with such problem. At 20:47 5.9.2000 , you wrote: >After browsing through hundreds of messages, downloading source etc. I >finally found how to use UNICODE from JDBC. This is problem because of bug >in driver which I'll explain later. I'll post that here to help other with >the same problem:
I was thinking of parameter's to the JVM on startup (like -Djdbc.driver=org.postgresql.Driver ) As for connection properties, yes they are an ideal place, and back in the 6.3 days we used to use them so the mechanism is in there. I think the connection properties is the way to go, as it would then work everywhere. Peter -- Peter Mount Enterprise Support Officer, Maidstone Borough Council Email: petermount@maidstone.gov.uk WWW: http://www.maidstone.gov.uk All views expressed within this email are not the views of Maidstone Borough Council -----Original Message----- From: Zeljko Trogrlic [mailto:zeljko@technologist.com] Sent: Wednesday, September 06, 2000 12:31 PM To: pgsql-interfaces@postgresql.org Cc: Peter Mount (Home) Subject: RE: [INTERFACES] JDBC and Unicode problem Which parameter? Servlet or applet don't have to know anything about encoding. But if you want to pass parameter from servlet/applet to driver, connection properties would be a good place. Interbase use such approach. Interbase example: properties.put("user", "SYSDBA"); properties.put("password", "masterkey"); properties.put("charSet", "UTF8"); DriverManager.getConnection("jdbc:interbase://192.168.0.200/root/AIR.GDB", properties); At 10:01 6.9.2000 , Peter Mount wrote: >It isn't a bug as such as I've never implemented unicode. > >However, your solution looks like a good one, but I'm not sure how you would >pass that parameter to either an applet or a servlet. > >There's a lot of factors here, which cause JDBC to suffer. Because of the >sheer amount of email I see (about 200 a day each at work and at home), I >tend to read only emails that say "JDBC" in the subject line. However, this >means that a lot of the time I miss out on emails saying that something has >changed (eg: getTimestamp() fails due to the format changing slightly >between versions), and I know there's a lot of functionality in 7.0 that >would improve things but I haven't seen enough examples to actually >implement them... > >Peter
MOTOKI Sinichi, a subscriver of our PostgreSQL local mailing list, has made a patch for 7.0.2 JDBC driver. With the patch and MB enabled installation (configure --enable-multibyte=UNICODE), you could use UTF-8 acording to him. You will need to create db with -E UNICODE if you did just --enable-multibyte (witout =UNICODE), or you choose other encodings. -- Tatsuo Ishii > I was thinking of parameter's to the JVM on startup (like > -Djdbc.driver=org.postgresql.Driver ) > > As for connection properties, yes they are an ideal place, and back in the > 6.3 days we used to use them so the mechanism is in there. I think the > connection properties is the way to go, as it would then work everywhere. > > Peter begin 644 postgresql-jdbc-7.0.2-ce.diff.gz M'XL("*5KI3D"`W!O<W1G<F5S<6PM:F1B8RTW+C`N,BUC92YD:69F`.T=^W/: M1O-G_%=<W&]JB(5`XHV;3AWLIJ2I[0;2SC?],AY9'$:-D(@>MFGJ__W;>TDG M(0GP(X\VC,<&W=[>WC[N=O?V\#=H/+-\!#\&6AB!.4-3UT,+UP\N/>R_MZM_ M3B[,:D>MJSH*7!0N)D:`D160#YE051/O?(/@9^PB8[&PER@@`U#<?7@\&A^? M(:V/!K.)Y1$LP0PCWPT]$R-X@LW`]9:J`-3[Z'7H4)@]BHWBV4,+S[WTC#FZ MMH*9-`":6C9&!LS'680!8`$\PRE:NB&:N,AQ`S0SKI*H%#(9VM\+D#ME0\V- M=UB,9)COC$LRIV!F!!25:3AHBNEPGCNG/0;N?.'A&79\"_"?8<]&AYXY(Q]. M<'#M>N_(W&=!L.C7:M?7U^H"0%33G=<&9X<G-2,,9J[GUUZZ,\,Y_PVP&HY? MBZBHWJA+-3`\]?(O,B'^/"!>QO7K]2T-[-'O)G;FA/T`5&.@()SJS+&?88 M!S(D01GGA@'%%/J8S%SFRE:2XARFK#70!)O8"=!S`'1P-5@NH-,,VW8_0Z:T M01)B6GRQ\)P]+CL_!.H-UE.AC7-CB1R,)X1$X%MHV#!5T\.@J%1JF*+U"5Y@ MTK4#/++=ZTC%&I**Y6I7AEZ-9QCX9GB8=@51PM@3GU+":&$DU";8Q@&GH2;X M9F$?^+$3N&0V>ZYW68N-J:::5[YUZ;@>WMLQ9W-W@NKM9K,0+!M1&%AV;3`S MO('K7&$O`(7XT[@R"K'F]BD8X@A/C=`.[C)20=>"`4]"V[[+:'G]F#Q!SER, M")KFE@/B\R4])0U4T<A"`H:&;[`9!O!9:)VZ@V^L@&"#%SH&<#"K,U"#^06H M#WFXPYK.J`W"4FK`<FN#-OJL=6)-IZAJ@B)F+:VU7V!!('JTEP,`:V\,LS-T M)OBFC]3HT0Z0XN'W?80T5=?1SM.G3Z76TG@6HL/P$NE-I+7[6KVOM9!>K]=W MJM6J#/>C9S&X%JHW^HU.O]%D<$^3+XI?TUJ*IFN(/D"H5/I/^>S%\\/1<85) MY.Q%X+[#CO47R,*T#=]'_\L$&_WZZOC&Q(O`<ITBP!'V+,,&=!'0DU6@-XYU M,_"6BX`!`1[X$1;-%PNPZ]"QWH=8K'POCYX/D(;*+X]^!OYI%33Q8'GWH.?I M\Y?GI%5[)@U$I*+5!J`6!@A_%(`NS6%=C,@B3&7,:2)X7_U<F9,-E#2B`L!, M^RZ`7[703R>B+'W6M::B:SVFST2&NM91=#`%+L-U$NP7R9@L1JLX4E+KYTLU MNW]*H/U\@=/^^VB]K/O%^I"-)U\5^AMI33;6'(7IKU<LSBVB5P_SDC24TL!U MU&+.!;XQY@M;<IT4NJ&`NSV7V_UH$P#/X:KF`-D%JWV!2Q`M_[DP?`/(;:<[ MPDMP=L&FZKU^O0X_2.MUQ(Z0WU'>(K1^O=NOM_.WB'IL3!HSHWUT1`UW0+C( MY+1F9TR1`D)V@,ED.:0;_.8<3/?,96,*4-Y;-93-V527=1ONFMXRC_6^UNSK M!=MP4U.:[9C/Y&-7+%D(_%WKBH1UH\"SG$OJ\9Z'GGV0U6B&G@_QQ3-$-/.@ M5*L1C2>AH$5(`V>(AX@<SC'FF*(!H<K8$J8(;I=XQ_$"-.W%T',_V\'7-#J] M:JL-A=C,$H(-YJEQ)SST/!)[@/\>N*9K(T#J`U6^P.6'BX7K$9?M@D=#'$)$ M?FS#4,F@2SKF!'P>,BO+B7!X9LUR3#N<X)IM72S>UQ;OB=NHSC(YWVDHG9YP M?^(IH;/A$=@_B25-\"T-PCST#@:]QN@2!W%D>0'Q)X9U`N9D8M_G2!;AA6V9 M0!5,UIH<K#Z%3LL#V&`IZ_G`$0GH:13UF[#[,78P8P/^GH#(RA5&`8F`8/T" M551C552/Q+;*D-6H3G5:2E>+=>IC3_3Q)YDEW:ZN=#NQ776;BE;OR$RXY7\E M\O8%>2.8O@EV8)A$\[%CNA-J8<(88L@?%@:)1V,S29D/=9'V(TKW929=N=8$ M^3BYF99S[*_"^WZ`OR5B(*ILFM'[`PYV2^QT?W5F+\C,N#%N.$,/!Z'G;-<K M-=/DG"[34T[,30RW9D9)59KC8`;Q)=#%D@SN`CL^#_^CQ1D-@Z3.,452(UPQ M4B[6&2@=Q4+>D`4S6HT@0+PP?&8;P(A)3HBE*9K6D=>8LQ?G9Z>OQR`RLMP= MQ$]_.AV1IV0E9>MYF8Q9D2!&X\/QFQ'`#$Y/3HX'X^'IR?GSPZ/T6E)#)^XU M(ADJ2JGEP/)OV!(?.@+<5\@?%TCV\`N8V>;"2/0RZGN%CU5<OQ`[(TG4[+ ME8J\D-QMAIDQ0TM7]%97%A""&,;S@]\-SR&J+78]T1B].;[!)D1WY5V8!5$' M[`=+F\8[>\/1Z=YN1<A%Z@.4#QFQ%DGL7?P)Y*(9^)HV#!5!D?F<TK;Q<H'] M<D4:G<8UG:;2`']/$M.#$AW1#?P#OD$HB(2+$5G\,Z!RZJI@R6<>V)H7+,N[ MHC'"`OVL:3GNP\A"?_\=X5'Q>[!7O[R[6ZF(H<B+N%$J6>I?8Q^B#;(<DU4N M(G]T_`HT"KTX'A\=C@])+'%\,C@]&IZ\*%?8\!P1C.^I#KX)0(5H4(OD.7AD M`EQ]-='MEOU9I?\)I__;;]&3K`G$HVZNV`)/15*7V^B=29)193F'@##C4S;D M&R=RHXXYXIR>5+PS#\R(6'`B35'>E;;:,,:8%&],0/1A<7GN!R2EIJ[,/][% M)#M^"'O(,NJ&UE`:C5:4V.(60/_^:&%[\L=;,!?XZTN&0EM_H^$?"D(2[?'5 MC3TKQTIUL0PP8+@(IQR"/B#,LK%S&<S*E;<10N(&3=\O`+`>/;MP71N#VS6; M$I6>@O;@J(V;&82A5\!+(P@%B0J:^Y<4K$1P,D_^W'1#^/`,:3$"65?`/S;L M<^QY<500\:/*"9RBLDPZ^AYUM9Y>(>VE310$)*L&,",7%$.!!Y5H"+;ZEDH? MZ.^D@HQ@QR0:4M[[=0]Z5#D`XRE!"W;Y'-C*A9W5O0S`N8T4=SVS>6J'_HR+ MLW3+#`>5AZ<I0Q$=-^6!Y5(^[RJ8CWH;LQK6[$:KI32Z>I1/?#2=_`)4;T4_ M]A/BC]8*U:<DC=TSSFJB$8>>9RS+3-%$/Z+$T)<K<:3"I/FN.DR#W#5:^YAZ M27]OOJAOKJNY"WIBT,<UB.TR1L259"S:,F&4ZIB;+TK"92>(DC!;YH?R.^OU M?J/7UUOYZ2$='%0IC"4?L])#+@3;@>0!)Q-$0W(VRD@@&D>/2I,0S\/I%'MX M<AH&"5"7?F8AV)H$$4.XDXC/GB(`!`4/R7K51XAGRL2I`#=LT*,HCJ*95Q8" M9J?+=*4IY?B;#:6=3FVPN2#?^@L63#^\F%L!SRN-@%(/HY_03Z&/X?-W/GTP M"W]P'7`YL.JXW^]$S@QE$U]Q!7\D3I:ER!*V*[FEHK`EZ"!&QAB9PB9S.X4N MT13C8_&O'/GGQTQL]-LXQW?WM,,'$=BO2SQ$0?HV@7^$/3OTOXU2CK%:D<64 M%,;XL'Y!`!/G)+AF16$Y#^PS3:O9@>!/EXRKU5/T=DM2IZ>U'2F+P;?(U]C$ MUA7F<0/9$^?A;A:V-?F(GW$'2!#F"*Z$7?-N&R$UV)1FVMP*(#."+;3S7 MZ=7;35@H&I+32]=;ZM^A[Y\)$EG3)FLXWY9@7YR'YBSA]!<Y35N@3NT0Z9!& M,"N990!>*:BN(%_JP]7F*J'P+%(&"?<:DM?U"$PANR8A<E6YHYQEY+B,W8QI M2"'4?0*Z!PKGI.$?3\+%HMO./Z!#^.J"Y2$L[&_A(JSVS?425D"S'845L"U] MA<+^X"XTH;^6[RZT.TI;VA[A8R=*%"7T(/1#P^Z/7)(X)6;>#T[2/7-$./ M5TH9I`0M/G\ASZ:&9:OH#"():/(P42=V8H.%+O31A_IM>D2+G*&24WP\Z<LY M6WA'JG:6X+]((&JZ.[Y9P.X(?0\=%'^"\4F""%T#V4R7V$YOH/<A)C5P^ZA8 M_?N2B='=RJ#AEK`V=4ME9(4+4=9J6Y<ULWNN2F9!9VME%N26BKD.!7-EM6Y! MP1'LMUJK(2=;06SD]/]'VR#IN#(]WH35Y0_3M<.Y0^>-JDA[*W*'T3)B3<M2 MWTIZ/6$!YY/$HW@/R1TFZ3()EX.FQBGMB=3X8]/.R8^2L+%S)+F)F^\X19-^ MDEC]MP@[[[WGW&8Q?'N3T^]G<OI6)J=O;'+Z_4U.7V]RO2*3ZX+:-K]0D^M^ M;)/[E]O;'<J:<FN2\PPHKR8MTX9R@+>L?LK#LE*FT^QN5@JE:%I#E$/Q2PCI M$@4RY@&+A<&I(1X2/=*R7+5(SKP'/[`751+"*2+Q+BN`I/<=Z#D)KX*6$BFK MQ_,45XVAYI$L0Y/@"31^R"H8X#5$=&(#@5M03IRW0`+(&3U9$I"L6LK''1<< M):J4W(!Y?ODE!*):0.J6F!(_W(\.]HY()1$MDA+'^YO,!_T0^;NH2*AQ!_DU M9`.1FH))3`GWA2-D&<S+GG[J?+;"BD1H-F(#VF@*WL?!69XLXG/*=?4E7S)O MD^FQ?&8\`+.+M%[@7<OJ5&'.5D:8R&A=%LTVJS@GE_P-U<,@6R5=6GQ>V.B2 M:QLB\4>*^DCP*;#[*PC<Z924,+!=E2L6+8&@*30:N3)<*SWY(=%).+\`!D%7 MTL'/[L%G2^AD<:9!<G&4XL]"55-+Z*H3PA.,E-T*.Q`K1:>#C(<*?<^X<A=- M7O7UV&@1>H[Z\37C'R6M>X@B?P`NF;K"QE"W$PT7R,/)AIHJI>2SD`]G?_ZI M,Q<@`[B'@!B"1(W#Q]E4T^<KJ?+43\E\4G*P<EXDG68]P)Z;48M&T:0BUI7K M*$P^)6S[.`,\ZT+,%NZ2%(%^D7*IY.P%.5P4O+B]=]!9<#VU,/;,O\"4'X+F M]KE+))J/;.7Z9E/;,"#56ZU'"T@Y>`8^-3&'CQR\9K$1X9N`'@QO'-E.&!8Q M\5^,A0AIUU+%D-"B<-CU7@(WLTKC:3LW;!20VXPH[LQO0ZI=5",7?U%NK,RM MD%95<3\"=JH,XI_%A^GPV@7JSP]'@^%P5T&[H5\U?-.R=A49Y/C-X/SE&6D7 M[]*M@Q/12MZE6W]^+5K)NW3K^'?12M[)K6].AH/3HV-*6#"M=I.MO[QY=7P^ M/!D?OSXY?`4PM!!-!GAU.!Z>:*2WY;O5;K?5JVJ[JQ!Z`D+/@&@D(!H9$,T$ M1#,#HI6`()]DD)]/AUT"\,ZUNE6/=B_M_CZD7!V<:7I+X\\.7XW9LVZ[O2L6 MRX.<G8-HKVM/).&?:^?:)]!>DM0$'6YMJ;P9M!<I+^'LN5:@NB^'HSS5??%< M;VAZGNK^/!JTVG4M3W<')R--:S<;N=K[9OSCW94W:UJQXM+67*6EK;D*2UMS ME96VYBBJ(/>?I*0/J*9?%?5S4=2/LJ*>MS^%NK:YNG;OKZ[M^ZEK@4OP55T_ MM;KB+?U6H9R2PFVLI6L.<D#Y<,(17?5.#_ZQ9P:928!4ON_X'JF+B,7S8M:6 MV.GU?N)*A[A(_PR-EGZ`Y\E;>S0,Y""[+-/!S\WXW8JRZ,_OOU78`*6X1;5( MP'TZ+>]J:F.W0I(K]4IT.Z.(Y!+-JJ!L5/H]48FK>70=)??S[H^FLXHF:\5= MCZC]4(A:&R'2UB-J/A2BQD,ATA\*D?9`B#9!$QD0R7*5Z"]^BQ.;H6<%RU11 M!P?B![`2LC*,P,RQ\"QR974YV/P`G,QA=:V-%C]H+CA_%L>D,LGR,I5(#"9W MACDSM6W.-C<D*B+@,DE85I82)PU_@_Q[FM>;>H1B,CE[[=KYB'WX+#5^T0ZS MNG7@.2M23_!%[!M3UZ,W&2QZT0#^?`?P_'R(?-Q_AO2*M"?@^1_66V$;*^,S M,Q%\!E"TC[2W8JQ$T=5'87S@A;A&KSL6\%I<CK3\+Y//9)(I%O,;GE\K-A[X M]"CI"7%19>A-?+N?^TR"COCB5'Z?`^%EX6B\:/<!DLG]V,**G4J\GT7]XOK! MHFFG:(AV,_*&;H\4WR8T)/#<?JT-^9?5AH#R%I<6)30[NW(XLYI$82K(OVZC M>(S"T]N'*%GY6A=QW[J(.^M)NI+BCII06)!Q_Z/JO.\V+CRGSOE6S/Q#ZNP. M=SFASL%T]WKIEO;O.9UF"5F&;(61VQU0?]T0'W(9DS/EVVZ+I:\5DU^(R.XA MD!6)?'4`9#%\-N61M\DO\8^_L%_Z&O]#\@\S\K[+_QMT1)Z)O#9_]9&FUED; M^?Y3!WL&$1UO2]5F=?MZAVU^WZ`7$>S%,D86_8L0I*L4[#5)`/KQMTQ;L)#V MT7^Q#VT+M!?_!P%-TSMUU&MWM*:NMYJHKM7)_TT`,+/H/TT@UJ?1T+MMJ<]B MI<_*5S#KC6ZGQSIW]':SL'/ZVWAZS:Y.NVH=K=TJ[)IQ4;_9[;5Y;UW3"GMG MWZS6FPV]+L9O===B6+THVFCWNKT(0Z^0VWFWW03K.WJWNQY!?N4BBL3>UM;C MR7$KLXF1+"9M&Y+9)&SJG16@/]B_2IGD&\!;;E.D^V"&S7=^..^C+KA\>KO3 1ZZ)V&P1+0?X/KKV`VM%H```` ` end
Thanks. I checked code and the idea seems fine. I hope it will fine the way to regular JDBC driver soon. It similar to idea I sent few days ago - all great minds thinks similar :) BTW is there anonymous CVS account on PostgreSQL repository? At 09:13 11.9.2000 , Tatsuo Ishii wrote: >MOTOKI Sinichi, a subscriver of our PostgreSQL local mailing list, has >made a patch for 7.0.2 JDBC driver. With the patch and MB enabled >installation (configure --enable-multibyte=UNICODE), you could use >UTF-8 acording to him. You will need to create db with -E UNICODE if >you did just --enable-multibyte (witout =UNICODE), or you choose other >encodings. >-- >Tatsuo Ishii > >> I was thinking of parameter's to the JVM on startup (like >> -Djdbc.driver=org.postgresql.Driver ) >> >> As for connection properties, yes they are an ideal place, and back in the >> 6.3 days we used to use them so the mechanism is in there. I think the >> connection properties is the way to go, as it would then work everywhere. >> >> Peter > >
Guys, Did these changes get worked into the latest driver src? I looked at the changes file at http://www.retep.org.uk/postgres/changelog.html but the only possible change I see after the date of this email is: - Merged in some last patches. Only 1 left, which may not be compatible with jdbc1 I'm trying to convert a current site from HSQL (eugh!) to PostgreSQL but I can't get the Unicode working as per this email thread - I've tried the usual compile with Unicode, createdb with unicode encoding etc. Many thanks, Mike >Thanks. I checked code and the idea seems fine. I hope it will fine the way >to regular JDBC driver soon. It similar to idea I sent few days ago - all >great minds thinks similar :) >BTW is there anonymous CVS account on PostgreSQL repository? >At 09:13 11.9.2000 , Tatsuo Ishii wrote: >>MOTOKI Sinichi, a subscriver of our PostgreSQL local mailing list, has >>made a patch for 7.0.2 JDBC driver. With the patch and MB enabled >>installation (configure --enable-multibyte=UNICODE), you could use >>UTF-8 acording to him. You will need to create db with -E UNICODE if >>you did just --enable-multibyte (witout =UNICODE), or you choose other >>encodings. >>-- >>Tatsuo Ishii >> >>> I was thinking of parameter's to the JVM on startup (like >>> -Djdbc.driver=org.postgresql.Driver ) >>> >>> As for connection properties, yes they are an ideal place, and back in the >>> 6.3 days we used to use them so the mechanism is in there. I think the >>> connection properties is the way to go, as it would then work everywhere. >>> >>> Peter >> >>
The current sources in cvs should work with unicode. One of the other patches that did get in dealt with making the driver handle string encodings correctly. If you still have problems let me know. PS: The patch I've not applied yet deals with handling Arrays (part of the JDBC2 spec), however I'm not sure how that patch works fully, and as it patches org.postgresql.Connection it could affect how jdbc1 works, hence that comment in changelog. Peter -- Peter Mount Enterprise Support Officer, Maidstone Borough Council Email: petermount@maidstone.gov.uk WWW: http://www.maidstone.gov.uk All views expressed within this email are not the views of Maidstone Borough Council -----Original Message----- From: Mike Cannon-Brookes [mailto:mcannon@internet.com] Sent: Tuesday, November 14, 2000 12:43 PM To: pgsql-interfaces@postgresql.org Subject: [INTERFACES] RE: JDBC and Unicode problem Guys, Did these changes get worked into the latest driver src? I looked at the changes file at http://www.retep.org.uk/postgres/changelog.html but the only possible change I see after the date of this email is: - Merged in some last patches. Only 1 left, which may not be compatible with jdbc1 I'm trying to convert a current site from HSQL (eugh!) to PostgreSQL but I can't get the Unicode working as per this email thread - I've tried the usual compile with Unicode, createdb with unicode encoding etc. Many thanks, Mike >Thanks. I checked code and the idea seems fine. I hope it will fine the way >to regular JDBC driver soon. It similar to idea I sent few days ago - all >great minds thinks similar :) >BTW is there anonymous CVS account on PostgreSQL repository? >At 09:13 11.9.2000 , Tatsuo Ishii wrote: >>MOTOKI Sinichi, a subscriver of our PostgreSQL local mailing list, has >>made a patch for 7.0.2 JDBC driver. With the patch and MB enabled >>installation (configure --enable-multibyte=UNICODE), you could use >>UTF-8 acording to him. You will need to create db with -E UNICODE if >>you did just --enable-multibyte (witout =UNICODE), or you choose other >>encodings. >>-- >>Tatsuo Ishii >> >>> I was thinking of parameter's to the JVM on startup (like >>> -Djdbc.driver=org.postgresql.Driver ) >>> >>> As for connection properties, yes they are an ideal place, and back in the >>> 6.3 days we used to use them so the mechanism is in there. I think the >>> connection properties is the way to go, as it would then work everywhere. >>> >>> Peter >> >>
I'm using a driver built from the 7.0.3 source downloaded as of 24 hours ago. I still get ???'s in the database when using a UNICODE encoded DB and having compiled the server with --enable-multibyte=UNICODE . What's the best way to test whether the problem is in the driver? Can anyone think of another place to look for problems? (Bearing in mind this setup works fine with HSQL which uses Unicode natively) This is using EJBs so JDBC 2 is required, could it be the arrays problem? Thanks for any assistance - deadlines are rushing up fast ;) Mike > -----Original Message----- > From: pgsql-interfaces-owner@postgresql.org > [mailto:pgsql-interfaces-owner@postgresql.org]On Behalf Of Peter Mount > Sent: Wednesday, November 15, 2000 12:00 AM > To: 'Mike Cannon-Brookes'; pgsql-interfaces@postgresql.org > Subject: RE: [INTERFACES] RE: JDBC and Unicode problem > > > The current sources in cvs should work with unicode. One of the other > patches that did get in dealt with making the driver handle > string encodings > correctly. > > If you still have problems let me know. > > PS: The patch I've not applied yet deals with handling Arrays (part of the > JDBC2 spec), however I'm not sure how that patch works fully, and as it > patches org.postgresql.Connection it could affect how jdbc1 works, hence > that comment in changelog. > > Peter > > -- > Peter Mount > Enterprise Support Officer, Maidstone Borough Council > Email: petermount@maidstone.gov.uk > WWW: http://www.maidstone.gov.uk > All views expressed within this email are not the views of > Maidstone Borough > Council > > > -----Original Message----- > From: Mike Cannon-Brookes [mailto:mcannon@internet.com] > Sent: Tuesday, November 14, 2000 12:43 PM > To: pgsql-interfaces@postgresql.org > Subject: [INTERFACES] RE: JDBC and Unicode problem > > > Guys, > > Did these changes get worked into the latest driver src? > > I looked at the changes file at > http://www.retep.org.uk/postgres/changelog.html but the only > possible change > I see after the date of this email is: > - Merged in some last patches. Only 1 left, which may not be > compatible with > jdbc1 > > I'm trying to convert a current site from HSQL (eugh!) to PostgreSQL but I > can't get the Unicode working as per this email thread - I've tried the > usual compile with Unicode, createdb with unicode encoding etc. > > > Many thanks, > Mike > > > >Thanks. I checked code and the idea seems fine. I hope it will > fine the way > >to regular JDBC driver soon. It similar to idea I sent few days ago - all > >great minds thinks similar :) > > >BTW is there anonymous CVS account on PostgreSQL repository? > > >At 09:13 11.9.2000 , Tatsuo Ishii wrote: > >>MOTOKI Sinichi, a subscriver of our PostgreSQL local mailing list, has > >>made a patch for 7.0.2 JDBC driver. With the patch and MB enabled > >>installation (configure --enable-multibyte=UNICODE), you could use > >>UTF-8 acording to him. You will need to create db with -E UNICODE if > >>you did just --enable-multibyte (witout =UNICODE), or you choose other > >>encodings. > >>-- > >>Tatsuo Ishii > >> > >>> I was thinking of parameter's to the JVM on startup (like > >>> -Djdbc.driver=org.postgresql.Driver ) > >>> > >>> As for connection properties, yes they are an ideal place, and back in > the > >>> 6.3 days we used to use them so the mechanism is in there. I think the > >>> connection properties is the way to go, as it would then work > everywhere. > >>> > >>> Peter > >> > >> >
See below: -- Peter Mount Enterprise Support Officer, Maidstone Borough Council Email: petermount@maidstone.gov.uk WWW: http://www.maidstone.gov.uk All views expressed within this email are not the views of Maidstone Borough Council -----Original Message----- From: Mike Cannon-Brookes [mailto:mcannon@internet.com] Sent: Wednesday, November 15, 2000 6:56 AM To: Peter Mount; pgsql-interfaces@postgresql.org Subject: RE: [INTERFACES] RE: JDBC and Unicode problem I'm using a driver built from the 7.0.3 source downloaded as of 24 hours ago. I still get ???'s in the database when using a UNICODE encoded DB and having compiled the server with --enable-multibyte=UNICODE . What's the best way to test whether the problem is in the driver? PM: If I get chance I'll try to build a backend with multibyte enabled. Can anyone think of another place to look for problems? (Bearing in mind this setup works fine with HSQL which uses Unicode natively) This is using EJBs so JDBC 2 is required, could it be the arrays problem? PM: No, as you would be getting "not implemented" exceptions... Thanks for any assistance - deadlines are rushing up fast ;) Mike > -----Original Message----- > From: pgsql-interfaces-owner@postgresql.org > [mailto:pgsql-interfaces-owner@postgresql.org]On Behalf Of Peter Mount > Sent: Wednesday, November 15, 2000 12:00 AM > To: 'Mike Cannon-Brookes'; pgsql-interfaces@postgresql.org > Subject: RE: [INTERFACES] RE: JDBC and Unicode problem > > > The current sources in cvs should work with unicode. One of the other > patches that did get in dealt with making the driver handle > string encodings > correctly. > > If you still have problems let me know. > > PS: The patch I've not applied yet deals with handling Arrays (part of the > JDBC2 spec), however I'm not sure how that patch works fully, and as it > patches org.postgresql.Connection it could affect how jdbc1 works, hence > that comment in changelog. > > Peter > > -- > Peter Mount > Enterprise Support Officer, Maidstone Borough Council > Email: petermount@maidstone.gov.uk > WWW: http://www.maidstone.gov.uk > All views expressed within this email are not the views of > Maidstone Borough > Council > > > -----Original Message----- > From: Mike Cannon-Brookes [mailto:mcannon@internet.com] > Sent: Tuesday, November 14, 2000 12:43 PM > To: pgsql-interfaces@postgresql.org > Subject: [INTERFACES] RE: JDBC and Unicode problem > > > Guys, > > Did these changes get worked into the latest driver src? > > I looked at the changes file at > http://www.retep.org.uk/postgres/changelog.html but the only > possible change > I see after the date of this email is: > - Merged in some last patches. Only 1 left, which may not be > compatible with > jdbc1 > > I'm trying to convert a current site from HSQL (eugh!) to PostgreSQL but I > can't get the Unicode working as per this email thread - I've tried the > usual compile with Unicode, createdb with unicode encoding etc. > > > Many thanks, > Mike > > > >Thanks. I checked code and the idea seems fine. I hope it will > fine the way > >to regular JDBC driver soon. It similar to idea I sent few days ago - all > >great minds thinks similar :) > > >BTW is there anonymous CVS account on PostgreSQL repository? > > >At 09:13 11.9.2000 , Tatsuo Ishii wrote: > >>MOTOKI Sinichi, a subscriver of our PostgreSQL local mailing list, has > >>made a patch for 7.0.2 JDBC driver. With the patch and MB enabled > >>installation (configure --enable-multibyte=UNICODE), you could use > >>UTF-8 acording to him. You will need to create db with -E UNICODE if > >>you did just --enable-multibyte (witout =UNICODE), or you choose other > >>encodings. > >>-- > >>Tatsuo Ishii > >> > >>> I was thinking of parameter's to the JVM on startup (like > >>> -Djdbc.driver=org.postgresql.Driver ) > >>> > >>> As for connection properties, yes they are an ideal place, and back in > the > >>> 6.3 days we used to use them so the mechanism is in there. I think the > >>> connection properties is the way to go, as it would then work > everywhere. > >>> > >>> Peter > >> > >> >
Hello, some of you have wrote that they are using Postgres 7.02 with unixODBC. I'm struggling with that. So my question do I have to compile POSTGRES on my own, with the right switches or can I should I be able to use the Driver which comes with unixODBC. I got my system running and can connect to POSTGRES with psql but if I try it with isql than I got a connection error. So what information do I have too add to make it "apparently" to you to understand? Friedrich Dominicus
hi, there! On 15 Nov 2000, Friedrich Dominicus wrote: > Hello, some of you have wrote that they are using Postgres 7.02 with > unixODBC. I'm struggling with that. So my question do I have to > compile POSTGRES on my own, with the right switches or can I should I > be able to use the Driver which comes with unixODBC. we use driver that comes with unixODBC no compilation switches for postgres are required > I got my system running and can connect to POSTGRES with psql but if I > try it with isql than I got a connection error. So what information do > I have too add to make it "apparently" to you to understand? which error messages do you get? /fjoe
Max Khon <fjoe@iclub.nsu.ru> writes: > > we use driver that comes with unixODBC > no compilation switches for postgres are required > > > I got my system running and can connect to POSTGRES with psql but if I > > try it with isql than I got a connection error. So what information do > > I have too add to make it "apparently" to you to understand? > > which error messages do you get? and obvious one I guess ;-) ./isql -v p_test frido [unixODBC]Could not connect to the server; Could not connect to remote socket. [ISQL]ERROR: Could not SQLConnect Regards Friedrich
hi, there! On 15 Nov 2000, Friedrich Dominicus wrote: > > we use driver that comes with unixODBC > > no compilation switches for postgres are required > > > > > I got my system running and can connect to POSTGRES with psql but if I > > > try it with isql than I got a connection error. So what information do > > > I have too add to make it "apparently" to you to understand? > > > > which error messages do you get? > and obvious one I guess ;-) > > ./isql -v p_test frido > [unixODBC]Could not connect to the server; > Could not connect to remote socket. > [ISQL]ERROR: Could not SQLConnect do you have enabled network connections in your pg_hba.conf /fjoe
Hey, who is the current active maintainer of the ODBC driver? Thanks! Robert Smith
> Hey, who is the current active maintainer of the ODBC driver? Currently there is no maintainer, afaik. Zoltan
> Hey, who is the current active maintainer of the ODBC driver? Unfortunately, there is no "current active maintainer". However, there are several people who have offered to help at a level just under what they felt would be required to be considered the project leader. Volunteers are accepted ;) - Thomas
Thomas Lockhart wrote: >> Hey, who is the current active maintainer of the ODBC driver? > > > Unfortunately, there is no "current active maintainer". However, there > are several people who have offered to help at a level just under what > they felt would be required to be considered the project leader. > > Volunteers are accepted ;) I'll be a volunteer to implement odbc driver. Just wondering why don't import unixODBC code into Postgres src? > - Thomas - Kevin
On Fri, 17 Nov 2000, Kevin Lo wrote: > Thomas Lockhart wrote: > > >> Hey, who is the current active maintainer of the ODBC driver? > > > > > > Unfortunately, there is no "current active maintainer". However, there > > are several people who have offered to help at a level just under what > > they felt would be required to be considered the project leader. > > > > Volunteers are accepted ;) > > I'll be a volunteer to implement odbc driver. Just wondering why don't > import unixODBC > code into Postgres src? If I recall correctly, it is under GPL, no? Which conflicts with our BSD liccense ... of course, I've been known to recall incorrectly at times :)
> I'll be a volunteer to implement odbc driver. Just wondering why don't > import unixODBC code into Postgres src? That is possible, I suppose. My (admittedly vague) recollection is that the unixODBC folks took the psqlODBC code from our tree and modified it. They may have contributed back some patches, but afaik they forked the code and had no interest in keeping the code base consistant :( If the unixODBC code is a superset of what we have (or could be made so) then perhaps it would be a better choice to work from. But we should make sure that our last year's improvements don't get lost. - Thomas
hi, there! On Fri, 17 Nov 2000, Thomas Lockhart wrote: > > I'll be a volunteer to implement odbc driver. Just wondering why don't > > import unixODBC code into Postgres src? > > That is possible, I suppose. > > My (admittedly vague) recollection is that the unixODBC folks took the > psqlODBC code from our tree and modified it. They may have contributed > back some patches, but afaik they forked the code and had no interest in > keeping the code base consistant :( most of their changes are bugfixes and changes related to '//' comments used in PostgreSQL ODBC code. My impression is that Nick Gorham <nick@easysoft.com> (unixODBC maintainer) is interested in merging ODBC drivers and on their webpage it is stated that changes are submitted back to PostgreSQL developers. The only issue might be license (unixODBC is LGPL). OTOH I do not understand why ODBC driver is not using libpq. There were a couple of problems with ODBC driver backend protocol implementation (e.g. not reporting referential integrity errors) > If the unixODBC code is a superset of what we have (or could be made so) > then perhaps it would be a better choice to work from. But we should > make sure that our last year's improvements don't get lost. /fjoe
The Hermit Hacker wrote: > On Fri, 17 Nov 2000, Kevin Lo wrote: > >> Thomas Lockhart wrote: >> >>>> Hey, who is the current active maintainer of the ODBC driver? >>> >>> >>> Unfortunately, there is no "current active maintainer". However, there >>> are several people who have offered to help at a level just under what >>> they felt would be required to be considered the project leader. >>> >>> Volunteers are accepted ;) >> >> I'll be a volunteer to implement odbc driver. Just wondering why don't >> import unixODBC >> code into Postgres src? > > > If I recall correctly, it is under GPL, no? Which conflicts with our BSD > liccense ... of course, I've been known to recall incorrectly at times :) Well, it's under GPL. You recalled incorrectly :-) - Kevin
Actually, it's LGPL... The Hermit Hacker wrote: > If I recall correctly, it is under GPL, no? Which conflicts with our BSD > liccense ... of course, I've been known to recall incorrectly at times :)
The Hermit Hacker writes: > If I recall correctly, it is under GPL, no? Which conflicts with our BSD > liccense ... of course, I've been known to recall incorrectly at times :) Our ODBC driver is under the LGPL, same as unixODBC. There are no "conflicts" as long as you don't copy code back and forth. -- Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/
On Fri, Nov 17, 2000 at 09:09:03PM +0100, Peter Eisentraut wrote: > The Hermit Hacker writes: > > > If I recall correctly, it is under GPL, no? Which conflicts with our BSD > > liccense ... of course, I've been known to recall incorrectly at times :) > > Our ODBC driver is under the LGPL, same as unixODBC. There are no > "conflicts" as long as you don't copy code back and forth. Err, 'back and forth between the core and ODBC drivers', I presume? Ross -- Open source code is like a natural resource, it's the result of providing food and sunshine to programmers, and then staying out of their way. [...] [It] is not going away because it has utility for both the developers and users independent of economic motivations. Jim Flynn, Sunnyvale, Calif.