From ad5380d0749a4dd8cc77e198b25a664631a50baa Mon Sep 17 00:00:00 2001 From: prabatuty Date: Thu, 27 Dec 2007 15:43:20 +0000 Subject: [PATCH] Release changes for 1.2 Beta --- README | 10 +++++++++- README.INSTALL | 15 +++++++++------ csqlinstall.ksh | 4 +++- src/server/DataType.cxx | 2 +- src/sql/dmlyacc.yxx | 4 ++-- test/jdbc/Connection/ConnTest1.class | Bin 2419 -> 0 bytes test/jdbc/Connection/ConnTest2.class | Bin 2535 -> 0 bytes test/jdbc/Connection/ConnTest3.class | Bin 2431 -> 0 bytes test/jdbc/Connection/ConnTest4.class | Bin 2377 -> 0 bytes test/jdbc/Connection/ConnTest5.class | Bin 2306 -> 0 bytes test/jdbc/Connection/ConnTest6.class | Bin 2562 -> 0 bytes test/jdbc/Statement/StmtTest1.class | Bin 2903 -> 0 bytes test/jdbc/Statement/StmtTest2.class | Bin 2451 -> 0 bytes 13 files changed, 24 insertions(+), 11 deletions(-) delete mode 100644 test/jdbc/Connection/ConnTest1.class delete mode 100644 test/jdbc/Connection/ConnTest2.class delete mode 100644 test/jdbc/Connection/ConnTest3.class delete mode 100644 test/jdbc/Connection/ConnTest4.class delete mode 100644 test/jdbc/Connection/ConnTest5.class delete mode 100644 test/jdbc/Connection/ConnTest6.class delete mode 100644 test/jdbc/Statement/StmtTest1.class delete mode 100644 test/jdbc/Statement/StmtTest2.class diff --git a/README b/README index d3d9d1d6..1834c7a1 100644 --- a/README +++ b/README @@ -20,15 +20,20 @@ Go to the root directory and enter the following commands. $ export JDK_HOME= $ ./configure --prefix=`pwd`/install CXXFLAGS="-I$JDK_HOME/include -I$JDK_HOME/include/linux" $ make +$ make install $ ./csqlinstall.ksh +Note: +setupenv.ksh script is available at the root directory which shall be used to +set the necessary environment variables. + This will create "install" directory under the current directory and places all the executables created in bin directory and libraries in lib directory. Available Documentation ----------------------- 1.User Manual is available under the docs directory 2.HTML API Reference for DB API under the docs/html directory (Refer next section) -3.DB API example programs under the examples directory +3.DB API, SQL API, JDBC, ISQL example programs under the examples directory Generating API Reference ------------------------ @@ -56,6 +61,9 @@ $./csqlserver This starts the server and creates the database file. +Note: +Refer UserManual.pdf available in docs folder to know how to work with csql + Shutting down the Server ------------------------ Pressing Ctrl-C on the terminal where csqlserver is running, diff --git a/README.INSTALL b/README.INSTALL index 4824c6a8..1519b0da 100644 --- a/README.INSTALL +++ b/README.INSTALL @@ -14,8 +14,8 @@ g++ in linux Untar the distribution ---------------------- Go to the root directory and enter the following commands. -$gunzip csql-linux-i686-1.0Beta.tar.gz -$tar xvf csql-linux-i686-1.0Beta.tar +$gunzip csql-linux-i686-1.2Beta.tar.gz +$tar xvf csql-linux-i686-1.2Beta.tar This will create the following directories, 1. include @@ -29,14 +29,15 @@ and following files, 3. AUTHORS 4. ChangeLog 5. README + 6. csql.conf -under csql-linux-i686-1.0Beta directory. +under csql-linux-i686-1.2Beta directory. Available Documentation ----------------------- 1.User Manual is available under the docs directory -2.HTML API Reference for DB API under the docs/html directory (Refer next section) -3.DB API example programs under the examples directory +2.HTML API Reference for DB API under the docs/html directory (Refer next section to create HTML API Reference) +3.DB API, SQL API, JDBC, ISQL example programs under the examples directory Generating API Reference ------------------------ @@ -57,13 +58,15 @@ Set the CSQL_CONFIG_FILE environment variable to absolute path of csql.conf file $export CSQL_CONFIG_FILE=/tmp/csql.conf - You should find csqlserver executable under the bin directory of the installation. $./csqlserver This starts the server and creates the database file. +Note: +Refer UserManual.pdf available in docs folder to know how to work with csql + Shutting down the Server ------------------------ Pressing Ctrl-C on the terminal where csqlserver is running, is safe and will stop the server gracefully by removing the database file. diff --git a/csqlinstall.ksh b/csqlinstall.ksh index 49cf75ab..b8afa243 100755 --- a/csqlinstall.ksh +++ b/csqlinstall.ksh @@ -29,7 +29,8 @@ ln -s libcsqljdbc.so libcsqljdbc cp ${root_dir}/src/sql/Statement.h ${install_dir}/include cp ${root_dir}/src/sql/Parser.h ${install_dir}/include cd ${install_dir}/include -rm Allocator.h CatalogTables.h Database.h DatabaseManagerImpl.h +rm Allocator.h CatalogTables.h Database.h +#rm DatabaseManagerImpl.h rm Globals.h Index.h Lock.h PredicateImpl.h rm Process.h SessionImpl.h TableImpl.h Transaction.h UserManagerImpl.h @@ -38,6 +39,7 @@ cp ${root_dir}/Doxyfile ${install_dir} cp ${root_dir}/COPYING ${install_dir} cp ${root_dir}/AUTHORS ${install_dir} cp ${root_dir}/ChangeLog ${install_dir} +cp ${root_dir}/csql.conf ${install_dir} cp -R ${root_dir}/examples ${install_dir} find ${install_dir}/examples -name "CVS" -exec rm -rf {} \; cp -R ${root_dir}/docs ${install_dir} diff --git a/src/server/DataType.cxx b/src/server/DataType.cxx index 4c78fe23..bdba8e4b 100644 --- a/src/server/DataType.cxx +++ b/src/server/DataType.cxx @@ -937,7 +937,7 @@ void AllDataType::strToValue(void* dest, char *src, DataType type, int length) break; } case typeDouble: { double val; - sscanf( src, "%g", &val); + sscanf( src, "%lg", &val); *(double*)dest = val; break; } case typeFloat: { diff --git a/src/sql/dmlyacc.yxx b/src/sql/dmlyacc.yxx index fbf98c5e..ed0f97bc 100644 --- a/src/sql/dmlyacc.yxx +++ b/src/sql/dmlyacc.yxx @@ -231,11 +231,11 @@ ddl_statement: CREATE TABLE ident '(' create_defn_list ')' semicolon_opt } ; opt_ind_type: - | HASH + | HASH opt_constr_type { parsedData->setIndexType(hashIndex); } - | TREE + | TREE opt_constr_type { parsedData->setIndexType(treeIndex); } diff --git a/test/jdbc/Connection/ConnTest1.class b/test/jdbc/Connection/ConnTest1.class deleted file mode 100644 index 58c899466dfe6d699ee961a7747755459157c4d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2419 zcwUWGTXz#x6#hhi_4TuXnDPcCtvOlgx6&^+vO+xy$!zMMJv^Piu71u%$j{D|Rz zjA1_>#v?Kg${3L`>c=5G+KMq87UD4(ooK}|JnqL6NQ&8UA)XWmsTQ2T zgoH^yHVV{}Vmu|pln`k@GMJWeTE>jPd#V*@a8|}SF+MHhycnO6@vInA0`P(iO~R~< ztgz4d@c_7lISF|N-=RXOV2?4l!;#Yrp16_Y3>~RLiBD9Dv)s&RvpVf~idvz>5DK45 z&1(zVfUcGD18LhVl=7p((4RIcW|ki-2<7&;Q7UD)We@fXWd-}t&(NK{{;gc>`g9zr z6!aV?ZlR1}Yr1Mz$~w1*l*LV(=Trr6;cX$_QSdI_lkmQR5Ab0v>6T3ZD;6UR8`6nX zBA!wE)H%~A5>w*#5k8jiiGojYjZ88^Rb9~Z3RepjVSk3t85m8zz)R~XSX}2>hr*Yl zAniw|CQq)WZj_;GEtbS$mY3~K?sdWZKEL7W~z8G*?=7iG}3~hOC3-{!y#`Q!K!2h$e z;#7E8gImo=<2HGrw~2x=*-)yLTxs ze354>HsvMQEH7s%y=9Y^HM8Eu{(GlTz@Kysa`nzP-}{t42ozgVOuXS_Qbg6c9-fHS z8g6n<5KTtz_D?-QD0j3&;bik~M%zlf)8(8dqNYz!lKf_M!{Uv8uUJHn6pRWH3p!{8 zgXq&$CqS+h$)`^%mw742uVkC)X_uHQCeH_YZdWjR~ok= zQ_h9GZ>HL6AX@fP#?-P@BQ+dpd=Ks%C3L6Rume$g8^zBBCf)&(1GMU;k4(lcCOx0P2$uhc(h+{~zzL^^$;cSQ_Tq1ZSqKr40K&>I(_#nw`Sq=XilKn1)oO-@6~WG2i^+TtCp zig!^##S4lLea45<=vut^<}dKsHy>TgH`fC9NlKDJLFZwgIs1J3^6j(FocZm}&$j{e z;72csJ{kR9?8B2X24oD%c*=_*?61Ty4#)^r;vk+DlS48>VjQW&VT8Rnf>H4{Cd5%8 z4vE!c6&OcELevYtaD7~iCxn;~;u$Ya;*^&#r`^as>~Alg#d9*Am+^v(Ga{Z=iAls{ z#Kp*EOo=fe1SN4+MpDAGjB~=F?nMVu5)26@gJ)mTNIC-y<$=}{46b1_&KYXLNrR7O zQj^?@YLhx?Tq!MSFf;~Eho`j}txMO8L|4SIl18Fm7N0!9HX({vc5lxAoN0kRc1 z$Viw`FpD{c_Tlm1P&BAUhxUg__NalW9yMt=oX{QWRIeI4t66HGx4X5qU%~|iFXANy zFN;iCLZgx3cvKCIM#qHZiJ|cEU_=cJcBq4`{R&>es}f#Q@H#F^ctgRPm{;%?-d6Aq zE-82yJ0!fP;C*~RtnM$z{!CJjb7IpJH62Y?MJ;&DNt%YOrnER$6?}+~g!ov&C%7!( zQw5*la|Ks~->V9~z?TdSdFyd=)+Saqw;Uco8o_m>kN!uzQ=qak|iS9T&G-fk*W`jj~y*k zx1XWD$TTTDW=uU*M?6-oJyc&GY$(5U0%ad5%ZxsXV{)7N6>qLvop*nn=jKE+c8CN2e%J89NJBcsvXb_?vLxZ<#jq$j6zp#r<{L>^i; zPIHL>SAAtmD4+1Td~Tm-2~xN{3z<%M`9O!SA`5RBCP-6Bw065#pSygw$M31DzjOna zN=$r87FA{Fb2qzPeoq$F1){f6B>Sj|Ku$+`kEH8#_w4~^CH$RV%-wfH=tz+kI#G9!rhq?pelf_0`LJw z1ods8g%01wEH+WL9-`Dt*=}a^o!?vHX$yI3_PDaxS_bmx+m@SCwgE9;llM;q7ViEk z>|5_~C~?uYGMNrvduc5fupwLm-cI25MRew|^wxD#>=<*{Ed65S_wWV+B)znkm8gY+ zCRCvr)!2v{TB$`l>d*-v_M(CQh5Yo7)QAZ}C9no2A!o6cF79=>i1l>&w$R1$7?ucs z8!CRsCj5cT_!C?37q;RbY{MM{n2a{I2kmSC+gT8u>@d0*M>jLj!yN3Q?0VT8-A$LV PlUw$-VyqrImV- diff --git a/test/jdbc/Connection/ConnTest3.class b/test/jdbc/Connection/ConnTest3.class deleted file mode 100644 index 314bb0127a3a70acabcc3bdf30cb7a734de99794..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2431 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 diff --git a/test/jdbc/Connection/ConnTest5.class b/test/jdbc/Connection/ConnTest5.class deleted file mode 100644 index 7c154a80dada494c61795184a4ac2621191e1d9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2306 zcwUWG-E$LF6#v~e$!^juEnCu3ps=9GrcGN~1hK`IQi29U3rzq4KiDR>VN0?bb~m;7 zg#vzmqc1w+IOB}dM+avtL`ENc&>5b6_8;(n5YOF&w1t9prsv*!_MG22_jk^{H@E-! z`Bwk~_%ebxcFWik!4udk<4GAqGKM4Aho_n_f>9a!n=pn062@g56sklRhw!w7XCi13 zu1PT-7UEeUQV|@%L=&1Y8NpE;6SFBH(n4ee!f_cVWSkVZ&o$u`PRlqW#^+_cAjTJk z$jEp}7-uA$m0<|z=?HcpD+S9n#tM4T$Iy{= zFBJM_bJN+r!z9ud3I`o?jyn=&6y$M^AuK))2{Q`l*tW+Y6%EVC3nNp(EY3?PC@6wb z=^39&jAas9X6!(UNNf6NTpNuID{$aS@D!9WN87oVhXZA^ zkmC-+I`=N5tCea|GzBkXUWkhdUcsvpUQ_To-cWD}Z%TMe!DU=ga20PWcn9w)cn^IF z-WR-4F_2TH8HUaxAi9I3VgLvx;cB0NR% zb3L*O;Q!Iof{F-BaCJsjs%cAEhf{5r^-R0I456+k0QG(?5y0npw(JoB(bWhzO+3~* zW|`B@2XnP*BM+~rM*5;lYC7O{nXsZ&Khq{RIxK|7jUqXOj8chPIfmZQ2tizX$a)Xa{RxpR?0e|XuZxLYoG zX}+>o>RP%1Ek5u0!Kf`l`Pyy+v=Is(&M)P?qGZ*>_t28Hl&VY{+4C94$Z~8&4?SSw zuK`S4)+GCB)kPztG1z?r>^e=T7fFVEWh27$^bJ-`+206|9&A!=xQWJ-YCsLDp_`CW zJr&4wIvYpgYPf<(15UQ)enHbvpm9$y8f?vdhrOMFXs}0BDrjy%nskxU*Xa5YYi^aChlKke{a4W52!G*!IeQZw6|AqRD(GYw=?Z*{ z&;r_OstpW2ScQ_@NH0n?Rf?=`qBwE2tAfo97z%b0_7;Y(uxD9T8fDcP3{2F27eE{}&GD BKj8oX diff --git a/test/jdbc/Connection/ConnTest6.class b/test/jdbc/Connection/ConnTest6.class deleted file mode 100644 index 64fc319a48744b5e98b0068aefd47f2daa1b6336..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2562 zcwUWG*>@9F82{ZiX(s8EmUN@g!myO4ZRiG6ZK2pDNHASUQYzrWG`THPCYdlZDa8#J zR1{Yf6&Fxk`rs3KP9b`Z=lJ3|dVKTQf5ZpzyGcpf(xQ2|bHCqw%kNw6o&5gKk3R$G z#J3*o#y$!AJ?O&$2@gx?moVVLAcjg2z(EO*l;RMA5)KRb(Ncsk?7;{|#coV2N5m2q zZzB?-62^tWQ8y;=n1o{<9LEU>k4tz$!jnSlDG4Vfs1hcHVyqN#a2KXL*d~}vi{~i; zYGOAd;j|ERAtb~uEFme}gk3Nsqy&D(gEp8hST5KMCHu6bX7@1^`5~`MDsPUZ$&8V|#yRIgu+atEAC8v9Zp(kRb%@{wZ3FUQzMlu=Y zmfhVZlx6I}UWVG3bw+QSiBHDb4$~4jqYs(dEGH^y8M8Rc;1(}?gc=1j4TJc(5^7SN z7D{t6&f#eno{{k^o?~bo3&CR_o zJTK!sUSMbljzj|Cs1h8BjtZlr{h{$dMDZQ)D+ii;WxR-&TzFZ=1-#(b^7TN>nFsueu30v< zRk714om)K&>mw9Kxi=*0OWeC)zi8K2-&>g>vq7)Wb+oD-4qsBn_YThS~< z#%K6k#x-0QyDu0RL0^g*-@sQiI78vlv3y4ep4-V!q?4xGJ)y+b>9QW4d9HR1z~13C&)k7{TSl z&RN8tJQ!(Vkki);%8%|MGT~|>-?im1C6f}8o?Igk@stYZR9>WfB+bop48HppKg_MP zZb$g?j^|OjUz2>!&L&RHEm2b`o{Tf>`j7EncD%`T$@F5&9MlaeO#Nz2DX6=r3%!wS z_4zJT&avQEtYX%aX?&3bb*PVf<2otQw(dsSD zKrTX$qqy5y?X2+J!0tMSquQB4SuyGy0*jx#jddB63ps-dhQ0>Jb(GA*eZk4*@BAUq z_4Ikmz{}wGR_2`hy;T`h7v+>ozekO?b^#mw-ntd&Mnc7N6FtdAJ%f-M7SYXFn=KhA z#L-ztw6-!_MK`_s3EPg{!glYD1vJ(90tx_Ls4PRyWn!g9?BWs^jE7A5mey>su3ehBh3^x(Eo>x^nu@mi>SvHYVb8|#&_6)AE1D;#4p&6 s-zdhPD6YA@?ZQFWv{r z5Wqn<4k0LJy<+GSLr6itcpomq0K%n+U{J=88_PwMVevj9R*s6U^Du^nGiFhFyTtQqIj=52flQI%APBFN4CDI9N4?~H!eu%-*m5FhNieMtm z`|_z#ZbppJBxxKeBavpP_8tqKGRBSOq>&zL4qIj-J+@Ogy2F{g8Rb0*VO$=zQdWfL ztd=HWtfCoP8ET@rGs&h?vC(MLK^nqmlHF!voSQOEt4JcnP%0MNg&74jGZ~9PP8n%q zOcedZ7D=9_q85^>|DDP8DZGrmF*eVgEpcj3ObiIMf*&^oMnChfnVi zM(1!|#sw8m;7J)zsdyUCsCX97sdyeQsF)BKYr_7Zzbm3|(c@+&B~Z?uUr>l4qZ>e}2?}*vE z42)Foi9{~qeHkC9_z;&E)(`e~+bp%{VShx>Lecf%1O5U3Y${Z5XWZhZp3lY%i~ICs zB4<%(-4YRV?F_5BsTKn183^?Xq~h)|p5#T{E4l|l{qx_6JgVl)^q-6Jtd+=6b5+gF z={xG8f763&l8d5xM zi4C{_VNOo~+WlH0fS=>hyhQ|fiV-kE`#+jVr4nRXnKgOVFc-$!`e4#Toc@ACY+)8F z9=uAia@-1tiPIYhh(n`tF+62#H+U#6G7i+=AD_B_P-d;Gy@BG#(UO_M2kn-&PqzTY zjV3cWlGK^i!+CC=U&QGE&*hU=nBU9koR$uzG(TtAh$Ht_a6U(c(n2Or%bo&aB11&b zp+u>1BSnxdBb(*v7(?SfbmTqTUpS7 zzC~6@$@BxdXJ}Cog?;$9MO0)9_(t?}#5AHD>(EF)Q1M7$;x|EK3rVZ#&FJmiavkg% zO&D5fblJ)hlwupU7fegOg#!xtU)H1>C>hoqnp1P#fE;X?hC&2X%Nufp5t@HnSYQG!OHiJiEC%4sYmaT*%K@Pw01-n~Ua z75##2payN3jnVF4?aq=mm&YY=PSiRa9+wSN>zIazq1{}^}gek1n*4Q#xt`+jiDdHp5zr){2VBQL`w)&&;;Zz1o7DKr!i=;ga6dR7{j&eOHa?qXI>7eY`E zyWmD8%1{FpI+oCSIcg-DF#!~EuhJIAxIF=z!auU^a^{Juj$8x%8)Y1)N1^xe5 zQfaGjmA1^MSc{)&OWh{@9n|4hY{2i>$RuoH8aA_)ly4pCnU8d>Xka_wV|&oVdeF@J z=?6Q478XS-OJO_v1Z`}R^q*k|`vSYz*VxT&Vh{Tf9qbnNvR_EPjeYD6y4Y{)y zIj~ccS{mvBPDsDv>ePU2J>PU8g$FScPEXCy?#J}NJJ6g{)t#hPxlAL81`?13KL4#BFRLwUsx=G z(%7wQaV?To2h^Nn=LP!aHSTb7s-99qgeqgvgPSszaLa?&WxRnmiLuA2K2tWWEO)3t z>2lHH>Y`zlxoVbF8E@fj8Smg-v3iezk?4JVAmc-PKEbClZj0=m8cUdB`3#>k z3`|c&tMrCcT}ul-PpSQpbK{A#TC`uCIj5zx)#w>^Mad+ACsN5tq0w+0rsKZxoXZ_G z%PsEmplX>Vmy%Ikkwa;eL3tt~QtF7Nl2dEdB}vyB9okZc7hTh)KIp2isrstuy3r~f zcVyfZ>3ZwU$k4fFAvw3eGgO(5HBrPeN+oK!ob4oxJoWJb{|3z-e@uY_>#2&UZAWSy zJz48nhW2^xM(jd?JXK?z+`!(v-Xv)I3Us=dH8xdp3uW%yV(@QHtcWGWOJ&Q| z`T7X!Qo0-pe95ieS(n!pRlilDBfKh&Hk9kY8OpUfqMyFlL=xrfD%S>?N!Kj|AvUJ4U(W56~)dfY(hER$SoPm zE>THjilTwKb*<1y^g1$XPsdZq=qT3WF*4WFj*;Qmi$Qw*iC+_#xbkTnp*Puc@6h!FwqJUPZlz}#y+h3v>}bL= zo>6v+ZA%5uif!*Qb}ggt{$D?l=5FC)&x(r*RQBKPtp>igG2Wo^T;rBZEBi<(sOtnNF%@BU0f*TPj