InstantDB Project
About InstantDB
Project Mail Lists
Short History
Reporting Bugs
Screen Shots
3rd Party Examples
FAQs

Software
Downloads
Documentation
CVS Repositories
Roadmap
License

About Enhydra.org
Who We Are
News, Articles & Events
Getting Involved
Contact Us

Community
Demos
Contributions
Resources
Case Studies
On The Edge! -NEW-
Commercial Vendors


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: InstantDB: length limitation


It can be any table. I didn't use any column inside in the table AnyTable, it's only an example.
Column myalias is an alias, it doesn't exist. By the way, here's my database properties
 
!---------------------------------------------------------------------
!
! BASIC PROPERTIES
!
!---------------------------------------------------------------------
 
!
! Path where index tables are held. Can be absolute or relative
! to the properties file. Defaults to tablePath.
!
indexPath=./indexes
!
! Path where system tables are held. Can be absolute or relative to
! the properties file. Defaults to tablePath.
!
systemPath=./system
!
! Path where database tables are held. Can be absolute or relative
! to the properties file. Defaults to "current" directory.
!
tablePath=./tables
!
! Path where results set tables are held. Can be absolute or relative
! to the properties file. Defaults to tablePath.
!
tmpPath=./tmp
!
! Non-zero means paths are relative to the properties file.
! Default is absolute paths for files.
!
relativeToProperties=1
 

!---------------------------------------------------------------------
!
! TUNING PROPERTIES
!
!---------------------------------------------------------------------
 
!
! The amount of each column to cache, expressed either as an absolute
! number of rows or as a percentage figure. Defaults to 256 or 10 respectively.
!
cacheAmount=256
!
! CACHE_ROWS Must be one of CACHE_ROWS or CACHE_PERCENT. Determines whether
! to cache columns in tables based on an absolute number of rows, or the
! percentage number of rows in the table.
!
cacheCondition=CACHE_ROWS
!
! The percentage cache hit improvement required in order to move the
! cache to a new location in a column.
!
! (Currently not implemented).
!
cacheResetPercent=10
!
! Non-zero means that database changes do not get written to the
! database immediately. See tuning.html.
!
fastUpdate=1
!
! Percentage of free space in an index that must be present before
! the index reorganises itself. High values means frequent index
! reorganisation. Low values means slow index inserts.
!
indexLoad=5
!
! The number of cache misses to include in calculations of the next
! base for the cache.
!
! (Currently not implemented).
!
missesInCacheStats=100
!
! Non-zero means that results sets get instantiated on disk. By default
! InstantDB holds results sets emtirely in memory (apart from Binary
! columns). For large resulst sets this can be a problem. This property
! forces all results sets to be held on disk.
!
resultsOnDisk=0
!
! Similar to cacheCondition but applies only to disk based
! results sets. Default is CACHE_ROWS.
!
resultsSetCache=CACHE_ROWS
!
! Similar to cacheAmount but applies only to disk based
! results sets. Default is 100.
!
resultsSetCacheAmount=100
!
! Number of rows to read into the disk look ahead buffer.
! Recommended to be set somewhere around 128 to 256.
! Default is 20.
!
rowCacheSize=128
!
! By default, InstantDB only does a cursory search for deleted rows during
! UPDATE statements. Setting searchDeletes=1 causes more detailed searches
! for deleted rows. This slows down UPDATE executions, but reults in more
! compact tables.  Default is 0.
!
searchDeletes=0
 
!---------------------------------------------------------------------
!
! LOGGING AND DEBUGGING PROPERTIES
!
!---------------------------------------------------------------------
 
!
! Non-zero means include SQL statements in the export file.
!
exportSQL=0
!
! Non-zero means trace output also directed to console.
! Defaults to 0.
!
traceConsole=0
!
! Relative or absolute path where exporting and tracing goes.
!
traceFile=./trace.log
!
! Bitmap of various items that can be traced. See debug.html.
! Defaults to 0.
!
traceLevel=0
 
!---------------------------------------------------------------------
!
! TRANSACTION AND RECOVERY PROPERTIES
!
!---------------------------------------------------------------------
 
