O$ PostgreSQL large objects and OSX

Mike Matthews omnis at lineal.co.uk
Wed Jun 24 08:03:49 EDT 2015


Hello Reg,

Sort of true about networks, but offsite connections are still poor, unless you live in Korea/Japan possibly, as they have gigabit external connections.  Here in South west of UK, stuck with 5-6 Mb/s in may places.

But for local copies, I agree with less work for the archiving and backup process to run.

Mike



Mike Matthews,
 Managing Director, SQLWorks Software Ltd

Tel: +44 (0)1271 375999

Email: mike.matthews at sqlworks.co.uk

Web: www.sqlworks.co.uk

SQLWorks replaces Sage, ACT!, Opera, Access, SAP

On 24 Jun 2015, at 12:57, Reg Paling <Reg.Paling at Lokanet.com> wrote:

> Hi Doug & all,
> 
> An advantage of storing the files in the filesystem is when using incremental backups, the files don't need to be backed up because they haven't changed.  The database will always need to be included wholus bolus even if only one row is changed, however it is smaller because it doesn't contain the files.  So overall it requires much less space for each incremental backup.
> 
> However, these days, networks are fast, backup media are big and the backups don't take long to run even for many gigabytes, so in many cases that advantage is not as important as it used to be.
> 
> Cheers,
> Reg
> 
> On 24/06/2015 2:59 pm, Doug Easterbrook wrote:
>> hi all:
>> 
>> I’ll probably get shot on this one …   but LOB is just a large object, binary or character.
>> 
>> so why try to access the database file structure and do a hybrid   ‘here’s a file and I’ll only save the pointer in the database??’
>> 
>> it just seems so much more reasonable to do an update to a table using standard sql like
>> 
>> update table set blob=[@blobvalue]
>> 
>> that way, if you delete the row, the blob goes
>> 
>> and if you back up the database, the blob gets backed up.
>> and, its platform independent.
>> and its fully ACID.
>> and its easy to restore a database.
>> 
>> 
>> 
>> 
>> it just doesn’t make sense to me to try this save the document via the file system and update the database with a value …   I know.. people say, there are advantages.    but it really escapes me on the most basest sense why to do it.
>> 
>> 
>> I hope to be enlightened.
>> 
>> 
>> 
>> Doug Easterbrook
>> Arts Management Systems Ltd.
>> mailto:doug at artsman.com
>> http://www.artsman.com
>> Phone (403) 536-1205    Fax (403) 536-1210
>> 
>>> On Jun 23, 2015, at 6:06 PM, Andrew Clow <andrew at freedomsoftware.co.nz> wrote:
>>> 
>>> Thanks Bas,
>>> I thought of the workaround but was hoping to avoid it, and I’m not sure if I’ll be able to get the import working with a workaround.
>>> 
>>> I’ll check if DLA can supply an updated DAM (assuming one exists) otherwise start working on the workaround unless there are some other $listers with suggestions.
>>> 
>>> Regards,
>>> Andrew.
>>> 
>>>> On 24/06/2015, at 11:37 am, Bastiaan Olij <bastiaan at basenlily.me> wrote:
>>>> 
>>>> Hi Andrew,
>>>> 
>>>> I had similar issues with creating the debug log you can enable for the
>>>> Postgres DAM. I think the Postgres side of life is converting the Mac
>>>> path to a Linux path but the OS is still expecting a Mac path.
>>>> I think the issue with the debug log was fixed in a later version of the
>>>> DAM and may apply to this as well but I don't know if this is thus
>>>> available in the latest 5 release or only 6 or if it is still a problem
>>>> for these particular functions.
>>>> 
>>>> You might want to check with TL if they have a newer DAM available for
>>>> you that fixes this issue.
>>>> 
>>>> Only workaround I can suggest is putting the file in the root and after
>>>> that moving it to the desired location, not neat and not all users may
>>>> have rights to do so.
>>>> 
>>>> Cheers,
>>>> 
>>>> Bas
>>>> 
>>>> On 24/06/2015 9:17 am, Andrew Clow wrote:
>>>>> Hi,
>>>>> 
>>>>> Using Omnis Studio 5.2.3 with Postgres DAM on both Windows & OSX.
>>>>> 
>>>>> I've been experimenting with $lobimport & $lobexport and got it working smoothly on Windows, but I'm having an issue with the implementation on OSX and hoping someone out there is using them successfully.
>>>>> 
>>>>> $lobimport(lcFilePath) returns 0  (nothing is imported/created and no error is logged by the Postgres Server)
>>>>> $lobexport(lcFilePath,$cinst.fs_oid) returns kTrue, but the file is generated in the root directory and not the selected path.
>>>>> 
>>>>> E.g. If lcFilePath is "Macintosh HD:Andrew:Desktop:Testfile.txt" Omnis creates the file as "Macintosh HD/Andrew/Desktop/Testfile.txt" in the root directory.
>>>>> 
>>>>> I suspect that this path issue is also preventing the $lobimport method from working.
>>>>> I've tried replacing all the path separators prior to import/export but that results in the same failure.
>>>>> 
>>>>> Can anyone think of what I might be missing regarding filepath on OSX?
>>>>> 
>>>>> All my other OSX file generation with $putfilename works, although most of it is via BrainyData's PDF external or $writecharacter.
>>>>> 
>>>>> For reference the code that's working on Windows is:
>>>>> :: Import method in table class.
>>>>> Do FileOps.$getfilename(lcFilePath,'Select File to import...','*.*',lDirectory)
>>>>> If not(isclear(lcFilePath))
>>>>> Do $cinst.$sessionobject().$transactionmode.$assign(kSessionTranManual)
>>>>> Do $cinst.$sessionobject().$begin()
>>>>> Do $cinst.$sessionobject().$lobimport(lcFilePath) Returns $cinst.fs_oid
>>>>> If $cinst.fs_oid
>>>>> Do $cinst.$save() Returns bResultState
>>>>> If bResultState
>>>>> Do $cinst.$sessionobject().$commit()
>>>>> Else
>>>>> Do $cinst.$sessionobject().$rollback()
>>>>> End If
>>>>> Else
>>>>> Do $cinst.$sessionobject().$rollback()
>>>>> End If
>>>>> Do $cinst.$sessionobject().$transactionmode.$assign(kSessionTranAutomatic)
>>>>> End If
>>>>> Quit method bResultState
>>>>> 
>>>>> :: Export method in table class.
>>>>> Do FileOps.$putfilename(lcFilePath,'Download file to...','*.*',lDirectory)
>>>>> If not(isclear(lcFilePath))
>>>>> Do $cinst.$sessionobject().$transactionmode.$assign(kSessionTranManual)
>>>>> Do $cinst.$sessionobject().$begin()
>>>>> Do $cinst.$sessionobject().$lobexport(lcFilePath,$cinst.fs_oid) Returns bResultState
>>>>> Do $cinst.$sessionobject().$rollback()
>>>>> Do $cinst.$sessionobject().$transactionmode.$assign(kSessionTranAutomatic)
>>>>> End If
>>>>> Quit method bResultState
>>>>> 
>>>>> Regards,
>>>>> Andrew Clow
>>>>> 
>>>>> _____________________________________________________________
>>>>> Manage your list subscriptions at http://lists.omnis-dev.com
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> _____________________________________________________________
>>>> Manage your list subscriptions at http://lists.omnis-dev.com
>>>> 
>>> _____________________________________________________________
>>> Manage your list subscriptions at http://lists.omnis-dev.com
>> _____________________________________________________________
>> Manage your list subscriptions at http://lists.omnis-dev.com
> 
> _____________________________________________________________
> Manage your list subscriptions at http://lists.omnis-dev.com






More information about the omnisdev-en mailing list