# rules for converting Informix SQL to SQLServer -compatible syntax
#
# This one is used for the ODBC version engine....
# It may get merged with the INFORMIX-SQLSERVER.cnv version....
#



DOUBLE_TO_SINGLE_QUOTES
MATCHES_TO_LIKE
TABLE_ALIAS_AS
COLUMN_ALIAS_AS
ESCAPE_PLAN
MONEY_AS_DECIMAL
ANSI_UPDATE_SYNTAX
CONSTRAINT_NAME_BEFORE
SUBSTRING_FUNCTION = SUBSTRING
STRIP_ORDER_BY_INTO_TEMP
SELECT_INTO_TEMP_INTO_HASH
EMULATE_FOR_UPDATE
CREATE_TEMP_AS_CREATE_HASH
INSERT_INTO_AS_SELECT_INTO

FIX_OUTER_JOINS


DTYPE_ALIAS SMALLFLOAT = FLOAT
DTYPE_ALIAS DATETIME DAY TO DAY=SMALLINT
DTYPE_ALIAS DATETIME DAY TO FRACTION(2)=CHAR(14)
DTYPE_ALIAS DATETIME DAY TO FRACTION=CHAR(14)
DTYPE_ALIAS DATETIME DAY TO HOUR=CHAR(5)
DTYPE_ALIAS DATETIME DAY TO MINUTE=CHAR(8)
DTYPE_ALIAS DATETIME DAY TO SECOND=CHAR(11)
DTYPE_ALIAS DATETIME HOUR TO FRACTION(2)=CHAR(11)
DTYPE_ALIAS DATETIME HOUR TO FRACTION=CHAR(11)
DTYPE_ALIAS DATETIME HOUR TO HOUR=SMALLINT
DTYPE_ALIAS DATETIME HOUR TO MINUTE=CHAR(5)
DTYPE_ALIAS DATETIME HOUR TO SECOND=CHAR(8)
DTYPE_ALIAS DATETIME MINUTE TO FRACTION(1)=CHAR(7)
DTYPE_ALIAS DATETIME MINUTE TO FRACTION=CHAR(8)
DTYPE_ALIAS DATETIME MINUTE TO MINUTE=SMALLINT
DTYPE_ALIAS DATETIME MINUTE TO SECOND=CHAR(5)
DTYPE_ALIAS DATETIME MONTH TO DAY=CHAR(5)
DTYPE_ALIAS DATETIME MONTH TO FRACTION(1)=CHAR(16)
DTYPE_ALIAS DATETIME MONTH TO FRACTION=CHAR(17)
DTYPE_ALIAS DATETIME MONTH TO HOUR=CHAR(8)
DTYPE_ALIAS DATETIME MONTH TO MINUTE=CHAR(11)
DTYPE_ALIAS DATETIME MONTH TO MONTH=SMALLINT
DTYPE_ALIAS DATETIME MONTH TO SECOND=CHAR(14)
DTYPE_ALIAS DATETIME SECOND TO FRACTION(2)=CHAR(4)
DTYPE_ALIAS DATETIME SECOND TO FRACTION=CHAR(4)
DTYPE_ALIAS DATETIME SECOND TO SECOND=SMALLINT
DTYPE_ALIAS DATETIME YEAR TO DAY=CHAR(10)  
DTYPE_ALIAS DATETIME YEAR TO FRACTION(2)=CHAR(20)
DTYPE_ALIAS DATETIME YEAR TO FRACTION(3)=CHAR(20)
DTYPE_ALIAS DATETIME YEAR TO FRACTION(5)=CHAR(20)
DTYPE_ALIAS DATETIME YEAR TO FRACTION=CHAR(20)
DTYPE_ALIAS DATETIME YEAR TO HOUR=CHAR(13)
DTYPE_ALIAS DATETIME YEAR TO MINUTE=CHAR(16)
DTYPE_ALIAS DATETIME YEAR TO MONTH=CHAR(7)
DTYPE_ALIAS DATETIME YEAR TO SECOND=CHAR(16)
DTYPE_ALIAS DATETIME YEAR TO YEAR=SMALLINT
DTYPE_ALIAS INTERVAL YEAR TO YEAR=CHAR(20)
DTYPE_ALIAS INTERVAL YEAR (4) TO YEAR=CHAR(20)
DTYPE_ALIAS INTERVAL YEAR TO MONTH=CHAR(20)
DTYPE_ALIAS INTERVAL YEAR (4) TO MONTH=CHAR(20)
DTYPE_ALIAS INTERVAL MONTH TO MONTH=CHAR(20)
DTYPE_ALIAS INTERVAL MONTH (2) TO MONTH=CHAR(20)
DTYPE_ALIAS INTERVAL DAY TO DAY=CHAR(20)
DTYPE_ALIAS INTERVAL DAY (2) TO DAY=CHAR(20)
DTYPE_ALIAS INTERVAL DAY TO HOUR=CHAR(20)
DTYPE_ALIAS INTERVAL DAY (2) TO HOUR=CHAR(20)
DTYPE_ALIAS INTERVAL DAY TO MINUTE=CHAR(20)
DTYPE_ALIAS INTERVAL DAY (2) TO MINUTE=CHAR(20)
DTYPE_ALIAS INTERVAL DAY TO SECOND=CHAR(20)
DTYPE_ALIAS INTERVAL DAY (2) TO SECOND=CHAR(20)
DTYPE_ALIAS INTERVAL DAY TO FRACTION=CHAR(20)
DTYPE_ALIAS INTERVAL DAY (2) TO FRACTION=CHAR(20)
DTYPE_ALIAS INTERVAL DAY TO FRACTION(2)=CHAR(20)
DTYPE_ALIAS INTERVAL DAY (2) TO FRACTION(2)=CHAR(20)
DTYPE_ALIAS INTERVAL HOUR TO HOUR=CHAR(20)
DTYPE_ALIAS INTERVAL HOUR (2) TO HOUR=CHAR(20)
DTYPE_ALIAS INTERVAL HOUR TO MINUTE=CHAR(20)
DTYPE_ALIAS INTERVAL HOUR (2) TO MINUTE=CHAR(20)
DTYPE_ALIAS INTERVAL HOUR TO SECOND=CHAR(20)
DTYPE_ALIAS INTERVAL HOUR (2) TO SECOND=CHAR(20)
DTYPE_ALIAS INTERVAL HOUR TO FRACTION=CHAR(20)
DTYPE_ALIAS INTERVAL HOUR (2) TO FRACTION=CHAR(20)
DTYPE_ALIAS INTERVAL HOUR TO FRACTION(2)=CHAR(20)
DTYPE_ALIAS INTERVAL HOUR (2) TO FRACTION(2)=CHAR(20)
DTYPE_ALIAS INTERVAL MINUTE TO MINUTE=CHAR(20)
DTYPE_ALIAS INTERVAL MINUTE (2) TO MINUTE=CHAR(20)
DTYPE_ALIAS INTERVAL MINUTE TO SECOND=CHAR(20)
DTYPE_ALIAS INTERVAL MINUTE (2) TO SECOND=CHAR(20)
DTYPE_ALIAS INTERVAL MINUTE TO FRACTION=CHAR(20)
DTYPE_ALIAS INTERVAL MINUTE (2) TO FRACTION=CHAR(20)
DTYPE_ALIAS INTERVAL MINUTE (2 ) TO FRACTION(1)=CHAR(20)
DTYPE_ALIAS INTERVAL MINUTE (2) TO FRACTION(1)=CHAR(20)
DTYPE_ALIAS INTERVAL SECOND TO SECOND=CHAR(20)
DTYPE_ALIAS INTERVAL SECOND (2) TO SECOND=CHAR(20)
DTYPE_ALIAS INTERVAL SECOND TO FRACTION=CHAR(20)
DTYPE_ALIAS INTERVAL SECOND (2) TO FRACTION=CHAR(20)
DTYPE_ALIAS INTERVAL SECOND TO FRACTION(2)=CHAR(20)
DTYPE_ALIAS INTERVAL SECOND (2) TO FRACTION(2)=CHAR(20)
DTYPE_ALIAS NVARCHAR=VARCHAR