!
! 0 means do not perform recovery on startup.
! 1 means perform automatic recovery
! 2 (default) means prompt the user using standard in
!
recoveryPolicy=1
!
! Sets the level of transaction journalling. See trans.html.
! Defaults to 1.
!
! 0 - No journalling takes place.
! 1 - Normal journalling (default).
! 2 - Full journalling.
!
transLevel=0
!
! When doing an import, defines the number of rows imported
! before the transaction is committed. Recommended value 8192.
! defaults to 100.
!
transImports=100
 
!---------------------------------------------------------------------
!
! DATE, TIME AND CURRENCY PROPERTIES
!
!---------------------------------------------------------------------
 
!
! Number of digits after decimal point in currency outputs. Defaults to 2.
!
currencyDecimal=2
!
! Currency symbol used in currency outputs. Defaults to $.
!
currencySymbol=$
!
! Default format for date columns. Defaults to "yyyy-mm-dd".
!
dateFormat="dd/mm/yyyy"
!
! If set, then all two digit dates less than its value are interpreted
! as 21st century dates.
!
!milleniumBoundary=50
!
! Set to 1 causes the date string "now" to store a full timestamp.
! Default is to store only the date for fields with now hour in the
! format string.
!
nowMeansTime=0
 
!---------------------------------------------------------------------
!
! MISCELLANEOUS PROPERTIES
!
!---------------------------------------------------------------------
 
!
! If set to 1 then String hashes use the JDK Object.hashCode() function.
! By default, uses InstantDB's String hashing.
!
altStringHashing=0
!
! Allows selected InstantDB keywords to be un-reserved.
! e.g. ignoreKeywords=url,quote would allow the keywords
! url and quote to be used as table or column names.
!
! This faciliy is provided for compatatbility reasons only.
! It's use is not recommended AND IS NOT SUPPORTED.
!
!ignoreKeywords
!
! Set to 1 to cause LIKE clauses to always perform case insensitive
! comparisons.
!
likeIgnoreCase=0
!
! Non-zero means database is opened in read only mode.
!
readOnly=0
!
! Same as SET LITERAL STRICT_ON. Prevents string literals being interpreted
! as column names or numbers. Default is 0.
!
strictLiterals=1
----- Original Message -----
Sent: Thursday, May 03, 2001 2:38 PM
Subject: RE: InstantDB: length limitation

What is the size of this attribute in the database?
 
You should post your database schema for this table.
-----Original Message-----
From: owner-instantDB@enhydra.org [mailto:owner-instantDB@enhydra.org]On Behalf Of Ho Quang Huy
Sent: Wednesday, May 02, 2001 10:55 PM
To: instantdb@enhydra.org
Subject: InstantDB: length limitation

Hi,
Please help me to solve this problem. I need to fix it urgently.
 
I have a very simple function: MY_FUNCTION()
File name: my_function.java
 
package org.enhydra.instantdb.db;
 
import org.enhydra.instantdb.db.SqlFunction;
import java.sql.*;
 
class my_function implements SqlFunction {
    public int checkParameters (int[] parameterTypes) throws SQLException {
        return TYPE_STRING;         // our return type
    }
 
    public void setSpecialValue(int type, Object value) {
    }
 
    public Object getSpecialValue (int type) throws SQLException {
        return null;
    }

    public Object evaluate(Object[] parameters) throws SQLException {
        return "0123456789012345678901234567890";        //string length = 31
    }
}
 
Run a SQL statement  SELECT MY_FUNCTION() myalias FROM AnyTable
I got an exception
java.sql.SQLException: java.sql.SQLException: Column myalias cannot accept value
 0123456789012345678901234567890
        at org.enhydra.instantdb.db.SQLProg.execute(SQLProg.java:288)
        at org.enhydra.instantdb.jdbc.idbStatement.execute(idbStatement.java:235
)
        at JDBCAppl.action(JDBCAppl.java:214)
        at java.awt.Component.handleEvent(Unknown Source)
        at JDBCAppl.handleEvent(JDBCAppl.java:270)
But if the return string from MY_FUNCTION() has length=30, e.g 012345678901234567890123456789, then everything's fine, there's no exception.
 
Is there any way to set again the limit of string length to make it longer than 30? Or any way to work around?
 
Thanks,
Huy