diff options
author | Thorsten Behrens <tbehrens@novell.com> | 2011-03-12 02:42:58 +0100 |
---|---|---|
committer | Thorsten Behrens <tbehrens@novell.com> | 2011-03-12 02:42:58 +0100 |
commit | e65c0fe553a9d1b85dcacfff7af9df8231427876 (patch) | |
tree | 250636f82248275ef5c1d491e58e4e3cf136cdff /connectivity/qa/complex | |
parent | 35fbb45086c389f91c0d6ff410d814f7567c1ceb (diff) | |
parent | 4fba42e5f98fcc0fa9addf41a793c1d7f11602c8 (diff) |
Merge commit 'ooo/DEV300_m101' into integration/dev300_m101
Conflicts:
avmedia/inc/avmedia/mediaitem.hxx
avmedia/prj/build.lst
avmedia/source/framework/mediaitem.cxx
avmedia/source/gstreamer/gstcommon.hxx
avmedia/source/gstreamer/gstframegrabber.cxx
avmedia/source/gstreamer/gstframegrabber.hxx
avmedia/source/gstreamer/gstmanager.cxx
avmedia/source/gstreamer/gstmanager.hxx
avmedia/source/gstreamer/gstplayer.cxx
avmedia/source/gstreamer/gstplayer.hxx
avmedia/source/gstreamer/gstuno.cxx
avmedia/source/gstreamer/gstwindow.cxx
avmedia/source/gstreamer/gstwindow.hxx
avmedia/source/gstreamer/makefile.mk
avmedia/source/quicktime/quicktimeuno.cxx
avmedia/source/viewer/mediawindow.cxx
avmedia/source/viewer/mediawindow_impl.cxx
avmedia/source/viewer/mediawindow_impl.hxx
avmedia/source/viewer/mediawindowbase_impl.cxx
avmedia/source/win/winuno.cxx
basic/inc/basic/basmgr.hxx
basic/inc/basic/mybasic.hxx
basic/inc/basic/process.hxx
basic/inc/basic/sbmeth.hxx
basic/inc/basic/sbmod.hxx
basic/inc/basic/sbxdef.hxx
basic/inc/basic/sbxvar.hxx
basic/source/app/app.cxx
basic/source/app/app.hxx
basic/source/app/appbased.cxx
basic/source/app/appedit.cxx
basic/source/app/appwin.cxx
basic/source/app/appwin.hxx
basic/source/app/brkpnts.cxx
basic/source/app/brkpnts.hxx
basic/source/app/dialogs.cxx
basic/source/app/dialogs.hxx
basic/source/app/msgedit.cxx
basic/source/app/mybasic.cxx
basic/source/app/process.cxx
basic/source/app/processw.hxx
basic/source/app/textedit.cxx
basic/source/basmgr/basicmanagerrepository.cxx
basic/source/basmgr/basmgr.cxx
basic/source/classes/disas.cxx
basic/source/classes/eventatt.cxx
basic/source/classes/image.cxx
basic/source/classes/sb.cxx
basic/source/classes/sbunoobj.cxx
basic/source/classes/sbxmod.cxx
basic/source/comp/codegen.cxx
basic/source/comp/dim.cxx
basic/source/comp/exprgen.cxx
basic/source/comp/exprnode.cxx
basic/source/comp/exprtree.cxx
basic/source/comp/sbcomp.cxx
basic/source/inc/expr.hxx
basic/source/inc/object.hxx
basic/source/inc/sbunoobj.hxx
basic/source/runtime/dllmgr-x86.cxx
basic/source/runtime/iosys.cxx
basic/source/runtime/makefile.mk
basic/source/runtime/methods.cxx
basic/source/runtime/methods1.cxx
basic/source/runtime/runtime.cxx
basic/source/runtime/stdobj.cxx
basic/source/runtime/step0.cxx
basic/source/runtime/step1.cxx
basic/source/runtime/step2.cxx
basic/source/sbx/sbxarray.cxx
basic/source/sbx/sbxbase.cxx
basic/source/sbx/sbxbool.cxx
basic/source/sbx/sbxbyte.cxx
basic/source/sbx/sbxcoll.cxx
basic/source/sbx/sbxconv.hxx
basic/source/sbx/sbxcurr.cxx
basic/source/sbx/sbxexec.cxx
basic/source/sbx/sbxint.cxx
basic/source/sbx/sbxobj.cxx
basic/source/sbx/sbxscan.cxx
basic/source/sbx/sbxstr.cxx
basic/source/sbx/sbxvals.cxx
basic/source/sbx/sbxvalue.cxx
basic/source/sbx/sbxvar.cxx
basic/workben/mgrtest.cxx
configmgr/prj/build.lst
configmgr/source/access.cxx
configmgr/source/configurationprovider.cxx
configmgr/source/defaultprovider.cxx
configmgr/source/pad.cxx
configmgr/source/services.cxx
configmgr/source/update.cxx
configmgr/source/xmlreader.cxx
configmgr/source/xmlreader.hxx
connectivity/prj/build.lst
connectivity/qa/complex/connectivity/TestCase.java
connectivity/source/cpool/Zregistration.cxx
connectivity/source/drivers/adabas/Bservices.cxx
connectivity/source/drivers/ado/Aservices.cxx
connectivity/source/drivers/calc/Cservices.cxx
connectivity/source/drivers/calc/makefile.mk
connectivity/source/drivers/dbase/DIndex.cxx
connectivity/source/drivers/dbase/DIndexIter.cxx
connectivity/source/drivers/dbase/DNoException.cxx
connectivity/source/drivers/dbase/DTable.cxx
connectivity/source/drivers/dbase/Dservices.cxx
connectivity/source/drivers/dbase/dindexnode.cxx
connectivity/source/drivers/evoab/LNoException.cxx
connectivity/source/drivers/evoab/LServices.cxx
connectivity/source/drivers/evoab2/NServices.cxx
connectivity/source/drivers/file/FNoException.cxx
connectivity/source/drivers/file/FPreparedStatement.cxx
connectivity/source/drivers/file/FResultSet.cxx
connectivity/source/drivers/file/FStatement.cxx
connectivity/source/drivers/file/quotedstring.cxx
connectivity/source/drivers/flat/ETable.cxx
connectivity/source/drivers/flat/Eservices.cxx
connectivity/source/drivers/hsqldb/Hservices.cxx
connectivity/source/drivers/jdbc/jservices.cxx
connectivity/source/drivers/kab/KServices.cxx
connectivity/source/drivers/macab/MacabServices.cxx
connectivity/source/drivers/mozab/MResultSet.cxx
connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx
connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.cxx
connectivity/source/drivers/mysql/Yservices.cxx
connectivity/source/drivers/odbc/OFunctions.cxx
connectivity/source/drivers/odbc/oservices.cxx
connectivity/source/inc/dbase/DIndexPage.hxx
connectivity/source/inc/file/FTable.hxx
connectivity/source/manager/mregistration.cxx
connectivity/source/parse/PColumn.cxx
desktop/prj/build.lst
desktop/qa/deployment_misc/test_dp_version.cxx
desktop/source/app/app.cxx
desktop/source/app/appfirststart.cxx
desktop/source/app/cmdlineargs.cxx
desktop/source/app/cmdlineargs.hxx
desktop/source/app/sofficemain.cxx
desktop/source/deployment/gui/dp_gui.hrc
desktop/source/deployment/gui/dp_gui_dialog2.cxx
desktop/source/deployment/gui/dp_gui_dialog2.hxx
desktop/source/deployment/gui/dp_gui_updatedialog.cxx
desktop/source/deployment/gui/dp_gui_updatedialog.hxx
desktop/source/deployment/manager/dp_extensionmanager.cxx
desktop/source/deployment/manager/dp_extensionmanager.hxx
desktop/source/deployment/misc/dp_misc.src
desktop/source/deployment/registry/component/dp_component.cxx
desktop/source/deployment/registry/configuration/dp_configuration.cxx
desktop/source/deployment/registry/dp_backend.cxx
desktop/source/deployment/registry/help/dp_help.cxx
desktop/source/deployment/registry/script/dp_script.cxx
desktop/source/migration/pages.cxx
desktop/source/migration/pages.hxx
desktop/source/migration/wizard.cxx
desktop/source/migration/wizard.hrc
desktop/source/migration/wizard.hxx
desktop/source/migration/wizard.src
desktop/source/pkgchk/unopkg/unopkg_shared.h
desktop/source/so_comp/services.cxx
desktop/source/splash/makefile.mk
desktop/source/splash/services_spl.cxx
desktop/source/splash/splash.cxx
drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx
editeng/inc/editeng/adjitem.hxx
editeng/inc/editeng/bolnitem.hxx
editeng/inc/editeng/borderline.hxx
editeng/inc/editeng/boxitem.hxx
editeng/inc/editeng/brkitem.hxx
editeng/inc/editeng/brshitem.hxx
editeng/inc/editeng/bulitem.hxx
editeng/inc/editeng/charreliefitem.hxx
editeng/inc/editeng/charrotateitem.hxx
editeng/inc/editeng/charscaleitem.hxx
editeng/inc/editeng/cmapitem.hxx
editeng/inc/editeng/colritem.hxx
editeng/inc/editeng/crsditem.hxx
editeng/inc/editeng/editdata.hxx
editeng/inc/editeng/editeng.hxx
editeng/inc/editeng/editobj.hxx
editeng/inc/editeng/editstat.hxx
editeng/inc/editeng/editview.hxx
editeng/inc/editeng/emphitem.hxx
editeng/inc/editeng/escpitem.hxx
editeng/inc/editeng/fhgtitem.hxx
editeng/inc/editeng/flstitem.hxx
editeng/inc/editeng/fontitem.hxx
editeng/inc/editeng/frmdiritem.hxx
editeng/inc/editeng/fwdtitem.hxx
editeng/inc/editeng/hyznitem.hxx
editeng/inc/editeng/kernitem.hxx
editeng/inc/editeng/langitem.hxx
editeng/inc/editeng/lrspitem.hxx
editeng/inc/editeng/lspcitem.hxx
editeng/inc/editeng/numitem.hxx
editeng/inc/editeng/outliner.hxx
editeng/inc/editeng/paravertalignitem.hxx
editeng/inc/editeng/pmdlitem.hxx
editeng/inc/editeng/postitem.hxx
editeng/inc/editeng/protitem.hxx
editeng/inc/editeng/shaditem.hxx
editeng/inc/editeng/sizeitem.hxx
editeng/inc/editeng/svxacorr.hxx
editeng/inc/editeng/svxfont.hxx
editeng/inc/editeng/svxrtf.hxx
editeng/inc/editeng/swafopt.hxx
editeng/inc/editeng/tstpitem.hxx
editeng/inc/editeng/twolinesitem.hxx
editeng/inc/editeng/txtrange.hxx
editeng/inc/editeng/udlnitem.hxx
editeng/inc/editeng/ulspitem.hxx
editeng/inc/editeng/wghtitem.hxx
editeng/inc/editeng/writingmodeitem.hxx
editeng/inc/editeng/xmlcnitm.hxx
editeng/inc/helpid.hrc
editeng/inc/pch/precompiled_editeng.hxx
editeng/source/editeng/editdbg.cxx
editeng/source/editeng/editdoc.cxx
editeng/source/editeng/editdoc.hxx
editeng/source/editeng/editdoc2.cxx
editeng/source/editeng/editeng.cxx
editeng/source/editeng/editobj.cxx
editeng/source/editeng/editobj2.hxx
editeng/source/editeng/editsel.cxx
editeng/source/editeng/editundo.cxx
editeng/source/editeng/editundo.hxx
editeng/source/editeng/editview.cxx
editeng/source/editeng/edtspell.hxx
editeng/source/editeng/eehtml.cxx
editeng/source/editeng/eehtml.hxx
editeng/source/editeng/eeobj.cxx
editeng/source/editeng/eerdll.cxx
editeng/source/editeng/eertfpar.cxx
editeng/source/editeng/impedit.cxx
editeng/source/editeng/impedit.hxx
editeng/source/editeng/impedit2.cxx
editeng/source/editeng/impedit3.cxx
editeng/source/editeng/impedit4.cxx
editeng/source/editeng/impedit5.cxx
editeng/source/editeng/makefile.mk
editeng/source/items/bulitem.cxx
editeng/source/items/charhiddenitem.cxx
editeng/source/items/flditem.cxx
editeng/source/items/frmitems.cxx
editeng/source/items/makefile.mk
editeng/source/items/numitem.cxx
editeng/source/items/paraitem.cxx
editeng/source/items/svxfont.cxx
editeng/source/items/textitem.cxx
editeng/source/items/writingmodeitem.cxx
editeng/source/items/xmlcnitm.cxx
editeng/source/misc/SvXMLAutoCorrectImport.cxx
editeng/source/misc/svxacorr.cxx
editeng/source/misc/txtrange.cxx
editeng/source/misc/unolingu.cxx
editeng/source/outliner/outleeng.cxx
editeng/source/outliner/outliner.cxx
editeng/source/outliner/outlundo.hxx
editeng/source/outliner/outlvw.cxx
editeng/source/outliner/paralist.cxx
editeng/source/outliner/paralist.hxx
editeng/source/rtf/rtfgrf.cxx
editeng/source/rtf/rtfitem.cxx
editeng/source/rtf/svxrtf.cxx
editeng/source/uno/unoipset.cxx
editeng/util/makefile.mk
embeddedobj/prj/build.lst
embeddedobj/source/commonembedding/miscobj.cxx
eventattacher/prj/build.lst
fileaccess/source/FileAccess.cxx
formula/inc/formula/FormulaCompiler.hxx
formula/inc/formula/token.hxx
formula/inc/formula/tokenarray.hxx
formula/source/core/api/FormulaCompiler.cxx
formula/source/core/api/token.cxx
formula/source/ui/dlg/FormulaHelper.cxx
formula/source/ui/dlg/formula.cxx
formula/source/ui/dlg/parawin.cxx
formula/source/ui/dlg/structpg.cxx
fpicker/prj/d.lst
fpicker/source/aqua/FPentry.cxx
fpicker/source/office/OfficeControlAccess.cxx
fpicker/source/office/iodlg.cxx
fpicker/source/office/iodlg.hxx
fpicker/source/office/iodlg.src
fpicker/source/office/iodlgimp.cxx
fpicker/source/unx/gnome/FPentry.cxx
fpicker/source/unx/gnome/SalGtkFilePicker.cxx
fpicker/source/unx/gnome/SalGtkPicker.cxx
fpicker/source/unx/kde4/KDE4FPEntry.cxx
fpicker/source/win32/filepicker/FPentry.cxx
framework/AllLangResTarget_fwe.mk
framework/inc/dispatch/interaction.hxx
framework/inc/framework/addonmenu.hxx
framework/inc/framework/addonsoptions.hxx
framework/inc/framework/bmkmenu.hxx
framework/inc/framework/imageproducer.hxx
framework/inc/framework/sfxhelperfunctions.hxx
framework/inc/framework/statusbarconfiguration.hxx
framework/inc/framework/titlehelper.hxx
framework/inc/framework/toolboxconfiguration.hxx
framework/inc/threadhelp/lockhelper.hxx
framework/inc/xml/eventsdocumenthandler.hxx
framework/inc/xml/statusbardocumenthandler.hxx
framework/inc/xml/toolboxconfiguration.hxx
framework/inc/xml/toolboxconfigurationdefines.hxx
framework/inc/xml/toolboxdocumenthandler.hxx
framework/prj/build.lst
framework/qa/complex/ModuleManager/makefile.mk
framework/qa/complex/accelerators/makefile.mk
framework/qa/complex/framework/recovery/makefile.mk
framework/qa/complex/imageManager/_XInitialization.java
framework/source/classes/menumanager.cxx
framework/source/dispatch/interaction.cxx
framework/source/fwe/classes/bmkmenu.cxx
framework/source/fwe/helper/actiontriggerhelper.cxx
framework/source/fwe/helper/imageproducer.cxx
framework/source/fwe/xml/menuconfiguration.cxx
framework/source/fwe/xml/toolboxdocumenthandler.cxx
framework/source/helper/uiconfigelementwrapperbase.cxx
framework/source/helper/uielementwrapperbase.cxx
framework/source/inc/pattern/window.hxx
framework/source/jobs/jobdata.cxx
framework/source/layoutmanager/layoutmanager.cxx
framework/source/layoutmanager/panel.hxx
framework/source/loadenv/loadenv.cxx
framework/source/register/registerservices.cxx
framework/source/services/menudocumenthandler.cxx
framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
framework/source/uiconfiguration/uiconfigurationmanager.cxx
framework/source/uiconfiguration/uiconfigurationmanagerimpl.cxx
framework/source/uielement/addonstoolbarmanager.cxx
framework/source/uielement/controlmenucontroller.cxx
framework/source/uielement/fontsizemenucontroller.cxx
framework/source/uielement/imagebuttontoolbarcontroller.cxx
framework/source/uielement/macrosmenucontroller.cxx
framework/source/uielement/menubarmanager.cxx
framework/source/uielement/newmenucontroller.cxx
framework/source/uielement/togglebuttontoolbarcontroller.cxx
framework/source/uielement/toolbarmanager.cxx
framework/source/uielement/toolbarsmenucontroller.cxx
framework/test/makefile.mk
framework/test/threadtest/makefile.mk
framework/test/typecfg/makefile.mk
framework/util/guiapps/makefile.mk
framework/util/makefile.mk
idl/inc/bastype.hxx
idl/inc/hash.hxx
idl/inc/lex.hxx
idl/inc/module.hxx
idl/inc/object.hxx
idl/inc/slot.hxx
idl/inc/types.hxx
idl/source/cmptools/hash.cxx
idl/source/cmptools/lex.cxx
idl/source/objects/basobj.cxx
idl/source/objects/bastype.cxx
idl/source/objects/module.cxx
idl/source/objects/object.cxx
idl/source/objects/slot.cxx
idl/source/objects/types.cxx
idl/source/prj/command.cxx
idl/source/prj/database.cxx
idl/source/prj/globals.cxx
idl/source/prj/svidl.cxx
linguistic/inc/linguistic/misc.hxx
linguistic/prj/build.lst
linguistic/source/convdic.cxx
linguistic/source/convdiclist.cxx
linguistic/source/dicimp.cxx
linguistic/source/dlistimp.cxx
linguistic/source/gciterator.cxx
linguistic/source/iprcache.cxx
linguistic/source/lngopt.cxx
linguistic/source/lngprophelp.cxx
linguistic/source/lngsvcmgr.cxx
linguistic/source/lngsvcmgr.hxx
linguistic/source/misc2.cxx
linguistic/workben/sprophelp.cxx
officecfg/registry/data/org/openoffice/VCL.xcu
officecfg/util/makefile.mk
oovbaapi/ooo/vba/XApplicationBase.idl
oovbaapi/ooo/vba/XVBAAppService.idl
oovbaapi/ooo/vba/XVBADocService.idl
oovbaapi/ooo/vba/excel/XApplication.idl
oovbaapi/ooo/vba/excel/XRange.idl
oovbaapi/ooo/vba/excel/XWorkbook.idl
oovbaapi/ooo/vba/excel/XWorksheet.idl
oovbaapi/ooo/vba/word/XApplication.idl
oovbaapi/ooo/vba/word/XGlobals.idl
oovbaapi/ooo/vba/word/XTableOfContents.idl
readlicense_oo/prj/build.lst
scripting/prj/build.lst
scripting/prj/d.lst
scripting/source/basprov/basprov.cxx
scripting/source/basprov/basscript.cxx
scripting/source/basprov/basscript.hxx
scripting/source/dlgprov/dlgprov.cxx
scripting/source/inc/util/util.hxx
scripting/source/protocolhandler/scripthandler.cxx
scripting/source/provider/ProviderCache.cxx
scripting/source/pyprov/makefile.mk
scripting/source/runtimemgr/ScriptNameResolverImpl.cxx
scripting/source/runtimemgr/ScriptRuntimeManager.cxx
scripting/source/runtimemgr/StorageBridge.cxx
scripting/source/storage/ScriptMetadataImporter.cxx
scripting/source/storage/ScriptSecurityManager.cxx
scripting/source/storage/ScriptStorage.cxx
scripting/source/storage/ScriptStorageManager.cxx
sfx2/inc/about.hxx
sfx2/inc/brokenpackageint.hxx
sfx2/inc/docvor.hxx
sfx2/inc/pch/precompiled_sfx2.hxx
sfx2/inc/sfx2/app.hxx
sfx2/inc/sfx2/basmgr.hxx
sfx2/inc/sfx2/bindings.hxx
sfx2/inc/sfx2/childwin.hxx
sfx2/inc/sfx2/ctrlitem.hxx
sfx2/inc/sfx2/dinfdlg.hxx
sfx2/inc/sfx2/dispatch.hxx
sfx2/inc/sfx2/docfilt.hxx
sfx2/inc/sfx2/evntconf.hxx
sfx2/inc/sfx2/fcontnr.hxx
sfx2/inc/sfx2/frame.hxx
sfx2/inc/sfx2/imagemgr.hxx
sfx2/inc/sfx2/imgmgr.hxx
sfx2/inc/sfx2/linksrc.hxx
sfx2/inc/sfx2/macrconf.hxx
sfx2/inc/sfx2/macropg.hxx
sfx2/inc/sfx2/mnuitem.hxx
sfx2/inc/sfx2/mnumgr.hxx
sfx2/inc/sfx2/module.hxx
sfx2/inc/sfx2/msg.hxx
sfx2/inc/sfx2/objsh.hxx
sfx2/inc/sfx2/passwd.hxx
sfx2/inc/sfx2/prnmon.hxx
sfx2/inc/sfx2/request.hxx
sfx2/inc/sfx2/sfx.hrc
sfx2/inc/sfx2/sfxbasemodel.hxx
sfx2/inc/sfx2/sfxhtml.hxx
sfx2/inc/sfx2/sfxresid.hxx
sfx2/inc/sfx2/sfxsids.hrc
sfx2/inc/sfx2/sfxuno.hxx
sfx2/inc/sfx2/shell.hxx
sfx2/inc/sfx2/stbitem.hxx
sfx2/inc/sfx2/styfitem.hxx
sfx2/inc/sfx2/tabdlg.hxx
sfx2/inc/sfx2/tbxctrl.hxx
sfx2/inc/sfx2/tplpitem.hxx
sfx2/inc/sfx2/viewfrm.hxx
sfx2/inc/sfx2/viewsh.hxx
sfx2/inc/sfxbasic.hxx
sfx2/inc/sorgitm.hxx
sfx2/prj/build.lst
sfx2/qa/complex/docinfo/makefile.mk
sfx2/qa/cppunit/makefile.mk
sfx2/sdi/makefile.mk
sfx2/source/appl/app.cxx
sfx2/source/appl/app.hrc
sfx2/source/appl/app.src
sfx2/source/appl/appbas.cxx
sfx2/source/appl/appcfg.cxx
sfx2/source/appl/appchild.cxx
sfx2/source/appl/appmain.cxx
sfx2/source/appl/appmisc.cxx
sfx2/source/appl/appopen.cxx
sfx2/source/appl/appquit.cxx
sfx2/source/appl/appserv.cxx
sfx2/source/appl/appuno.cxx
sfx2/source/appl/childwin.cxx
sfx2/source/appl/fileobj.cxx
sfx2/source/appl/helpinterceptor.cxx
sfx2/source/appl/imagemgr.cxx
sfx2/source/appl/impldde.cxx
sfx2/source/appl/impldde.hxx
sfx2/source/appl/linkmgr2.cxx
sfx2/source/appl/lnkbase2.cxx
sfx2/source/appl/makefile.mk
sfx2/source/appl/module.cxx
sfx2/source/appl/newhelp.cxx
sfx2/source/appl/opengrf.cxx
sfx2/source/appl/sfxdll.cxx
sfx2/source/appl/sfxhelp.cxx
sfx2/source/appl/shutdownicon.cxx
sfx2/source/appl/shutdowniconunx.cxx
sfx2/source/appl/workwin.cxx
sfx2/source/bastyp/fltfnc.cxx
sfx2/source/bastyp/frmhtml.cxx
sfx2/source/bastyp/frmhtmlw.cxx
sfx2/source/bastyp/helper.cxx
sfx2/source/bastyp/minarray.cxx
sfx2/source/bastyp/progress.cxx
sfx2/source/bastyp/sfxhtml.cxx
sfx2/source/config/evntconf.cxx
sfx2/source/control/bindings.cxx
sfx2/source/control/ctrlitem.cxx
sfx2/source/control/dispatch.cxx
sfx2/source/control/macrconf.cxx
sfx2/source/control/macro.cxx
sfx2/source/control/makefile.mk
sfx2/source/control/minfitem.cxx
sfx2/source/control/msg.cxx
sfx2/source/control/msgpool.cxx
sfx2/source/control/objface.cxx
sfx2/source/control/request.cxx
sfx2/source/control/shell.cxx
sfx2/source/control/sorgitm.cxx
sfx2/source/dialog/about.cxx
sfx2/source/dialog/basedlgs.cxx
sfx2/source/dialog/dinfdlg.cxx
sfx2/source/dialog/dinfedt.cxx
sfx2/source/dialog/dockwin.cxx
sfx2/source/dialog/filedlghelper.cxx
sfx2/source/dialog/mailmodel.cxx
sfx2/source/dialog/mailmodelapi.cxx
sfx2/source/dialog/makefile.mk
sfx2/source/dialog/mgetempl.cxx
sfx2/source/dialog/passwd.cxx
sfx2/source/dialog/passwd.hrc
sfx2/source/dialog/printopt.cxx
sfx2/source/dialog/securitypage.cxx
sfx2/source/dialog/splitwin.cxx
sfx2/source/dialog/styfitem.cxx
sfx2/source/dialog/tabdlg.cxx
sfx2/source/dialog/taskpane.cxx
sfx2/source/dialog/templdlg.cxx
sfx2/source/dialog/tplpitem.cxx
sfx2/source/dialog/versdlg.cxx
sfx2/source/doc/QuerySaveDocument.cxx
sfx2/source/doc/SfxDocumentMetaData.cxx
sfx2/source/doc/applet.cxx
sfx2/source/doc/doc.hrc
sfx2/source/doc/doc.src
sfx2/source/doc/docfile.cxx
sfx2/source/doc/docinf.cxx
sfx2/source/doc/doctempl.cxx
sfx2/source/doc/doctemplates.cxx
sfx2/source/doc/docvor.cxx
sfx2/source/doc/guisaveas.cxx
sfx2/source/doc/makefile.mk
sfx2/source/doc/objcont.cxx
sfx2/source/doc/objitem.cxx
sfx2/source/doc/objmisc.cxx
sfx2/source/doc/objserv.cxx
sfx2/source/doc/printhelper.cxx
sfx2/source/doc/sfxacldetect.cxx
sfx2/source/doc/sfxbasemodel.cxx
sfx2/source/inc/applet.hxx
sfx2/source/inc/fltoptint.hxx
sfx2/source/inc/sfxlocal.hrc
sfx2/source/inc/virtmenu.hxx
sfx2/source/inc/workwin.hxx
sfx2/source/menu/mnuitem.cxx
sfx2/source/menu/objmnctl.cxx
sfx2/source/menu/virtmenu.cxx
sfx2/source/notify/eventsupplier.cxx
sfx2/source/notify/makefile.mk
sfx2/source/toolbox/imgmgr.cxx
sfx2/source/toolbox/tbxitem.cxx
sfx2/source/view/frame.cxx
sfx2/source/view/orgmgr.cxx
sfx2/source/view/printer.cxx
sfx2/source/view/prnmon.cxx
sfx2/source/view/viewfrm.cxx
sfx2/source/view/viewprn.cxx
sfx2/source/view/viewsh.cxx
sfx2/util/makefile.mk
sfx2/workben/custompanel/makefile.mk
shell/source/backends/desktopbe/desktopbackend.cxx
shell/source/backends/gconfbe/gconfbackend.cxx
shell/source/backends/kde4be/kde4backend.cxx
shell/source/backends/kdebe/kdebackend.cxx
shell/source/win32/SysShentry.cxx
shell/source/win32/shlxthandler/propsheets/propsheets.cxx
shell/source/win32/simplemail/smplmailentry.cxx
svx/inc/float3d.hrc
svx/inc/fmhelp.hrc
svx/inc/globlmn_tmpl.hrc
svx/inc/helpid.hrc
svx/inc/pch/precompiled_svx.hxx
svx/inc/sjctrl.hxx
svx/inc/srchitem.hxx
svx/inc/svdibrow.hxx
svx/inc/svx/SmartTagItem.hxx
svx/inc/svx/algitem.hxx
svx/inc/svx/camera3d.hxx
svx/inc/svx/chrtitem.hxx
svx/inc/svx/clipfmtitem.hxx
svx/inc/svx/ctredlin.hxx
svx/inc/svx/dbtoolsclient.hxx
svx/inc/svx/deflt3d.hxx
svx/inc/svx/dialogs.hrc
svx/inc/svx/drawitem.hxx
svx/inc/svx/e3ditem.hxx
svx/inc/svx/extrud3d.hxx
svx/inc/svx/flagsdef.hxx
svx/inc/svx/float3d.hxx
svx/inc/svx/frmsel.hxx
svx/inc/svx/gallery.hxx
svx/inc/svx/gallery1.hxx
svx/inc/svx/galtheme.hxx
svx/inc/svx/grfcrop.hxx
svx/inc/svx/hdft.hxx
svx/inc/svx/hlnkitem.hxx
svx/inc/svx/hyprlink.hxx
svx/inc/svx/itemwin.hxx
svx/inc/svx/lathe3d.hxx
svx/inc/svx/linkwarn.hxx
svx/inc/svx/modctrl.hxx
svx/inc/svx/msdffdef.hxx
svx/inc/svx/obj3d.hxx
svx/inc/svx/optgenrl.hxx
svx/inc/svx/optgrid.hxx
svx/inc/svx/pageitem.hxx
svx/inc/svx/paraprev.hxx
svx/inc/svx/postattr.hxx
svx/inc/svx/rotmodit.hxx
svx/inc/svx/ruler.hxx
svx/inc/svx/rulritem.hxx
svx/inc/svx/scene3d.hxx
svx/inc/svx/sdasaitm.hxx
svx/inc/svx/sdasitm.hxx
svx/inc/svx/sdggaitm.hxx
svx/inc/svx/sdmetitm.hxx
svx/inc/svx/sdtaaitm.hxx
svx/inc/svx/sdtaditm.hxx
svx/inc/svx/sdtaitm.hxx
svx/inc/svx/sdtakitm.hxx
svx/inc/svx/sdtfchim.hxx
svx/inc/svx/sdtfsitm.hxx
svx/inc/svx/srchdlg.hxx
svx/inc/svx/svddrag.hxx
svx/inc/svx/svdetc.hxx
svx/inc/svx/svdglue.hxx
svx/inc/svx/svdhlpln.hxx
svx/inc/svx/svdlayer.hxx
svx/inc/svx/svdmark.hxx
svx/inc/svx/svdmodel.hxx
svx/inc/svx/svdoashp.hxx
svx/inc/svx/svdobj.hxx
svx/inc/svx/svdocirc.hxx
svx/inc/svx/svdoedge.hxx
svx/inc/svx/svdogrp.hxx
svx/inc/svx/svdomeas.hxx
svx/inc/svx/svdoole2.hxx
svx/inc/svx/svdorect.hxx
svx/inc/svx/svdotable.hxx
svx/inc/svx/svdotext.hxx
svx/inc/svx/svdovirt.hxx
svx/inc/svx/svdpage.hxx
svx/inc/svx/svdsnpv.hxx
svx/inc/svx/svdtrans.hxx
svx/inc/svx/svdundo.hxx
svx/inc/svx/svimbase.hxx
svx/inc/svx/svx3ditems.hxx
svx/inc/svx/svxdlg.hxx
svx/inc/svx/sxcikitm.hxx
svx/inc/svx/sxekitm.hxx
svx/inc/svx/sxelditm.hxx
svx/inc/svx/sxenditm.hxx
svx/inc/svx/sxmkitm.hxx
svx/inc/svx/sxmtpitm.hxx
svx/inc/svx/sxmuitm.hxx
svx/inc/svx/tabarea.hxx
svx/inc/svx/tabline.hxx
svx/inc/svx/unoprov.hxx
svx/inc/svx/viewlayoutitem.hxx
svx/inc/svx/xbitmap.hxx
svx/inc/svx/xbtmpit.hxx
svx/inc/svx/xcolit.hxx
svx/inc/svx/xfillit0.hxx
svx/inc/svx/xflclit.hxx
svx/inc/svx/xflftrit.hxx
svx/inc/svx/xflgrit.hxx
svx/inc/svx/xflhtit.hxx
svx/inc/svx/xftadit.hxx
svx/inc/svx/xftsfit.hxx
svx/inc/svx/xftshit.hxx
svx/inc/svx/xlineit0.hxx
svx/inc/svx/xlinjoit.hxx
svx/inc/svx/xlnclit.hxx
svx/inc/svx/xlndsit.hxx
svx/inc/svx/xlnedcit.hxx
svx/inc/svx/xlnedit.hxx
svx/inc/svx/xlnedwit.hxx
svx/inc/svx/xlnstcit.hxx
svx/inc/svx/xlnstit.hxx
svx/inc/svx/xlnstwit.hxx
svx/inc/svx/xlnwtit.hxx
svx/inc/svx/xtextit0.hxx
svx/inc/svx/zoomitem.hxx
svx/inc/svx/zoomslideritem.hxx
svx/inc/xpolyimp.hxx
svx/inc/zoom_def.hxx
svx/prj/d.lst
svx/source/accessibility/AccessibleShape.cxx
svx/source/accessibility/DescriptionGenerator.cxx
svx/source/customshapes/EnhancedCustomShapeEngine.cxx
svx/source/customshapes/EnhancedCustomShapeFontWork.cxx
svx/source/dialog/_bmpmask.cxx
svx/source/dialog/_contdlg.cxx
svx/source/dialog/connctrl.cxx
svx/source/dialog/contwnd.cxx
svx/source/dialog/ctredlin.cxx
svx/source/dialog/ctredlin.hrc
svx/source/dialog/ctredlin.src
svx/source/dialog/dialcontrol.cxx
svx/source/dialog/dlgctrl.cxx
svx/source/dialog/docrecovery.cxx
svx/source/dialog/fntctrl.cxx
svx/source/dialog/fontwork.cxx
svx/source/dialog/frmsel.cxx
svx/source/dialog/graphctl.cxx
svx/source/dialog/grfflt.cxx
svx/source/dialog/hdft.cxx
svx/source/dialog/hyperdlg.cxx
svx/source/dialog/hyprdlg.hxx
svx/source/dialog/hyprlink.cxx
svx/source/dialog/hyprlink.hxx
svx/source/dialog/hyprlink.src
svx/source/dialog/imapdlg.cxx
svx/source/dialog/imapwnd.cxx
svx/source/dialog/linkwarn.hrc
svx/source/dialog/makefile.mk
svx/source/dialog/optgrid.cxx
svx/source/dialog/orienthelper.cxx
svx/source/dialog/pagectrl.cxx
svx/source/dialog/prtqry.cxx
svx/source/dialog/rlrcitem.cxx
svx/source/dialog/rubydialog.cxx
svx/source/dialog/rulritem.cxx
svx/source/dialog/simptabl.cxx
svx/source/dialog/srchdlg.cxx
svx/source/dialog/svxbmpnumvalueset.cxx
svx/source/dialog/svxruler.cxx
svx/source/dialog/swframeexample.cxx
svx/source/engine3d/float3d.cxx
svx/source/engine3d/float3d.src
svx/source/engine3d/svx3ditems.cxx
svx/source/fmcomp/gridctrl.cxx
svx/source/fmcomp/trace.cxx
svx/source/form/ParseContext.cxx
svx/source/form/datanavi.cxx
svx/source/form/filtnav.cxx
svx/source/form/fmexch.cxx
svx/source/form/fmexpl.cxx
svx/source/form/fmobjfac.cxx
svx/source/form/fmpage.cxx
svx/source/form/fmshell.cxx
svx/source/form/fmshimp.cxx
svx/source/form/fmsrcimp.cxx
svx/source/form/fmvwimp.cxx
svx/source/form/makefile.mk
svx/source/form/tabwin.cxx
svx/source/form/tbxform.cxx
svx/source/form/typemap.cxx
svx/source/gallery2/galbrws1.cxx
svx/source/gallery2/galbrws2.cxx
svx/source/gallery2/galexpl.cxx
svx/source/gallery2/gallery1.cxx
svx/source/gallery2/galtheme.cxx
svx/source/gallery2/makefile.mk
svx/source/gengal/gengal.cxx
svx/source/gengal/makefile.mk
svx/source/inc/fmgroup.hxx
svx/source/intro/about_ooo.hrc
svx/source/intro/iso.src
svx/source/intro/ooo.src
svx/source/items/SmartTagItem.cxx
svx/source/items/algitem.cxx
svx/source/items/chrtitem.cxx
svx/source/items/clipfmtitem.cxx
svx/source/items/customshapeitem.cxx
svx/source/items/drawitem.cxx
svx/source/items/e3ditem.cxx
svx/source/items/grfitem.cxx
svx/source/items/hlnkitem.cxx
svx/source/items/makefile.mk
svx/source/items/pageitem.cxx
svx/source/items/rotmodit.cxx
svx/source/items/viewlayoutitem.cxx
svx/source/items/zoomitem.cxx
svx/source/items/zoomslideritem.cxx
svx/source/src/app.hrc
svx/source/stbctrls/makefile.mk
svx/source/stbctrls/modctrl.cxx
svx/source/stbctrls/xmlsecctrl.cxx
svx/source/stbctrls/zoomctrl.cxx
svx/source/svdraw/clonelist.cxx
svx/source/svdraw/svdattr.cxx
svx/source/svdraw/svdcrtv.cxx
svx/source/svdraw/svdedtv1.cxx
svx/source/svdraw/svdedtv2.cxx
svx/source/svdraw/svdedxv.cxx
svx/source/svdraw/svdetc.cxx
svx/source/svdraw/svdfmtf.cxx
svx/source/svdraw/svdfmtf.hxx
svx/source/svdraw/svdglue.cxx
svx/source/svdraw/svdhdl.cxx
svx/source/svdraw/svdhlpln.cxx
svx/source/svdraw/svdibrow.cxx
svx/source/svdraw/svdlayer.cxx
svx/source/svdraw/svdmodel.cxx
svx/source/svdraw/svdoashp.cxx
svx/source/svdraw/svdobj.cxx
svx/source/svdraw/svdocapt.cxx
svx/source/svdraw/svdocirc.cxx
svx/source/svdraw/svdoedge.cxx
svx/source/svdraw/svdograf.cxx
svx/source/svdraw/svdogrp.cxx
svx/source/svdraw/svdomeas.cxx
svx/source/svdraw/svdomedia.cxx
svx/source/svdraw/svdopath.cxx
svx/source/svdraw/svdotext.cxx
svx/source/svdraw/svdotxdr.cxx
svx/source/svdraw/svdotxed.cxx
svx/source/svdraw/svdotxfl.cxx
svx/source/svdraw/svdotxln.cxx
svx/source/svdraw/svdotxtr.cxx
svx/source/svdraw/svdoutl.cxx
svx/source/svdraw/svdpage.cxx
svx/source/svdraw/svdpagv.cxx
svx/source/svdraw/svdpntv.cxx
svx/source/svdraw/svdpoev.cxx
svx/source/svdraw/svdsnpv.cxx
svx/source/svdraw/svdstr.src
svx/source/svdraw/svdtrans.cxx
svx/source/svdraw/svdundo.cxx
svx/source/svdraw/svdview.cxx
svx/source/svdraw/svdxcgv.cxx
svx/source/table/svdotable.cxx
svx/source/tbxctrls/colorwindow.hxx
svx/source/tbxctrls/extrusioncontrols.cxx
svx/source/tbxctrls/fillctrl.cxx
svx/source/tbxctrls/grafctrl.cxx
svx/source/tbxctrls/itemwin.cxx
svx/source/tbxctrls/layctrl.cxx
svx/source/tbxctrls/lboxctrl.cxx
svx/source/tbxctrls/linectrl.cxx
svx/source/tbxctrls/tbcontrl.cxx
svx/source/tbxctrls/verttexttbxctrl.cxx
svx/source/unodraw/unomod.cxx
svx/source/unodraw/unopage.cxx
svx/source/unodraw/unoprov.cxx
svx/source/unodraw/unoshape.cxx
svx/source/unodraw/unoshtxt.cxx
svx/source/xml/xmlxtexp.cxx
svx/source/xoutdev/_xpoly.cxx
svx/source/xoutdev/xattr.cxx
svx/source/xoutdev/xattr2.cxx
svx/source/xoutdev/xattrbmp.cxx
svx/source/xoutdev/xtabcolr.cxx
svx/util/makefile.mk
svx/workben/edittest.cxx
sysui/desktop/productversion.mk
ucb/prj/build.lst
ucb/source/cacher/cacheserv.cxx
ucb/source/core/ucb1.component
ucb/source/core/ucbserv.cxx
ucb/source/core/ucbstore.cxx
ucb/source/core/ucbstore.hxx
ucb/source/sorter/sortmain.cxx
ucb/source/ucp/file/prov.cxx
ucb/source/ucp/file/shell.cxx
ucb/source/ucp/ftp/ftpservices.cxx
ucb/source/ucp/gio/gio_provider.cxx
ucb/source/ucp/gvfs/gvfs_provider.cxx
ucb/source/ucp/hierarchy/hierarchyservices.cxx
ucb/source/ucp/odma/odma_lib.cxx
ucb/source/ucp/odma/odma_services.cxx
ucb/source/ucp/package/pkgservices.cxx
ucb/source/ucp/tdoc/tdoc_services.cxx
ucb/source/ucp/webdav/ContentProperties.cxx
ucb/source/ucp/webdav/NeonHeadRequest.cxx
ucb/source/ucp/webdav/webdavcontent.cxx
ucb/source/ucp/webdav/webdavservices.cxx
uui/source/iahndl.cxx
uui/source/iahndl.hxx
uui/source/loginerr.hxx
uui/source/nameclashdlg.hxx
uui/source/passcrtdlg.cxx
uui/source/passworddlg.cxx
uui/source/passworddlg.hxx
uui/source/services.cxx
vbahelper/inc/vbahelper/vbahelper.hxx
vbahelper/prj/build.lst
vbahelper/prj/d.lst
vbahelper/source/msforms/makefile.mk
vbahelper/source/msforms/vbauserform.cxx
vbahelper/source/vbahelper/makefile.mk
vbahelper/source/vbahelper/vbaapplicationbase.cxx
vbahelper/source/vbahelper/vbacommandbarcontrol.cxx
vbahelper/source/vbahelper/vbadocumentbase.cxx
vbahelper/source/vbahelper/vbadocumentsbase.cxx
vbahelper/source/vbahelper/vbahelper.cxx
vbahelper/util/makefile.mk
xmlhelp/source/cxxhelp/provider/databases.cxx
xmlhelp/source/cxxhelp/provider/services.cxx
xmlhelp/source/treeview/tvfactory.cxx
xmloff/JunitTest_xmloff_unoapi.mk
xmloff/inc/functional.hxx
xmloff/inc/xmloff/formlayerexport.hxx
xmloff/inc/xmloff/formlayerimport.hxx
xmloff/inc/xmloff/functional.hxx
xmloff/inc/xmloff/shapeimport.hxx
xmloff/inc/xmloff/xmlcnitm.hxx
xmloff/inc/xmloff/xmlnumfi.hxx
xmloff/prj/build.lst
xmloff/source/chart/SchXMLChartContext.cxx
xmloff/source/chart/SchXMLExport.cxx
xmloff/source/chart/SchXMLImport.cxx
xmloff/source/chart/SchXMLLegendContext.hxx
xmloff/source/chart/SchXMLPlotAreaContext.cxx
xmloff/source/core/xmluconv.cxx
xmloff/source/draw/sdxmlexp.cxx
xmloff/source/draw/shapeexport4.cxx
xmloff/source/draw/ximp3dobject.cxx
xmloff/source/draw/ximp3dscene.cxx
xmloff/source/forms/formlayerexport.cxx
xmloff/source/forms/formlayerimport.cxx
xmloff/source/forms/handler/vcl_time_handler.hxx
xmloff/source/forms/layerimport.cxx
xmloff/source/forms/layerimport.hxx
xmloff/source/forms/property_meta_data.hxx
xmloff/source/style/PageHeaderFooterContext.cxx
xmloff/source/style/PageMasterStyleMap.cxx
xmloff/source/style/prstylei.cxx
xmloff/source/style/xmlimppr.cxx
xmloff/source/style/xmlnumfi.cxx
xmloff/source/style/xmlstyle.cxx
xmloff/source/table/tabledesignsimporter.cxx
xmloff/source/text/XMLTextNumRuleInfo.cxx
xmloff/source/text/XMLTextShapeStyleContext.cxx
xmloff/source/text/txtstyle.cxx
xmloff/source/transform/ChartOOoTContext.cxx
xmloff/source/transform/EventOOoTContext.cxx
xmloff/source/transform/TransformerBase.cxx
xmloff/util/makefile.mk
xmlscript/util/xcr.component
Diffstat (limited to 'connectivity/qa/complex')
12 files changed, 2533 insertions, 0 deletions
diff --git a/connectivity/qa/complex/connectivity/DBaseDriverTest.java b/connectivity/qa/complex/connectivity/DBaseDriverTest.java new file mode 100755 index 000000000000..5b9e456ab367 --- /dev/null +++ b/connectivity/qa/complex/connectivity/DBaseDriverTest.java @@ -0,0 +1,78 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +package complex.connectivity; + +import complex.connectivity.dbase.DBaseDateFunctions; +import complex.connectivity.dbase.DBaseStringFunctions; +import complex.connectivity.dbase.DBaseSqlTests; +import complex.connectivity.dbase.DBaseNumericFunctions; +import com.sun.star.lang.XMultiServiceFactory; +import complexlib.ComplexTestCase; +import share.LogWriter; + +public class DBaseDriverTest extends ComplexTestCase implements TestCase +{ + public String[] getTestMethodNames() + { + return new String[] + { + "Functions" + }; + } + + @Override + public String getTestObjectName() + { + return "DBaseDriverTest"; + } + + @Override + public void assure( final String i_message, final boolean i_condition ) + { + super.assure( i_message, i_condition ); + } + + public LogWriter getLog() + { + return ComplexTestCase.log; + } + + public void Functions() throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + DBaseStringFunctions aStringTest = new DBaseStringFunctions(((XMultiServiceFactory) param.getMSF()), this); + aStringTest.testFunctions(); + + DBaseNumericFunctions aNumericTest = new DBaseNumericFunctions(((XMultiServiceFactory) param.getMSF()), this); + aNumericTest.testFunctions(); + + DBaseDateFunctions aDateTest = new DBaseDateFunctions(((XMultiServiceFactory) param.getMSF()), this); + aDateTest.testFunctions(); + + DBaseSqlTests aSqlTest = new DBaseSqlTests(((XMultiServiceFactory) param.getMSF()), this); + aSqlTest.testFunctions(); + } +} diff --git a/connectivity/qa/complex/connectivity/FlatFileAccess.java b/connectivity/qa/complex/connectivity/FlatFileAccess.java new file mode 100755 index 000000000000..3f0481684827 --- /dev/null +++ b/connectivity/qa/complex/connectivity/FlatFileAccess.java @@ -0,0 +1,237 @@ +package complex.connectivity; + +import com.sun.star.beans.XPropertySet; +import com.sun.star.lang.XMultiServiceFactory; +import com.sun.star.sdb.CommandType; +import com.sun.star.sdbc.SQLException; +import com.sun.star.util.Date; +import complexlib.ComplexTestCase; +import connectivity.tools.CsvDatabase; +import connectivity.tools.RowSet; +import java.io.File; +import java.io.FileOutputStream; +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.List; + +public class FlatFileAccess extends ComplexTestCase +{ + public FlatFileAccess() + { + super(); + } + + @Override + public String[] getTestMethodNames() + { + return new String[] { + "testBasicAccess", + "testCalendarFunctions", + "testSortingByFunction" + }; + } + + @Override + public String getTestObjectName() + { + return "FlatFileAccess"; + } + + public void before() throws Exception + { + m_database = new CsvDatabase( (XMultiServiceFactory)param.getMSF() ); + + // proper settings + final XPropertySet dataSourceSettings = m_database.getDataSource().geSettings(); + dataSourceSettings.setPropertyValue( "Extension", "csv" ); + dataSourceSettings.setPropertyValue( "HeaderLine", Boolean.TRUE ); + dataSourceSettings.setPropertyValue( "FieldDelimiter", " " ); + m_database.store(); + + // write the table(s) for our test + final String tableLocation = m_database.getTableFileLocation().getAbsolutePath(); + final PrintWriter tableWriter = new PrintWriter( new FileOutputStream( tableLocation + File.separatorChar + "dates.csv", false ) ); + tableWriter.println( "ID date" ); + tableWriter.println( "1 2013-01-01" ); + tableWriter.println( "2 2012-02-02" ); + tableWriter.println( "3 2011-03-03" ); + tableWriter.close(); + } + + public void after() + { + } + + private class EqualityDate extends Date + { + EqualityDate( short i_day, short i_month, short i_year ) + { + super( i_day, i_month, i_year ); + } + + EqualityDate( Date i_date ) + { + super( i_date.Day, i_date.Month, i_date.Year ); + } + + @Override + public boolean equals( Object i_compare ) + { + if ( !( i_compare instanceof Date ) ) + return false; + return Day == ((Date)i_compare).Day + && Month == ((Date)i_compare).Month + && Year == ((Date)i_compare).Year; + } + } + + /** + * ensures simple SELECTs from our table(s) work, and deliver the expected results + */ + public void testBasicAccess() + { + testRowSetResults( + "SELECT * FROM \"dates\"", + new RowSetIntGetter(1), + new Integer[] { 1, 2, 3 }, + "simple select", "wrong IDs" + ); + + testRowSetResults( + "SELECT * FROM \"dates\"", + new RowSetDateGetter( 2 ), + new EqualityDate[] { new EqualityDate( (short)1, (short)1, (short)2013 ), + new EqualityDate( (short)2, (short)2, (short)2012 ), + new EqualityDate( (short)3, (short)3, (short)2011 ) + }, + "simple select", "wrong dates" + ); + testRowSetResults( + "SELECT \"date\", \"ID\" FROM \"dates\" ORDER BY \"ID\" DESC", + new RowSetIntGetter( 2 ), + new Integer[] { 3, 2, 1 }, + "explicit column selection, sorted by IDs", "wrong IDs" + ); + testRowSetResults( + "SELECT * FROM \"dates\" ORDER BY \"date\"", + new RowSetIntGetter( 1 ), + new Integer[] { 3, 2, 1 }, + "sorted by date", "wrong IDs" + ); + } + + /** + * ensures the basic functionality for selecting calendar functions from a CSV table - this is a prerequisite for + * later tests. + */ + public void testCalendarFunctions() + { + // simple check for proper results of the calendar functions (DATE/MONTH) + // The * at the first position is crucial here - there was code which wrongly calculated + // column positions of function columns when * was present in the statement + testRowSetResults( + "SELECT \"dates\".*, YEAR( \"date\" ) FROM \"dates\"", + new RowSetIntGetter( 3 ), + new Integer[] { 2013, 2012, 2011 }, + "YEAR function", "wrong calculated years" + ); + testRowSetResults( + "SELECT \"dates\".*, MONTH( \"date\" ) FROM \"dates\"", + new RowSetIntGetter( 3 ), + new Integer[] { 1, 2, 3 }, + "MONTH function", "wrong calculated months" + ); + } + + /** + * ensures that sorting by a function column works + */ + public void testSortingByFunction() + { + // most simple case: select a function, and sort by it + testRowSetResults( + "SELECT YEAR( \"date\" ) AS \"year\" FROM \"dates\" ORDER BY \"year\"", + new RowSetIntGetter(1), + new Integer[] { 2011, 2012, 2013 }, + "single YEAR selection, sorted by years", "wrong calculated years" + ); + // somewhat more "difficult" (this used to crash): Select all columns, plus a function, so the calculated + // column has a position greater than column count + testRowSetResults( + "SELECT \"dates\".*, YEAR( \"date\" ) AS \"year\" FROM \"dates\" ORDER BY \"year\" DESC", + new RowSetIntGetter(3), + new Integer[] { 2013, 2012, 2011 }, + "extended YEAR selection, sorted by years", "wrong calculated years" + ); + } + + private interface RowSetValueGetter + { + public Object getValue( final RowSet i_rowSet ) throws SQLException; + } + + private abstract class RowSetColumnValueGetter implements RowSetValueGetter + { + RowSetColumnValueGetter( final int i_columnIndex ) + { + m_columnIndex = i_columnIndex; + } + + protected final int m_columnIndex; + } + + private class RowSetIntGetter extends RowSetColumnValueGetter + { + RowSetIntGetter( final int i_columnIndex ) + { + super( i_columnIndex ); + } + + public Object getValue( final RowSet i_rowSet ) throws SQLException + { + return i_rowSet.getInt( m_columnIndex ); + } + } + + private class RowSetDateGetter extends RowSetColumnValueGetter + { + RowSetDateGetter( final int i_columnIndex ) + { + super( i_columnIndex ); + } + + public Object getValue( final RowSet i_rowSet ) throws SQLException + { + return i_rowSet.getDate( m_columnIndex ); + } + } + + private <T> void testRowSetResults( String i_command, RowSetValueGetter i_getter, + T[] i_expectedValues, String i_context, String i_failureDesc ) + { + RowSet rowSet = null; + try + { + rowSet = m_database.createRowSet( CommandType.COMMAND, i_command ); + rowSet.execute(); + + List< T > values = new ArrayList< T >(); + while ( rowSet.next() ) + { + values.add( (T)i_getter.getValue( rowSet ) ); + } + assureEquals( i_context + ": " + i_failureDesc, i_expectedValues, values.toArray(), true ); + } + catch( final SQLException e ) + { + failed( i_context + ": caught an exception: " + e.toString(), false ); + } + finally + { + if ( rowSet != null ) + rowSet.dispose(); + } + } + + private CsvDatabase m_database = null; +} diff --git a/connectivity/qa/complex/connectivity/HsqlDriverTest.java b/connectivity/qa/complex/connectivity/HsqlDriverTest.java new file mode 100755 index 000000000000..28ad862c4a76 --- /dev/null +++ b/connectivity/qa/complex/connectivity/HsqlDriverTest.java @@ -0,0 +1,156 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +package complex.connectivity; + +import complex.connectivity.hsqldb.TestCacheSize; +import com.sun.star.frame.XModel; +import com.sun.star.frame.XStorable; + +import com.sun.star.lang.*; +import com.sun.star.document.XDocumentSubStorageSupplier; +import complexlib.ComplexTestCase; + + +import org.hsqldb.lib.StopWatch; +import com.sun.star.uno.UnoRuntime; +import com.sun.star.beans.PropertyState; +import com.sun.star.lang.XMultiServiceFactory; +import com.sun.star.embed.XStorage; +import com.sun.star.sdbc.XDataSource; +import com.sun.star.sdbc.XDriver; +import connectivity.tools.HsqlDatabase; + +public class HsqlDriverTest extends ComplexTestCase { + + + public String[] getTestMethodNames() { + return new String[] { "test" }; + } + + @Override + public String getTestObjectName() { + return "DriverTest"; + } + + public void assurePublic(String sMessage,boolean check){ + super.assure(sMessage,check); + } + + public void test(){ + XDataSource ds = null; + System.gc(); + try { + HsqlDatabase database = new HsqlDatabase( (XMultiServiceFactory)param.getMSF() ); + ds = database.getDataSource().getXDataSource(); + } catch(Exception ex) { + throw new RuntimeException("factory: unable to construct data source" ); + } + + try{ + XDocumentSubStorageSupplier doc = (XDocumentSubStorageSupplier)UnoRuntime.queryInterface(XDocumentSubStorageSupplier.class,ds); + XStorage stor = doc.getDocumentSubStorage("database",4); + try{ + if ( stor.isStreamElement("db.log") ) + stor.removeElement("db.log"); + } catch(Exception e){} + try{ + if ( stor.isStreamElement("db.properties") ) + stor.removeElement("db.properties"); + } catch(Exception e){} + try{ + if ( stor.isStreamElement("db.script") ) + stor.removeElement("db.script"); + } catch(Exception e){} + try{ + if ( stor.isStreamElement("db.script.new") ) + stor.removeElement("db.script.new"); + } catch(Exception e){} + XStorable mod = (XStorable)UnoRuntime.queryInterface(XStorable.class,ds); + mod.store(); + XComponent xComp = (XComponent)UnoRuntime.queryInterface(XComponent.class,stor); + if ( xComp != null ) + xComp.dispose(); + } catch(Exception e){} + + com.sun.star.beans.PropertyValue[] info = null; + XDriver drv = null; + try{ + XDocumentSubStorageSupplier doc = (XDocumentSubStorageSupplier)UnoRuntime.queryInterface(XDocumentSubStorageSupplier.class,ds); + XModel mod = (XModel)UnoRuntime.queryInterface(XModel.class,ds); + XStorage stor = doc.getDocumentSubStorage("database",4); + info = new com.sun.star.beans.PropertyValue[]{ + new com.sun.star.beans.PropertyValue("Storage",0,stor,PropertyState.DIRECT_VALUE) + ,new com.sun.star.beans.PropertyValue("URL",0,mod.getURL(),PropertyState.DIRECT_VALUE) + }; + drv = (XDriver)UnoRuntime.queryInterface(XDriver.class,((XMultiServiceFactory)param.getMSF()).createInstance("com.sun.star.sdbcx.comp.hsqldb.Driver")); + + + TestCacheSize test = new TestCacheSize(((XMultiServiceFactory)param.getMSF()),info,drv); + + StopWatch sw = new StopWatch(); + + try{ + test.setUp(); + test.testFillUp(); + test.checkResults(); + test.tearDown(); + System.out.println("Total Test Time: " + sw.elapsedTime()); + } catch(Exception e){} + + try{ + XStorable mod2 = (XStorable)UnoRuntime.queryInterface(XStorable.class,ds); + mod2.store(); + } catch(Exception e){} + }catch(Exception e){} + } + public void test2(){ + System.gc(); + + com.sun.star.beans.PropertyValue[] info = null; + XDriver drv = null; + try{ + info = new com.sun.star.beans.PropertyValue[]{ + new com.sun.star.beans.PropertyValue("JavaDriverClass",0,"org.hsqldb.jdbcDriver",PropertyState.DIRECT_VALUE) + ,new com.sun.star.beans.PropertyValue("ParameterNameSubstitution",0, false,PropertyState.DIRECT_VALUE) + }; + drv = (XDriver)UnoRuntime.queryInterface(XDriver.class,((XMultiServiceFactory)param.getMSF()).createInstance("com.sun.star.comp.sdbc.JDBCDriver")); + TestCacheSize test = new TestCacheSize(((XMultiServiceFactory)param.getMSF()),info,drv); + test.setURL("jdbc:hsqldb:g:\\hsql\\db"); + + + StopWatch sw = new StopWatch(); + + try{ + test.setUp(); + test.testFillUp(); + test.checkResults(); + test.tearDown(); + System.out.println("Total Test Time: " + sw.elapsedTime()); + } catch(Exception e){} + }catch(Exception e){} + } +} diff --git a/connectivity/qa/complex/connectivity/JdbcLongVarCharTest.java b/connectivity/qa/complex/connectivity/JdbcLongVarCharTest.java new file mode 100755 index 000000000000..7b4418a82ab5 --- /dev/null +++ b/connectivity/qa/complex/connectivity/JdbcLongVarCharTest.java @@ -0,0 +1,132 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +package complex.connectivity; + +import com.sun.star.beans.PropertyState; +import com.sun.star.beans.PropertyValue; +import com.sun.star.lang.XMultiServiceFactory; +import com.sun.star.sdbc.XResultSet; +import com.sun.star.sdbc.XClob; +import com.sun.star.sdbc.XDriverAccess; +import com.sun.star.sdbc.XParameters; +import com.sun.star.sdbc.XPreparedStatement; +import com.sun.star.sdbc.XResultSetMetaData; +import com.sun.star.sdbc.XResultSetMetaDataSupplier; +import com.sun.star.sdbc.XRow; +import com.sun.star.uno.UnoRuntime; +import complexlib.ComplexTestCase; + +public class JdbcLongVarCharTest extends ComplexTestCase +{ + + public String[] getTestMethodNames() + { + return new String[] + { + "testLongVarChar" + }; + } + + @Override + public String getTestObjectName() + { + return "LongVarCharTest"; + } + + public void testLongVarChar() throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + + try + { + System.out.println("== Start testing =="); + + String url = "jdbc:mysql://localhost:3306/mysql?user=root"; + //String url = "jdbc:ingres://localhost:II7/demodb;AUTO=multi"; + com.sun.star.sdbc.XConnection xConnection = null; + com.sun.star.beans.PropertyValue prop[] = new PropertyValue[1]; + prop[0] = new PropertyValue("JavaDriverClass", 0, "com.mysql.jdbc.Driver", PropertyState.DIRECT_VALUE); + //prop[0] = new PropertyValue("JavaDriverClass", 0, "com.ingres.jdbc.IngresDriver", PropertyState.DIRECT_VALUE); + + // get the remote office component context + XMultiServiceFactory xServiceManager = (XMultiServiceFactory) param.getMSF(); + Object x = xServiceManager.createInstance("com.sun.star.sdbc.DriverManager"); + com.sun.star.sdbc.XDriverAccess xDriverAccess = (XDriverAccess) UnoRuntime.queryInterface(XDriverAccess.class, x); + com.sun.star.sdbc.XDriver xDriver = xDriverAccess.getDriverByURL(url); + xConnection = xDriver.connect(url, prop); + + //Object prepStmnt = xConnection.prepareStatement("SELECT * FROM t1 WHERE t1.c1 = ?"); + Object prepStmnt = xConnection.prepareStatement("SELECT * FROM i90114 WHERE i90114.c1 = ?"); + ((XParameters) UnoRuntime.queryInterface(XParameters.class, prepStmnt)).clearParameters(); + ((XParameters) UnoRuntime.queryInterface(XParameters.class, prepStmnt)).setInt(1, 1); + XResultSet xResultSet = ((XPreparedStatement) prepStmnt).executeQuery(); + XRow xRow = (XRow) UnoRuntime.queryInterface(XRow.class, xResultSet); + + XResultSetMetaDataSupplier xRsMetaSup = (XResultSetMetaDataSupplier) UnoRuntime.queryInterface(XResultSetMetaDataSupplier.class, xResultSet); + XResultSetMetaData xRsMetaData = xRsMetaSup.getMetaData(); + int nColumnCount = xRsMetaData.getColumnCount(); + + System.out.println("== MetaData =="); + for (int i = 1; i <= nColumnCount; ++i) + { + System.out.println("Name: " + xRsMetaData.getColumnName(i) + " Type: " + + xRsMetaData.getColumnType(i)); + } + + System.out.println("== Result =="); + while (xResultSet.next()) + { + String str = "not set"; + + XClob xClob = null; + xClob = xRow.getClob(2); + if (xClob != null) + { + System.out.println("xClob != null"); + int len = (int) xClob.length(); + str = xClob.getSubString(1, len); + } + else + { + System.out.println("xClob == null"); + } + + System.out.println("c1 (Int): " + xRow.getInt(1) + " c2 (String): " + xRow.getString(2) + " c3 (Clob): " + str); + } + + xConnection.close(); + } + catch (java.lang.Exception e) + { + System.out.println("== Exception occurred while testing =="); + e.printStackTrace(); + } finally + { + System.out.println("== End testing =="); + System.exit(0); + } + } +}
\ No newline at end of file diff --git a/connectivity/qa/complex/connectivity/SubTestCase.java b/connectivity/qa/complex/connectivity/SubTestCase.java new file mode 100755 index 000000000000..1c2e685c5943 --- /dev/null +++ b/connectivity/qa/complex/connectivity/SubTestCase.java @@ -0,0 +1,23 @@ +package complex.connectivity; + +import share.LogWriter; + +public class SubTestCase implements TestCase +{ + protected SubTestCase( final TestCase i_parentTestCase ) + { + m_parentTestCase = i_parentTestCase; + } + + public void assure( String i_message, boolean i_condition ) + { + m_parentTestCase.assure( i_message, i_condition ); + } + + public LogWriter getLog() + { + return m_parentTestCase.getLog(); + } + + private final TestCase m_parentTestCase; +} diff --git a/connectivity/qa/complex/connectivity/TestCase.java b/connectivity/qa/complex/connectivity/TestCase.java new file mode 100755 index 000000000000..bae5fcdcb4c4 --- /dev/null +++ b/connectivity/qa/complex/connectivity/TestCase.java @@ -0,0 +1,35 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +package complex.connectivity; + +import share.LogWriter; + +public interface TestCase +{ + public void assure( final String i_message, final boolean i_condition ); + public LogWriter getLog(); +} diff --git a/connectivity/qa/complex/connectivity/dbase/DBaseDateFunctions.java b/connectivity/qa/complex/connectivity/dbase/DBaseDateFunctions.java new file mode 100755 index 000000000000..9cfc6aaaf590 --- /dev/null +++ b/connectivity/qa/complex/connectivity/dbase/DBaseDateFunctions.java @@ -0,0 +1,305 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +package complex.connectivity.dbase; + +import com.sun.star.uno.UnoRuntime; +import com.sun.star.sdbc.*; +import com.sun.star.beans.XPropertySet; + +import com.sun.star.lang.XMultiServiceFactory; +import complex.connectivity.TestCase; +import complex.connectivity.SubTestCase; + +public class DBaseDateFunctions extends SubTestCase +{ + + private final String where = "FROM \"biblio\" \"biblio\" where \"Identifier\" = 'BOR00'"; + private final XMultiServiceFactory m_xORB; + + public DBaseDateFunctions(final XMultiServiceFactory _xORB, final TestCase i_testCase) + { + super( i_testCase ); + m_xORB = _xORB; + } + + public void testFunctions() throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRowSet xRowRes = (XRowSet) UnoRuntime.queryInterface(XRowSet.class, + m_xORB.createInstance("com.sun.star.sdb.RowSet")); + + getLog().println("starting DateTime function test!"); + // set the properties needed to connect to a database + final XPropertySet xProp = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xRowRes); + xProp.setPropertyValue("DataSourceName", "Bibliography"); + + xProp.setPropertyValue("CommandType", Integer.valueOf(com.sun.star.sdb.CommandType.COMMAND)); + + try + { + curdate(xRowRes); + } + catch (SQLException ex) + { + assure("upper " + ex.getMessage(), false); + throw ex; + } + try + { + curtime(xRowRes); + } + catch (SQLException ex) + { + assure("lower " + ex.getMessage(), false); + throw ex; + } + try + { + dayname(xRowRes); + } + catch (SQLException ex) + { + assure("ascii " + ex.getMessage(), false); + throw ex; + } + try + { + dayofmonth(xRowRes); + } + catch (SQLException ex) + { + assure("char_len " + ex.getMessage(), false); + throw ex; + } + try + { + dayofweek(xRowRes); + } + catch (SQLException ex) + { + assure("concat " + ex.getMessage(), false); + throw ex; + } + try + { + dayofyear(xRowRes); + } + catch (SQLException ex) + { + assure("locate " + ex.getMessage(), false); + throw ex; + } + try + { + hour(xRowRes); + } + catch (SQLException ex) + { + assure("substr " + ex.getMessage(), false); + throw ex; + } + try + { + minute(xRowRes); + } + catch (SQLException ex) + { + assure("ltrim " + ex.getMessage(), false); + throw ex; + } + try + { + month(xRowRes); + } + catch (SQLException ex) + { + assure("rtrim " + ex.getMessage(), false); + throw ex; + } + try + { + monthname(xRowRes); + } + catch (SQLException ex) + { + assure("space " + ex.getMessage(), false); + throw ex; + } + try + { + now(xRowRes); + } + catch (SQLException ex) + { + assure("replace " + ex.getMessage(), false); + throw ex; + } + try + { + quarter(xRowRes); + } + catch (SQLException ex) + { + assure("repeat " + ex.getMessage(), false); + throw ex; + } + try + { + second(xRowRes); + } + catch (SQLException ex) + { + assure("insert " + ex.getMessage(), false); + throw ex; + } + try + { + week(xRowRes); + } + catch (SQLException ex) + { + assure("left " + ex.getMessage(), false); + throw ex; + } + try + { + year(xRowRes); + } + catch (SQLException ex) + { + assure("right " + ex.getMessage(), false); + throw ex; + } + } + + private XRow execute(final XRowSet xRowRes, final String sql) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XPropertySet xProp = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xRowRes); + xProp.setPropertyValue("Command", "SELECT " + sql + where); + xRowRes.execute(); + final XResultSet xRes = (XResultSet) UnoRuntime.queryInterface(XResultSet.class, xRowRes); + assure("No valid row! ", xRes.next()); + + return (XRow) UnoRuntime.queryInterface(XRow.class, xRes); + } + + private void dayofweek(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "DAYOFWEEK('1998-02-03') "); + assure("DAYOFWEEK('1998-02-03') failed!", row.getInt(1) == 3); + } + + private void dayofmonth(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "DAYOFMONTH('1998-02-03') "); + assure("DAYOFMONTH('1998-02-03') failed!", row.getInt(1) == 3); + } + + private void dayofyear(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "DAYOFYEAR('1998-02-03') "); + assure("DAYOFYEAR('1998-02-03') failed!", row.getInt(1) == 34); + } + + private void month(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "month('1998-02-03') "); + assure("month('1998-02-03') failed!", row.getInt(1) == 2); + } + + private void dayname(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "DAYNAME('1998-02-05') "); + assure("DAYNAME('1998-02-05') failed!", row.getString(1).equals("Thursday")); + } + + private void monthname(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "MONTHNAME('1998-02-05') "); + assure("MONTHNAME('1998-02-05') failed!", row.getString(1).equals("February")); + } + + private void quarter(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "QUARTER('98-01-01'),QUARTER('98-04-01'),QUARTER('98-07-01'),QUARTER('98-10-01') "); + assure("QUARTER('98-01-01') failed!", row.getInt(1) == 1); + assure("QUARTER('98-04-01') failed!", row.getInt(2) == 2); + assure("QUARTER('98-07-01') failed!", row.getInt(3) == 3); + assure("QUARTER('98-10-01') failed!", row.getInt(4) == 4); + } + + private void week(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "WEEK('1998-02-20') "); + assure("WEEK('1998-02-20') failed!", row.getInt(1) == 7); + } + + private void year(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "YEAR('98-02-03') "); + assure("YEAR('98-02-03') failed!", row.getInt(1) == 98); + } + + private void hour(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "HOUR('10:05:03') "); + assure("HOUR('10:05:03') failed!", row.getInt(1) == 10); + } + + private void minute(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "MINUTE('98-02-03 10:05:03') "); + assure("MINUTE('98-02-03 10:05:03') failed!", row.getInt(1) == 5); + } + + private void second(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "SECOND('10:05:03') "); + assure("SECOND('10:05:03') failed!", row.getInt(1) == 3); + } + + private void curdate(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "CURDATE() "); + final com.sun.star.util.Date aDate = row.getDate(1); + getLog().println("CURDATE() is '" + aDate.Year + "-" + aDate.Month + "-" + aDate.Day + "'"); + } + + private void curtime(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "CURTIME() "); + final com.sun.star.util.Time aTime = row.getTime(1); + getLog().println("CURTIME() is '" + aTime.Hours + ":" + aTime.Minutes + ":" + aTime.Seconds + "'"); + } + + private void now(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "NOW() "); + final com.sun.star.util.DateTime aTime = row.getTimestamp(1); + getLog().println("NOW() is '" + aTime.Year + "-" + aTime.Month + "-" + aTime.Day + "'"); + getLog().println("'" + aTime.Hours + ":" + aTime.Minutes + ":" + aTime.Seconds + "'"); + } +} diff --git a/connectivity/qa/complex/connectivity/dbase/DBaseNumericFunctions.java b/connectivity/qa/complex/connectivity/dbase/DBaseNumericFunctions.java new file mode 100755 index 000000000000..f5aec94a3c23 --- /dev/null +++ b/connectivity/qa/complex/connectivity/dbase/DBaseNumericFunctions.java @@ -0,0 +1,397 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +package complex.connectivity.dbase; + +import com.sun.star.uno.UnoRuntime; +import com.sun.star.sdbc.*; +import com.sun.star.beans.XPropertySet; +import com.sun.star.lang.XMultiServiceFactory; +import complex.connectivity.SubTestCase; +import complex.connectivity.TestCase; + + +public class DBaseNumericFunctions extends SubTestCase +{ + private final String where = "FROM \"biblio\" \"biblio\" where \"Identifier\" = 'BOR00'"; + private final XMultiServiceFactory m_xORB; + + public DBaseNumericFunctions(final XMultiServiceFactory _xORB, final TestCase i_testCase) + { + super( i_testCase ); + m_xORB = _xORB; + } + + public void testFunctions() throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRowSet xRowRes = (XRowSet) UnoRuntime.queryInterface(XRowSet.class, + m_xORB.createInstance("com.sun.star.sdb.RowSet")); + + getLog().println("starting Numeric function test"); + // set the properties needed to connect to a database + final XPropertySet xProp = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xRowRes); + xProp.setPropertyValue("DataSourceName", "Bibliography"); + + xProp.setPropertyValue("CommandType", Integer.valueOf(com.sun.star.sdb.CommandType.COMMAND)); + + try + { + abs(xRowRes); + } + catch (SQLException ex) + { + assure("abs " + ex.getMessage(), false); + throw ex; + } + try + { + acos(xRowRes); + } + catch (SQLException ex) + { + assure("acos " + ex.getMessage(), false); + throw ex; + } + try + { + asin(xRowRes); + } + catch (SQLException ex) + { + assure("asin " + ex.getMessage(), false); + throw ex; + } + try + { + atan(xRowRes); + } + catch (SQLException ex) + { + assure("atan " + ex.getMessage(), false); + throw ex; + } + try + { + atan2(xRowRes); + } + catch (SQLException ex) + { + assure("atan2 " + ex.getMessage(), false); + throw ex; + } + try + { + ceiling(xRowRes); + } + catch (SQLException ex) + { + assure("ceiling " + ex.getMessage(), false); + throw ex; + } + try + { + cos(xRowRes); + } + catch (SQLException ex) + { + assure("cos " + ex.getMessage(), false); + throw ex; + } + try + { + degrees(xRowRes); + } + catch (SQLException ex) + { + assure("degrees " + ex.getMessage(), false); + throw ex; + } + try + { + exp(xRowRes); + } + catch (SQLException ex) + { + assure("exp " + ex.getMessage(), false); + throw ex; + } + try + { + floor(xRowRes); + } + catch (SQLException ex) + { + assure("floor " + ex.getMessage(), false); + throw ex; + } + try + { + log(xRowRes); + } + catch (SQLException ex) + { + assure("log " + ex.getMessage(), false); + throw ex; + } + try + { + log10(xRowRes); + } + catch (SQLException ex) + { + assure("log10 " + ex.getMessage(), false); + throw ex; + } + try + { + mod(xRowRes); + } + catch (SQLException ex) + { + assure("mod " + ex.getMessage(), false); + throw ex; + } + try + { + pi(xRowRes); + } + catch (SQLException ex) + { + assure("pi " + ex.getMessage(), false); + throw ex; + } + try + { + pow(xRowRes); + } + catch (SQLException ex) + { + assure("pow " + ex.getMessage(), false); + throw ex; + } + try + { + radians(xRowRes); + } + catch (SQLException ex) + { + assure("radians " + ex.getMessage(), false); + throw ex; + } + try + { + round(xRowRes); + } + catch (SQLException ex) + { + assure("round " + ex.getMessage(), false); + throw ex; + } + try + { + sign(xRowRes); + } + catch (SQLException ex) + { + assure("sign " + ex.getMessage(), false); + throw ex; + } + try + { + sin(xRowRes); + } + catch (SQLException ex) + { + assure("sin " + ex.getMessage(), false); + throw ex; + } + try + { + sqrt(xRowRes); + } + catch (SQLException ex) + { + assure("sqrt " + ex.getMessage(), false); + throw ex; + } + try + { + tan(xRowRes); + } + catch (SQLException ex) + { + assure("tan " + ex.getMessage(), false); + throw ex; + } + + } + + private XRow execute(final XRowSet xRowRes,final String sql) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XPropertySet xProp = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xRowRes); + xProp.setPropertyValue("Command", "SELECT " + sql + where); + xRowRes.execute(); + final XResultSet xRes = (XResultSet) UnoRuntime.queryInterface(XResultSet.class, xRowRes); + assure("No valid row! ", xRes.next()); + + return (XRow) UnoRuntime.queryInterface(XRow.class, xRes); + } + + private void abs(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "ABS(2),ABS(-32) "); + assure("ABS(2) failed!", row.getInt(1) == 2); + assure("ABS(-32) failed!", row.getInt(2) == 32); + } + + private void sign(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "SIGN(-32),SIGN(0),SIGN(234) "); + assure("SIGN(-32)failed!", row.getInt(1) == -1); + assure("SIGN(0) failed!", row.getInt(2) == 0); + assure("SIGN(234) failed!", row.getInt(3) == 1); + } + + private void mod(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "MOD(234, 10) "); + assure("MOD(234, 10) failed!", row.getInt(1) == 4); + } + + private void floor(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "FLOOR(1.23),FLOOR(-1.23) "); + assure("FLOOR(1.23) failed!", row.getInt(1) == 1); + assure("FLOOR(-1.23) failed!", row.getInt(2) == -2); + } + + private void ceiling(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "CEILING(1.23),CEILING(-1.23) "); + assure("CEILING(1.23) failed!", row.getInt(1) == 2); + assure("CEILING(-1.23) failed!", row.getInt(2) == -1); + } + + private void round(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "ROUND(-1.23),ROUND(1.298, 1) "); + assure("ROUND(-1.23) failed!", row.getInt(1) == -1); + assure("ROUND(1.298, 1) failed!", row.getDouble(2) == 1.3); + } + + private void exp(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "EXP(2),EXP(-2) "); + assure("EXP(2) failed!", (float) row.getDouble(1) == (float) java.lang.Math.exp(2)); + assure("EXP(-2) failed!", (float) row.getDouble(2) == (float) java.lang.Math.exp(-2)); + } + + private void log(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "LOG(2),LOG(-2) "); + assure("LOG(2) failed!", (float) row.getDouble(1) == (float) java.lang.Math.log(2)); + row.getDouble(2); + assure("LOG(-2) failed!", row.wasNull()); + } + + private void log10(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "LOG10(100) "); + assure("LOG10(100) failed!", row.getDouble(1) == 2.0); + } + + private void pow(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "POWER(2,2) "); + assure("POWER(2,2) failed!", row.getDouble(1) == 4.0); + } + + private void sqrt(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "SQRT(4) "); + assure("SQRT(4) failed!", row.getDouble(1) == 2.0); + } + + private void pi(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "PI() "); + assure("PI() failed!", (float) row.getDouble(1) == (float) java.lang.Math.PI); + } + + private void cos(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "COS(PI()) "); + assure("COS(PI()) failed!", row.getDouble(1) == -1.0); + } + + private void sin(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "SIN(2) "); + assure("SIN(PI()) failed!", (float) row.getDouble(1) == (float) java.lang.Math.sin(2)); + } + + private void tan(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "TAN(PI()+1) "); + assure("TAN(PI()+1) failed!", (float) row.getDouble(1) == (float) java.lang.Math.tan(java.lang.Math.PI + 1.0)); + } + + private void acos(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "ACOS(1) "); + assure("ACOS(1) failed!", (float) row.getDouble(1) == 0.0); + } + + private void asin(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "ASIN(0) "); + assure("ASIN(0) failed!", (float) row.getDouble(1) == (float) java.lang.Math.asin(0.0)); + } + + private void atan(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "ATAN(0) "); + assure("ATAN(0) failed!", row.getDouble(1) == 0.0); + } + + private void atan2(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "ATAN2(0,2) "); + assure("ATAN2(0,2) failed!", (float) row.getDouble(1) == 0.0); + } + + private void degrees(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "DEGREES(PI()) "); + assure("DEGREES(PI()) failed!", row.getDouble(1) == 180.0); + } + + private void radians(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "RADIANS(90) "); + assure("RADIANS(90) failed!", (float) row.getDouble(1) == (float) (java.lang.Math.PI / 2.0)); + } +} diff --git a/connectivity/qa/complex/connectivity/dbase/DBaseSqlTests.java b/connectivity/qa/complex/connectivity/dbase/DBaseSqlTests.java new file mode 100755 index 000000000000..1265e05e7bef --- /dev/null +++ b/connectivity/qa/complex/connectivity/dbase/DBaseSqlTests.java @@ -0,0 +1,92 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +package complex.connectivity.dbase; + +import com.sun.star.uno.UnoRuntime; +import com.sun.star.sdbc.*; +import com.sun.star.beans.XPropertySet; +import com.sun.star.lang.XMultiServiceFactory; +import complex.connectivity.TestCase; +import complex.connectivity.SubTestCase; + +public class DBaseSqlTests extends SubTestCase +{ + private final XMultiServiceFactory m_xORB; + + public DBaseSqlTests(final XMultiServiceFactory _xORB,final TestCase i_testCase) + { + super( i_testCase ); + m_xORB = _xORB; + } + + public void testFunctions() throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRowSet xRowRes = (XRowSet) UnoRuntime.queryInterface(XRowSet.class, + m_xORB.createInstance("com.sun.star.sdb.RowSet")); + + getLog().println("starting SQL test"); + // set the properties needed to connect to a database + final XPropertySet xProp = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xRowRes); + xProp.setPropertyValue("DataSourceName", "Bibliography"); + xProp.setPropertyValue("CommandType", Integer.valueOf(com.sun.star.sdb.CommandType.COMMAND)); + + execute(xRowRes,"1 FROM \"biblio\" \"biblio\" where \"Identifier\" like 'B%'"); + execute(xRowRes,"1 FROM \"biblio\" \"biblio\" where not \"Identifier\" like 'B%'"); + execute(xRowRes,"1 FROM \"biblio\" \"biblio\" where not \"Identifier\" not like 'B%'"); + execute(xRowRes,"1 FROM \"biblio\" \"biblio\" where not(0 = 1)"); + execute(xRowRes,"1 FROM \"biblio\" \"biblio\" where 0 = 0"); + execute(xRowRes,"1 FROM \"biblio\" \"biblio\" where (0 = 0)"); + execute(xRowRes,"1 FROM \"biblio\" \"biblio\" where 0 <> 1"); + execute(xRowRes,"1 FROM \"biblio\" \"biblio\" where 0 < 1"); + execute(xRowRes,"1 FROM \"biblio\" \"biblio\" where 2 > 1"); + execute(xRowRes,"1,1+1,'a' + 'b' FROM \"biblio\" \"biblio\" where 2 > 1"); + // execute(xRowRes,"1 FROM \"biblio\" \"biblio\" where (0 = 0) is true"); + // execute(xRowRes,"1 FROM \"biblio\" \"biblio\" where not (0 = 0) is not true"); + // execute(xRowRes,"1 FROM \"biblio\" \"biblio\" where 1 between 0 and 2"); + execute(xRowRes,"1 FROM \"biblio\" \"biblio\" where not \"Identifier\" is NULL"); + execute(xRowRes,"1 FROM \"biblio\" \"biblio\" where \"Identifier\" is not NULL"); + execute(xRowRes,"1 FROM \"biblio\" \"biblio\" where \"Identifier\" = \"Identifier\""); + execute(xRowRes,"1 FROM \"biblio\" \"biblio\" where not(not(\"Identifier\" = \"Identifier\"))"); + execute(xRowRes,"1 FROM \"biblio\" \"biblio\" where (1 = 1 and 2 = 1) or 3 = 33 or 4 = 44 or ('a' = 'a' and 'b' = 'b')"); + } + + private void execute(final XRowSet xRowRes, String sql) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + try + { + final XPropertySet xProp = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xRowRes); + xProp.setPropertyValue("Command", "SELECT " + sql); + xRowRes.execute(); + } + catch(SQLException e) + { + getLog().println(sql + " Error: " + e.getMessage()); + } + } + + +} diff --git a/connectivity/qa/complex/connectivity/dbase/DBaseStringFunctions.java b/connectivity/qa/complex/connectivity/dbase/DBaseStringFunctions.java new file mode 100755 index 000000000000..30b94484d53d --- /dev/null +++ b/connectivity/qa/complex/connectivity/dbase/DBaseStringFunctions.java @@ -0,0 +1,319 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +package complex.connectivity.dbase; + +import com.sun.star.uno.UnoRuntime; +import com.sun.star.sdbc.*; +import com.sun.star.beans.XPropertySet; +import com.sun.star.lang.XMultiServiceFactory; +import complex.connectivity.SubTestCase; +import complex.connectivity.TestCase; + +public class DBaseStringFunctions extends SubTestCase +{ + private String where = "FROM \"biblio\" \"biblio\" where \"Identifier\" = 'BOR00'"; + private final XMultiServiceFactory m_xORB; + + public DBaseStringFunctions(final XMultiServiceFactory _xORB,final TestCase i_testCase) + { + super( i_testCase ); + m_xORB = _xORB; + } + + public void testFunctions() throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRowSet xRowRes = (XRowSet) UnoRuntime.queryInterface(XRowSet.class, + m_xORB.createInstance("com.sun.star.sdb.RowSet")); + + getLog().println("starting String function test"); + // set the properties needed to connect to a database + final XPropertySet xProp = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xRowRes); + xProp.setPropertyValue("DataSourceName", "Bibliography"); + + xProp.setPropertyValue("CommandType", Integer.valueOf(com.sun.star.sdb.CommandType.COMMAND)); + + try + { + upper(xRowRes); + } + catch (SQLException ex) + { + assure("upper " + ex.getMessage(), false); + throw ex; + } + try + { + lower(xRowRes); + } + catch (SQLException ex) + { + assure("lower " + ex.getMessage(), false); + throw ex; + } + try + { + acsii(xRowRes); + } + catch (SQLException ex) + { + assure("ascii " + ex.getMessage(), false); + throw ex; + } + try + { + char_length(xRowRes); + } + catch (SQLException ex) + { + assure("char_len " + ex.getMessage(), false); + throw ex; + } + try + { + concat(xRowRes); + } + catch (SQLException ex) + { + assure("concat " + ex.getMessage(), false); + throw ex; + } + try + { + chartest(xRowRes); + } + catch (SQLException ex) + { + assure("char " + ex.getMessage(), false); + throw ex; + } + try + { + locate(xRowRes); + } + catch (SQLException ex) + { + assure("locate " + ex.getMessage(), false); + throw ex; + } + try + { + substring(xRowRes); + } + catch (SQLException ex) + { + assure("substr " + ex.getMessage(), false); + throw ex; + } + try + { + ltrim(xRowRes); + } + catch (SQLException ex) + { + assure("ltrim " + ex.getMessage(), false); + throw ex; + } + try + { + rtrim(xRowRes); + } + catch (SQLException ex) + { + assure("rtrim " + ex.getMessage(), false); + throw ex; + } + try + { + space(xRowRes); + } + catch (SQLException ex) + { + assure("space " + ex.getMessage(), false); + throw ex; + } + try + { + replace(xRowRes); + } + catch (SQLException ex) + { + assure("replace " + ex.getMessage(), false); + throw ex; + } + try + { + repeat(xRowRes); + } + catch (SQLException ex) + { + assure("repeat " + ex.getMessage(), false); + throw ex; + } + try + { + insert(xRowRes); + } + catch (SQLException ex) + { + assure("insert " + ex.getMessage(), false); + throw ex; + } + try + { + left(xRowRes); + } + catch (SQLException ex) + { + assure("left " + ex.getMessage(), false); + throw ex; + } + try + { + right(xRowRes); + } + catch (SQLException ex) + { + assure("right " + ex.getMessage(), false); + throw ex; + } + } + + private XRow execute(final XRowSet xRowRes, String sql) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XPropertySet xProp = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xRowRes); + xProp.setPropertyValue("Command", "SELECT " + sql + where); + xRowRes.execute(); + final XResultSet xRes = (XResultSet) UnoRuntime.queryInterface(XResultSet.class, xRowRes); + assure("No valid row! ", xRes.next()); + + return (XRow) UnoRuntime.queryInterface(XRow.class, xRes); + } + + private void upper(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "upper('test'),UCASE('test') "); + assure("upper('test') failed!", row.getString(1).equals("TEST")); + assure("ucase('test') failed!", row.getString(2).equals("TEST")); + } + + private void lower(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "lower('TEST'),LCASE('TEST') "); + assure("lower('TEST') failed!", row.getString(1).equals("test")); + assure("lcase('TEST') failed!", row.getString(2).equals("test")); + final String temp = where; + where = "FROM \"biblio\" \"biblio\" where LOWER(\"Identifier\") like 'bor%'"; + execute(xRowRes, "lower('TEST'),LCASE('TEST') "); + where = temp; + } + + private void acsii(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "ASCII('2') "); + assure("acsii('2') failed!", row.getInt(1) == 50); + } + + private void char_length(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "char_length('test'),character_length('test'),OCTET_LENGTH('test') "); + assure("char_length('test') failed!", row.getInt(1) == 4); + assure("character_length('test') failed!", row.getInt(2) == 4); + assure("OCTET_LENGTH('test') failed!", row.getInt(3) == 4); + } + + private void concat(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "CONCAT('Hello',' ','World') "); + assure("CONCAT('Hello',' ',,'World') failed!", row.getString(1).equals("Hello World")); + } + + private void locate(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "LOCATE('bar', 'foobarbar') "); + assure("LOCATE('bar', 'foobarbar') failed!", row.getInt(1) == 4); + } + + private void substring(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "SUBSTRING('Quadratically',5) "); + assure("SUBSTRING('Quadratically',5) failed!", row.getString(1).equals("ratically")); + } + + private void ltrim(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "LTRIM(' barbar') "); + assure("LTRIM(' barbar') failed!", row.getString(1).equals("barbar")); + } + + private void rtrim(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "RTRIM('barbar ') "); + assure("RTRIM('barbar ') failed!", row.getString(1).equals("barbar")); + } + + private void space(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "space(6) "); + assure("space(6) failed!", row.getString(1).equals(" ")); + } + + private void replace(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "REPLACE('www.OOo.com', 'w', 'Ww') "); + assure("REPLACE('www.OOo.com', 'w', 'Ww') failed!", row.getString(1).equals("WwWwWw.OOo.com")); + } + + private void repeat(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "REPEAT('OOo', 3) "); + assure("REPEAT('OOo', 3) failed!", row.getString(1).equals("OOoOOoOOo")); + } + + private void insert(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "INSERT('Quadratic', 3, 4, 'What') "); + assure("INSERT('Quadratic', 3, 4, 'What') failed!", row.getString(1).equals("QuWhattic")); + } + + private void left(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "LEFT('foobarbar', 5) "); + assure("LEFT('foobarbar', 5) failed!", row.getString(1).equals("fooba")); + } + + private void right(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "RIGHT('foobarbar', 4) "); + assure("RIGHT('foobarbar', 4) failed!", row.getString(1).equals("rbar")); + } + + private void chartest(final XRowSet xRowRes) throws com.sun.star.uno.Exception, com.sun.star.beans.UnknownPropertyException + { + final XRow row = execute(xRowRes, "CHAR(ascii('t'),ascii('e'),ascii('s'),ascii('t')) "); + assure("CHAR(ascii('t'),ascii('e'),ascii('s'),ascii('t')) failed!", row.getString(1).equals("test")); + } +} diff --git a/connectivity/qa/complex/connectivity/hsqldb/DatabaseMetaData.java b/connectivity/qa/complex/connectivity/hsqldb/DatabaseMetaData.java new file mode 100755 index 000000000000..d5fa680f06c9 --- /dev/null +++ b/connectivity/qa/complex/connectivity/hsqldb/DatabaseMetaData.java @@ -0,0 +1,150 @@ +/* + * Class.java + * + * Created on June 23, 2003, 3:19 PM + */ + +/** + * + * @author oj93728 + */ +package complex.connectivity.hsqldb; +import complex.connectivity.HsqlDriverTest; +import java.sql.*; +import java.lang.reflect.Method; + + +public class DatabaseMetaData { + + private java.sql.DatabaseMetaData m_xMD; + private HsqlDriverTest m_TestCase; + + /** Creates a new instance of DatabaseMetaData */ + public DatabaseMetaData(HsqlDriverTest _testCase,java.sql.DatabaseMetaData _xmd) { + m_TestCase = _testCase; + m_xMD = _xmd; + } + + protected void assure(String _sText,boolean btest){ + m_TestCase.assurePublic(_sText,btest); + } + + protected void testMethod(String sName,Class[] params,Object[] objParams,int nCount){ + try { + System.out.println("test method " + sName); + + Method aGet = ((Object)m_xMD).getClass().getDeclaredMethod(sName, params); + if ( aGet != null ){ + ResultSet rs = (ResultSet)aGet.invoke(m_xMD, objParams); + ResultSetMetaData rsMD = rs.getMetaData(); + + assure( sName + " returns wrong column count" , rsMD.getColumnCount() == nCount); + } + else + assure( sName + " returns wrong column count" , false); + } catch( java.lang.NoSuchMethodException ex ) { + assure("Method " + sName + " could not be found!",false); + } catch( java.lang.IllegalAccessException ex ) { + assure("IllegalAccessException!",false); + } catch( SQLException ex ) { + assure("SQLException occurred: " + ex.getMessage() ,false); + } catch( java.lang.reflect.InvocationTargetException ex ) { + assure("IllegalAccessException!",false); + } finally { + + } + } + + public void test(){ + + // try { + + try{ + ResultSet rs = m_xMD.getTables(null,null,"TESTCASE",null); + while ( rs.next() ) + { + String catalog = rs.getString( 1 ); + if ( rs.wasNull() ) + catalog = null; + + String schema = rs.getString( 2 ); + if ( rs.wasNull() ) + schema = null; + + String table = rs.getString( 3 ); + String type = rs.getString( 4 ); + System.out.println("Catalog: " + catalog + " Schema: " + schema + " Table: " + table + " Type: " + type); + System.out.println("------------------ Columns ------------------"); + ResultSet rsColumns = m_xMD.getColumns(catalog,schema,table,"%"); + while ( rsColumns.next() ) + { + System.out.println("Column: " + rsColumns.getString( 4 ) + " Type: " + rsColumns.getInt( 5 ) + " TypeName: " + rsColumns.getString( 6 ) ); + } + + } + } catch(Exception e){ + + } + //testMethod("getTypeInfo", zclass,empty,17); +/* + Class[] zclass = new Class[]{}; + Object[] empty = new Object[]{}; + testMethod("getCatalogs", zclass,empty,1); + + testMethod("getSchemas", zclass,empty,2); + testMethod("getTableTypes", zclass,empty,1); + Class[] a4 = new Class[4]; + Object[] o4 = new Object[4]; + a4[0] = Class.forName("java.lang.Object"); + a4[1] = Class.forName("java.lang.String"); + a4[2] = Class.forName("java.lang.String"); + a4[3] = Class.forName("java.lang.String"); + + o4[0] = null; + o4[1] = null; + o4[2] = null; + o4[3] = "%"; + testMethod("getColumnPrivileges", a4,o4,7); + testMethod("getColumns", a4,o4,18); + testMethod("getProcedureColumns", a4,o4,13); + testMethod("getColumns", a4,o4,18); + + Class[] a3 = new Class[3]; + Object[] o3 = new Object[3]; + a3[0] = Class.forName("java.lang.Object"); + a3[1] = Class.forName("java.lang.String"); + a3[2] = Class.forName("java.lang.String"); + + o3[0] = null; + o3[1] = null; + o3[2] = "%"; + + testMethod("getExportedKeys", a3,o3,14); + testMethod("getImportedKeys", a3,o3,14); + testMethod("getPrimaryKeys", a3,o3,14); + testMethod("getProcedures", a3,o3,5); + testMethod("getTablePrivileges", a3,o3,6); + testMethod("getVersionColumns", a3,o3,7); + // testMethod("getCrossReference", a3,o3,14); + + } catch( java.lang.ClassNotFoundException ex) { + assure("ClassNotFoundException: " + ex.getMessage() ,false); + } + */ + } +/* + public com.sun.star.sdbc.XResultSet getCrossReference(Object obj, String str, String str2, Object obj3, String str4, String str5) { + } + public com.sun.star.sdbc.XResultSet getIndexInfo(Object obj, String str, String str2, boolean param, boolean param4) { + } + + public com.sun.star.sdbc.XResultSet getTables(Object obj, String str, String str2, String[] str3) { + } + + public com.sun.star.sdbc.XResultSet getUDTs(Object obj, String str, String str2, int[] values) { + } + + public com.sun.star.sdbc.XResultSet getBestRowIdentifier(Object obj, String str, String str2, int param, boolean param4) throws com.sun.star.sdbc.SQLException { + } + */ +} diff --git a/connectivity/qa/complex/connectivity/hsqldb/TestCacheSize.java b/connectivity/qa/complex/connectivity/hsqldb/TestCacheSize.java new file mode 100755 index 000000000000..6c4db8bdeee7 --- /dev/null +++ b/connectivity/qa/complex/connectivity/hsqldb/TestCacheSize.java @@ -0,0 +1,609 @@ +/* Copyright (c) 2001-2004, The HSQL Development Group + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * Neither the name of the HSQL Development Group nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG, + * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +package complex.connectivity.hsqldb; + + + +import org.hsqldb.lib.StopWatch; + +import java.util.Random; +import com.sun.star.lang.*; +import com.sun.star.uno.UnoRuntime; +import com.sun.star.sdbc.*; + +/** + * Test large cached tables by setting up a cached table of 100000 records + * or more and a much smaller memory table with about 1/100th rows used. + * Populate both tables so that an indexed column of the cached table has a + * foreign key reference to the main table. + * + * This database can be used to demonstrate efficient queries to retrieve + * the data from the cached table. + * + * 1.7.1 insert timings for 100000 rows, cache scale 12: + * simple table, no extra index: 52 s + * with index on lastname only: 56 s + * with index on zip only: 211 s + * foreign key, referential_integrity true: 216 s + * + * The above have improved a lot in 1.7.2 + * + * This test now incorporates the defunct TestTextTables + * + * @author fredt@users + * @version 1.7.2 + * @since 1.7.0 + */ +public class TestCacheSize { + + // program can edit the *.properties file to set cache_size + protected boolean filedb = true; + + // shutdown performed mid operation - not for mem: or hsql: URL's + protected boolean shutdown = true; + + // fixed + protected String url = "sdbc:embedded:hsqldb"; + + // frequent reporting of progress + boolean reportProgress = false; + + XMultiServiceFactory servicefactory = null; + + // type of the big table {MEMORY | CACHED | TEXT} + String tableType = "CACHED"; + int cacheScale = 17; + int cacheSizeScale = 8; + + // script format {TEXT, BINARY, COMPRESSED} + String logType = "TEXT"; + int writeDelay = 60; + boolean indexZip = true; + boolean indexLastName = false; + boolean addForeignKey = false; + boolean refIntegrity = true; + + // speeds up inserts when tableType=="CACHED" + boolean createTempTable = false; + + // introduces fragmentation to the .data file during insert + boolean deleteWhileInsert = false; + int deleteWhileInsertInterval = 10000; + + // size of the tables used in test + int bigrows = 10000; + int smallrows = 0xfff; + + // if the extra table needs to be created and filled up + boolean multikeytable = false; + + // + String user; + String password; + XStatement sStatement; + XConnection cConnection; + XDataSource ds; + XDriver drv; + com.sun.star.beans.PropertyValue[] info; + + public TestCacheSize(XMultiServiceFactory _xmulti,com.sun.star.beans.PropertyValue[] _info,XDriver _drv){ + servicefactory = _xmulti; + drv = _drv; + info = _info; + } + + public void setURL(String _url){ + url = _url; + } + + public void setUp() { + + user = "sa"; + password = ""; + + try { + sStatement = null; + cConnection = null; + + //Class.forName("org.hsqldb.jdbcDriver"); + + if (filedb) { + + cConnection = drv.connect(url,info); + sStatement = cConnection.createStatement(); + + sStatement.execute("SET SCRIPTFORMAT " + logType); + sStatement.execute("SET LOGSIZE " + 0); + sStatement.execute("SHUTDOWN"); + cConnection.close(); +// props.setProperty("hsqldb.cache_scale", "" + cacheScale); +// props.setProperty("hsqldb.cache_size_scale", + //"" + cacheSizeScale); + } + } catch (Exception e) { + e.printStackTrace(); + System.out.println("TestSql.setUp() error: " + e.getMessage()); + } + } + + /** + * Fill up the cache + * + * + */ + public void testFillUp() { + + StopWatch sw = new StopWatch(); + String ddl1 = "DROP TABLE test IF EXISTS;" + + "DROP TABLE zip IF EXISTS;"; + String ddl2 = "CREATE CACHED TABLE zip( zip INT IDENTITY );"; + String ddl3 = "CREATE " + tableType + " TABLE test( id INT IDENTITY," + + " firstname VARCHAR, " + " lastname VARCHAR, " + + " zip INTEGER, " + " filler VARCHAR); "; + String ddl31 = "SET TABLE test SOURCE \"test.csv;cache_scale=" + + cacheScale + "\";"; + + // adding extra index will slow down inserts a bit + String ddl4 = "CREATE INDEX idx1 ON TEST (lastname);"; + + // adding this index will slow down inserts a lot + String ddl5 = "CREATE INDEX idx2 ON TEST (zip);"; + + // referential integrity checks will slow down inserts a bit + String ddl6 = + "ALTER TABLE test add constraint c1 FOREIGN KEY (zip) REFERENCES zip(zip);"; + String ddl7 = "CREATE TEMP TABLE temptest( id INT," + + " firstname VARCHAR, " + " lastname VARCHAR, " + + " zip INTEGER, " + " filler VARCHAR); "; + String filler = + "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ" + + "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"; + String mddl1 = "DROP TABLE test2 IF EXISTS;"; + String mddl2 = "CREATE " + tableType + + " TABLE test2( id1 INT, id2 INT," + + " firstname VARCHAR, " + " lastname VARCHAR, " + + " zip INTEGER, " + " filler VARCHAR, " + + " PRIMARY KEY (id1,id2) ); "; + String mdd13 = "SET TABLE test2 SOURCE \"test2.csv;cache_scale=" + + cacheScale + "\";"; + + try { + System.out.println("Connecting"); + sw.zero(); + + cConnection = null; + sStatement = null; + cConnection = drv.connect(url,info); + + System.out.println("connected: " + sw.elapsedTime()); + sw.zero(); + + sStatement = cConnection.createStatement(); + + java.util.Random randomgen = new java.util.Random(); + + sStatement.execute("SET WRITE_DELAY " + writeDelay); + sStatement.execute(ddl1); + sStatement.execute(ddl2); + sStatement.execute(ddl3); + + if (tableType.equals("TEXT")) { + sStatement.execute(ddl31); + } + + System.out.println("test table with no index"); + + if (indexLastName) { + sStatement.execute(ddl4); + System.out.println("create index on lastname"); + } + + if (indexZip) { + sStatement.execute(ddl5); + System.out.println("create index on zip"); + } + + if (addForeignKey) { + sStatement.execute(ddl6); + System.out.println("add foreign key"); + } + + if (createTempTable) { + sStatement.execute(ddl7); + System.out.println("temp table"); + } + + if (multikeytable) { + sStatement.execute(mddl1); + sStatement.execute(mddl2); + + if (tableType.equals("TEXT")) { + sStatement.execute(mdd13); + } + + System.out.println("multi key table"); + } + +// sStatement.execute("CREATE INDEX idx3 ON tempTEST (zip);"); + System.out.println("Setup time: " + sw.elapsedTime()); + fillUpBigTable(filler, randomgen); + + if (multikeytable) { + fillUpMultiTable(filler, randomgen); + } + + sw.zero(); + + if (shutdown) { + sStatement.execute("SHUTDOWN"); + System.out.println("Shutdown Time: " + sw.elapsedTime()); + } + + cConnection.close(); + } catch (SQLException e) { + System.out.println(e.getMessage()); + } + } + + private void fillUpBigTable(String filler, + Random randomgen) throws SQLException { + + StopWatch sw = new StopWatch(); + int i; + + for (i = 0; i <= smallrows; i++) { + sStatement.execute("INSERT INTO zip VALUES(null);"); + } + + sStatement.execute("SET REFERENTIAL_INTEGRITY " + this.refIntegrity + + ";"); + + XPreparedStatement ps = cConnection.prepareStatement( + "INSERT INTO test (firstname,lastname,zip,filler) VALUES (?,?,?,?)"); + + XParameters para = (XParameters)UnoRuntime.queryInterface(XParameters.class,ps); + para.setString(1, "Julia"); + para.setString(2, "Clancy"); + + for (i = 0; i < bigrows; i++) { + para.setInt(3, randomgen.nextInt(smallrows)); + + long nextrandom = randomgen.nextLong(); + int randomlength = (int) nextrandom & 0x7f; + + if (randomlength > filler.length()) { + randomlength = filler.length(); + } + + String varfiller = filler.substring(0, randomlength); + + para.setString(4, nextrandom + varfiller); + ps.execute(); + + if (reportProgress && (i + 1) % 10000 == 0) { + System.out.println("Insert " + (i + 1) + " : " + + sw.elapsedTime()); + } + + // delete and add 4000 rows to introduce fragmentation + if (deleteWhileInsert && i != 0 + && i % deleteWhileInsertInterval == 0) { + sStatement.execute("CALL IDENTITY();"); + + XMultipleResults mrs = (XMultipleResults)UnoRuntime.queryInterface(XMultipleResults.class,sStatement); + XResultSet rs = mrs.getResultSet(); + + rs.next(); + + XRow row = (XRow)UnoRuntime.queryInterface(XRow.class,rs); + int lastId = row.getInt(1); + + sStatement.execute( + "SELECT * INTO TEMP tempt FROM test WHERE id > " + + (lastId - 4000) + " ;"); + sStatement.execute("DELETE FROM test WHERE id > " + + (lastId - 4000) + " ;"); + sStatement.execute("INSERT INTO test SELECT * FROM tempt;"); + sStatement.execute("DROP TABLE tempt;"); + } + } + +// sStatement.execute("INSERT INTO test SELECT * FROM temptest;"); +// sStatement.execute("DROP TABLE temptest;"); +// sStatement.execute(ddl7); + System.out.println("Total insert: " + i); + System.out.println("Insert time: " + sw.elapsedTime() + " rps: " + + (i * 1000 / (sw.elapsedTime() + 1))); + } + + private void fillUpMultiTable(String filler, + Random randomgen) throws SQLException { + + StopWatch sw = new StopWatch(); + int i; + XPreparedStatement ps = cConnection.prepareStatement( + "INSERT INTO test2 (id1, id2, firstname,lastname,zip,filler) VALUES (?,?,?,?,?,?)"); + + XParameters para = (XParameters)UnoRuntime.queryInterface(XParameters.class,ps); + para.setString(3, "Julia"); + para.setString(4, "Clancy"); + + int id1 = 0; + + for (i = 0; i < bigrows; i++) { + int id2 = randomgen.nextInt(Integer.MAX_VALUE); + + if (i % 1000 == 0) { + id1 = randomgen.nextInt(Integer.MAX_VALUE); + } + + para.setInt(1, id1); + para.setInt(2, id2); + para.setInt(5, randomgen.nextInt(smallrows)); + + long nextrandom = randomgen.nextLong(); + int randomlength = (int) nextrandom & 0x7f; + + if (randomlength > filler.length()) { + randomlength = filler.length(); + } + + String varfiller = filler.substring(0, randomlength); + + para.setString(6, nextrandom + varfiller); + + try { + ps.execute(); + } catch (SQLException e) { + e.printStackTrace(); + } + + if (reportProgress && (i + 1) % 10000 == 0) { + System.out.println("Insert " + (i + 1) + " : " + + sw.elapsedTime()); + } + } + + System.out.println("Multi Key Total insert: " + i); + System.out.println("Insert time: " + sw.elapsedTime() + " rps: " + + (i * 1000 / (sw.elapsedTime() + 1))); + } + + public void tearDown() {} + + public void checkResults() { + + try { + StopWatch sw = new StopWatch(); + XResultSet rs; + + cConnection = drv.connect(url,info); + + System.out.println("Reopened database: " + sw.elapsedTime()); + sw.zero(); + + sStatement = cConnection.createStatement(); + + sStatement.execute("SET WRITE_DELAY " + writeDelay); + + // the tests use different indexes + // use primary index + sStatement.execute("SELECT count(*) from TEST"); + + XMultipleResults mrs = (XMultipleResults)UnoRuntime.queryInterface(XMultipleResults.class,sStatement); + rs = mrs.getResultSet(); + XRow row = (XRow)UnoRuntime.queryInterface(XRow.class,rs); + + rs.next(); + System.out.println("Row Count: " + row.getInt(1)); + System.out.println("Time to count: " + sw.elapsedTime()); + + // use index on zip + sw.zero(); + sStatement.execute("SELECT count(*) from TEST where zip > -1"); + + rs = mrs.getResultSet(); + + rs.next(); + System.out.println("Row Count: " + row.getInt(1)); + System.out.println("Time to count: " + sw.elapsedTime()); + checkSelects(); + checkUpdates(); + checkSelects(); + sw.zero(); + sStatement.execute("SELECT count(*) from TEST where zip > -1"); + + rs = mrs.getResultSet(); + + rs.next(); + System.out.println("Row Count: " + row.getInt(1)); + System.out.println("Time to count: " + sw.elapsedTime()); + sw.zero(); + + if (shutdown) { + sStatement.execute("SHUTDOWN"); + System.out.println("Shutdown Time: " + sw.elapsedTime()); + } + + cConnection.close(); + System.out.println("Closed database: " + sw.elapsedTime()); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + private void checkSelects() { + + StopWatch sw = new StopWatch(); + java.util.Random randomgen = new java.util.Random(); + int i = 0; + boolean slow = false; + + try { + XPreparedStatement ps = cConnection.prepareStatement( + "SELECT TOP 1 firstname,lastname,zip,filler FROM test WHERE zip = ?"); + XParameters para = (XParameters)UnoRuntime.queryInterface(XParameters.class,ps); + + for (; i < bigrows; i++) { + para.setInt(1, randomgen.nextInt(smallrows)); + ps.execute(); + + if ((i + 1) == 100 && sw.elapsedTime() > 5000) { + slow = true; + } + + if (reportProgress && (i + 1) % 10000 == 0 + || (slow && (i + 1) % 100 == 0)) { + System.out.println("Select " + (i + 1) + " : " + + sw.elapsedTime() + " rps: " + + (i * 1000 / (sw.elapsedTime() + 1))); + } + } + } catch (SQLException e) { + e.printStackTrace(); + } + + System.out.println("Select random zip " + i + " rows : " + + sw.elapsedTime() + " rps: " + + (i * 1000 / (sw.elapsedTime() + 1))); + sw.zero(); + + try { + XPreparedStatement ps = cConnection.prepareStatement( + "SELECT firstname,lastname,zip,filler FROM test WHERE id = ?"); + XParameters para = (XParameters)UnoRuntime.queryInterface(XParameters.class,ps); + + for (i = 0; i < bigrows; i++) { + para.setInt(1, randomgen.nextInt(bigrows - 1)); + ps.execute(); + + if (reportProgress && (i + 1) % 10000 == 0 + || (slow && (i + 1) % 100 == 0)) { + System.out.println("Select " + (i + 1) + " : " + + (sw.elapsedTime() + 1)); + } + } + } catch (SQLException e) { + e.printStackTrace(); + } + + System.out.println("Select random id " + i + " rows : " + + sw.elapsedTime() + " rps: " + + (i * 1000 / (sw.elapsedTime() + 1))); + sw.zero(); + + try { + XPreparedStatement ps = cConnection.prepareStatement( + "SELECT zip FROM zip WHERE zip = ?"); + XParameters para = (XParameters)UnoRuntime.queryInterface(XParameters.class,ps); + + for (i = 0; i < bigrows; i++) { + para.setInt(1, randomgen.nextInt(smallrows - 1)); + ps.execute(); + + if (reportProgress && (i + 1) % 10000 == 0 + || (slow && (i + 1) % 100 == 0)) { + System.out.println("Select " + (i + 1) + " : " + + (sw.elapsedTime() + 1)); + } + } + } catch (SQLException e) { + e.printStackTrace(); + } + + System.out.println("Select random zip from zip table " + i + + " rows : " + sw.elapsedTime() + " rps: " + + (i * 1000 / (sw.elapsedTime() + 1))); + } + + private void checkUpdates() { + + StopWatch sw = new StopWatch(); + java.util.Random randomgen = new java.util.Random(); + int i = 0; + boolean slow = false; + int count = 0; + + try { + XPreparedStatement ps = cConnection.prepareStatement( + "UPDATE test SET filler = filler || zip WHERE zip = ?"); + XParameters para = (XParameters)UnoRuntime.queryInterface(XParameters.class,ps); + + for (; i < smallrows; i++) { + int random = randomgen.nextInt(smallrows - 1); + + para.setInt(1, random); + + count += ps.executeUpdate(); + + if (reportProgress && count % 10000 < 20) { + System.out.println("Update " + count + " : " + + (sw.elapsedTime() + 1)); + } + } + } catch (SQLException e) { + e.printStackTrace(); + } + + System.out.println("Update with random zip " + i + + " UPDATE commands, " + count + " rows : " + + sw.elapsedTime() + " rps: " + + (count * 1000 / (sw.elapsedTime() + 1))); + sw.zero(); + + try { + XPreparedStatement ps = cConnection.prepareStatement( + "UPDATE test SET zip = zip + 1 WHERE id = ?"); + XParameters para = (XParameters)UnoRuntime.queryInterface(XParameters.class,ps); + + for (i = 0; i < bigrows; i++) { + int random = randomgen.nextInt(bigrows - 1); + + para.setInt(1, random); + ps.execute(); + + if (reportProgress && (i + 1) % 10000 == 0 + || (slow && (i + 1) % 100 == 0)) { + System.out.println("Update " + (i + 1) + " : " + + sw.elapsedTime() + " rps: " + + (i * 1000 / (sw.elapsedTime() + 1))); + } + } + } catch (SQLException e) { + e.printStackTrace(); + } + + System.out.println("Update with random id " + i + " rows : " + + sw.elapsedTime() + " rps: " + + (i * 1000 / (sw.elapsedTime() + 1))); + } +} |