OMIT_NO_LOG
USE_INDICATOR
#REPLACE_EXPR rowid = oid

#REPLACE_SQLCONST today = date(now())
REPLACE_SQLCONST today = getdate()
REPLACE_SQLFUNC year = date_part('YEAR',%s::timestamp with time zone)
REPLACE_SQLFUNC month = date_part('MONTH',%s::timestamp with time zone)
REPLACE_SQLFUNC day = date_part('DAY',%s::timestamp with time zone)
REPLACE_SQLFUNC dow = date_part('DOW',%s::timestamp with time zone)
#REPLACE_SQLCONST user='someuser'

REPLACE_SQLFUNC trim = rtrim(ltrim(%s))

REPLACE_SQLFUNC length = len(%s)
REPLACE_SQLFUNC nvl = isnull(%s)
REPLACE_SQLFUNC ascii = chr(%s)
REPLACE_SQLFUNC ord = ascii(%s)

REPLACE_EXPR current year to fraction(3) = now()
REPLACE_EXPR current year to fraction(5) = now()
REPLACE_EXPR current year to second = now()

# No obvious replacement for these - so effectively remove them
REPLACE_COMMAND SET EXPLAIN ON = 
REPLACE_COMMAND SET EXPLAIN OFF = 

REPLACE_COMMAND UPDATE STATISTICS = VACUUM

REPLACE_COMMAND BEGIN WORK = BEGIN TRANSACTION
REPLACE_COMMAND ROLLBACK WORK = ROLLBACK TRANSACTION
REPLACE_COMMAND COMMIT WORK = COMMIT TRANSACTION

# We can only replace whole statements with a REPLACE_COMMAND
# so we need to use a REPLACE on its own for this one..
REPLACE UPDATE STATISTICS FOR TABLE  = VACUUM 

REPLACE_COMMAND SET ISOLATION TO DIRTY READ = 
REPLACE_COMMAND SET ISOLATION TO REPEATABLE READ = 
REPLACE_COMMAND SET ISOLATION DIRTY READ = 
REPLACE_COMMAND SET ISOLATION REPEATABLE READ = 
REPLACE_COMMAND SET ISOLATION CURSOR STABILITY =
REPLACE_COMMAND SET ISOLATION COMMITTED READ = 
REPLACE_COMMAND SET LOCK MODE TO NOT WAIT =
REPLACE_COMMAND SET LOCK MODE TO WAIT =
REPLACE_COMMAND SET LOCK MODE TO WAIT %s =
REPLACE_COMMAND SET LOCK MODE TO WAIT 1 = 
REPLACE_COMMAND SET LOCK MODE TO WAIT 2 = 
REPLACE_COMMAND SET LOCK MODE TO WAIT 3 = 
REPLACE_COMMAND SET LOCK MODE TO WAIT 4 = 
REPLACE_COMMAND SET LOCK MODE TO WAIT 5 = 
REPLACE_COMMAND SET LOCK MODE TO WAIT 6 = 
REPLACE_COMMAND SET LOCK MODE TO WAIT 7 = 
REPLACE_COMMAND SET LOCK MODE TO WAIT 8 = 
REPLACE_COMMAND SET LOCK MODE TO WAIT 9 = 
REPLACE_COMMAND SET LOCK MODE TO WAIT 10 = 
REPLACE_COMMAND SET LOCK MODE TO WAIT 15 = 
REPLACE_COMMAND SET LOCK MODE TO WAIT 20 = 
REPLACE_COMMAND SET LOCK MODE TO WAIT 25 = 
REPLACE_COMMAND SET LOCK MODE TO WAIT 30 = 
REPLACE_COMMAND SET EXPLAIN ON = 

EXECUTE_PROCEDURE_AS_EXEC

# Ignore any errors when closing a cursor
# it may already have been closed...
IGNORE_CLOSE_ERROR
OMIT_INDEX_CLUSTER
OMIT_INDEX_ORDER
#IGNORE_OWNER
STRIP_QUOTES_FROM_OWNER
ESQL_UNLOAD_FULL_PATH
ESQL_AFTER_INSERT = A4GLESQL_after_insert();
ESQL_AFTER_UPDATE = A4GLESQL_after_update();
ESQL_AFTER_DELETE = A4GLESQL_after_delete();
EMULATE_INSERT_CURSOR

IGNORE_DTYPE_VARCHAR_MIN
# Quote an SQL expression in the form DATETIME(2001-01-01) to be DATETIME("2001-01-01") (give the db a chance to handle with a SP)
CHAR_TO_DATETIME=char_to_dt
# Quote an SQL expression in the form DATETIME(2001-01-01) to be DATETIME("2001-01-01") (give the db a chance to handle with a SP)
CHAR_TO_INTERVAL=char_to_iv
DATETIME_EXTEND_FUNCTION=dt_extend
INTERVAL_EXTEND_FUNCTION=iv_extend

# Remove any columns for an GRANT UPDATE (...) ...
SIMPLE_GRANT_UPDATE
SIMPLE_GRANT_SELECT
# Remove any (...) for serial (autoincrements) columns
NO_SERIAL_START_VALUE

RENAME_TABLE_AS_ALTER_TABLE
RENAME_COLUMN_AS_ALTER_TABLE

SWAP_SQLCA62
OMIT_UPDATE_TABLE
#DATE_STRING_TO_CAST_DMY
#DATE_STRING_TO_CAST_DATE
DATE_STRING_TO_YMD
DATE_AS_ISO_DATE_STRING
REPLACE_SQLCONST USER=current_user
OUTER_JOINS_NB
SQLSERVERTEMPS
REPLACE syscolatt.left = syscolatt.[left]