DOUBLE_TO_SINGLE_QUOTES MATCHES_TO_REGEX TABLE_ALIAS_AS ADD_CASCADE COLUMN_ALIAS_AS MONEY_AS_DECIMAL ANSI_UPDATE_SYNTAX CONSTRAINT_NAME_BEFORE SUBSTRING_FUNCTION = substr STRIP_ORDER_BY_INTO_TEMP SELECT_INTO_TEMP_AS_CREATE_TEMP_AS TRIMSQLLIKEVAL # Postgres doesn't have one of these - so fake one DTYPE_ALIAS BYTE = TEXT # Postgres doesn't have one of these - so fake one 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(1)=CHAR(14) DTYPE_ALIAS DATETIME DAY TO FRACTION(3)=CHAR(15) DTYPE_ALIAS DATETIME DAY TO FRACTION(4)=CHAR(16) DTYPE_ALIAS DATETIME DAY TO FRACTION(5)=CHAR(17) 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(1)=CHAR(11) DTYPE_ALIAS DATETIME HOUR TO FRACTION(2)=CHAR(11) DTYPE_ALIAS DATETIME HOUR TO FRACTION(3)=CHAR(12) DTYPE_ALIAS DATETIME HOUR TO FRACTION(4)=CHAR(13) DTYPE_ALIAS DATETIME HOUR TO FRACTION(5)=CHAR(14) 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(2)=CHAR(8) DTYPE_ALIAS DATETIME MINUTE TO FRACTION(3)=CHAR(9) DTYPE_ALIAS DATETIME MINUTE TO FRACTION(4)=CHAR(10) DTYPE_ALIAS DATETIME MINUTE TO FRACTION(5)=CHAR(11) 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(2)=CHAR(17) DTYPE_ALIAS DATETIME MONTH TO FRACTION(3)=CHAR(18) DTYPE_ALIAS DATETIME MONTH TO FRACTION(4)=CHAR(19) DTYPE_ALIAS DATETIME MONTH TO FRACTION(5)=CHAR(20) 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(9) DTYPE_ALIAS DATETIME SECOND TO FRACTION(1)=CHAR(9) DTYPE_ALIAS DATETIME SECOND TO FRACTION(3)=CHAR(9) DTYPE_ALIAS DATETIME SECOND TO FRACTION(4)=CHAR(9) DTYPE_ALIAS DATETIME SECOND TO FRACTION(5)=CHAR(9) DTYPE_ALIAS DATETIME SECOND TO FRACTION=CHAR(9) DTYPE_ALIAS DATETIME SECOND TO SECOND=SMALLINT DTYPE_ALIAS DATETIME YEAR TO DAY=CHAR(10) DTYPE_ALIAS DATETIME YEAR TO FRACTION(2)=CHAR(24) DTYPE_ALIAS DATETIME YEAR TO FRACTION(1)=CHAR(24) DTYPE_ALIAS DATETIME YEAR TO FRACTION(4)=CHAR(24) DTYPE_ALIAS DATETIME YEAR TO FRACTION(3)=CHAR(24) DTYPE_ALIAS DATETIME YEAR TO FRACTION(5)=CHAR(24) DTYPE_ALIAS DATETIME YEAR TO FRACTION=CHAR(24) DTYPE_ALIAS DATETIME YEAR TO HOUR=CHAR(16) DTYPE_ALIAS DATETIME YEAR TO MINUTE=CHAR(19) DTYPE_ALIAS DATETIME YEAR TO MONTH=CHAR(7) IF LOBLAWSPECIAL = Y DTYPE_ALIAS DATETIME YEAR TO SECOND=timestamp without time zone ELSE DTYPE_ALIAS DATETIME YEAR TO SECOND=timestamp without time zone ENDIF DTYPE_ALIAS DATETIME YEAR TO YEAR=SMALLINT DTYPE_ALIAS INTERVAL YEAR TO YEAR=CHAR(20) DTYPE_ALIAS INTERVAL YEAR (%s) TO YEAR=CHAR(20) DTYPE_ALIAS INTERVAL YEAR TO MONTH=CHAR(20) DTYPE_ALIAS INTERVAL YEAR (%s) TO MONTH=CHAR(20) DTYPE_ALIAS INTERVAL MONTH TO MONTH=CHAR(20) DTYPE_ALIAS INTERVAL MONTH (%s) TO MONTH=CHAR(20) DTYPE_ALIAS INTERVAL DAY TO DAY=CHAR(20) DTYPE_ALIAS INTERVAL DAY (%s) TO DAY=CHAR(20) DTYPE_ALIAS INTERVAL DAY TO HOUR=CHAR(20) DTYPE_ALIAS INTERVAL DAY (%s) TO HOUR=CHAR(20) DTYPE_ALIAS INTERVAL DAY TO MINUTE=CHAR(20) DTYPE_ALIAS INTERVAL DAY (%s) TO MINUTE=CHAR(20) DTYPE_ALIAS INTERVAL DAY TO SECOND=CHAR(20) DTYPE_ALIAS INTERVAL DAY (%s) TO SECOND=CHAR(20) DTYPE_ALIAS INTERVAL DAY TO FRACTION=CHAR(20) DTYPE_ALIAS INTERVAL DAY (%s) TO FRACTION=CHAR(20) DTYPE_ALIAS INTERVAL DAY TO FRACTION(2)=CHAR(20) DTYPE_ALIAS INTERVAL DAY (%s) TO FRACTION(2)=CHAR(20) DTYPE_ALIAS INTERVAL HOUR TO HOUR=CHAR(20) DTYPE_ALIAS INTERVAL HOUR (%s) TO HOUR=CHAR(20) DTYPE_ALIAS INTERVAL HOUR TO MINUTE=CHAR(20) DTYPE_ALIAS INTERVAL HOUR (%s) TO MINUTE=CHAR(20) DTYPE_ALIAS INTERVAL HOUR TO SECOND=CHAR(20) DTYPE_ALIAS INTERVAL HOUR (%s) TO SECOND=CHAR(20) DTYPE_ALIAS INTERVAL HOUR TO FRACTION=CHAR(20) DTYPE_ALIAS INTERVAL HOUR (%s) TO FRACTION=CHAR(20) DTYPE_ALIAS INTERVAL HOUR TO FRACTION(2)=CHAR(20) DTYPE_ALIAS INTERVAL HOUR (%s) TO FRACTION(2)=CHAR(20) DTYPE_ALIAS INTERVAL MINUTE TO MINUTE=CHAR(20) DTYPE_ALIAS INTERVAL MINUTE (%s) TO MINUTE=CHAR(20) DTYPE_ALIAS INTERVAL MINUTE TO SECOND=CHAR(20) DTYPE_ALIAS INTERVAL MINUTE (%s) TO SECOND=CHAR(20) DTYPE_ALIAS INTERVAL MINUTE TO FRACTION=CHAR(20) DTYPE_ALIAS INTERVAL MINUTE (%s) TO FRACTION=CHAR(20) DTYPE_ALIAS INTERVAL MINUTE (%s ) TO FRACTION(1)=CHAR(20) DTYPE_ALIAS INTERVAL MINUTE (%s) TO FRACTION(1)=CHAR(20) DTYPE_ALIAS INTERVAL SECOND TO SECOND=CHAR(20) DTYPE_ALIAS INTERVAL SECOND (%s) TO SECOND=CHAR(20) DTYPE_ALIAS INTERVAL SECOND TO FRACTION=CHAR(20) DTYPE_ALIAS INTERVAL SECOND (%s) TO FRACTION=CHAR(20) DTYPE_ALIAS INTERVAL SECOND TO FRACTION(2)=CHAR(20) DTYPE_ALIAS INTERVAL SECOND (%s) TO FRACTION(2)=CHAR(20) DTYPE_ALIAS NVARCHAR = VARCHAR OMIT_NO_LOG USE_INDICATOR REPLACE_SQLCONST rowid = oid REPLACE_SQLCONST user = cast(user as char(8)) # These are only needed for non-patched postgres : #REPLACE_SQLCONST today = date(now()) REPLACE_SQLCONST today = current_date REPLACE_SQLCONST time = current_time(0) REPLACE_SQLFUNC year = date_part('YEAR',(%s)::timestamp with time zone)::int REPLACE_SQLFUNC month = date_part('MONTH',(%s)::timestamp with time zone)::int REPLACE_SQLFUNC day = date_part('DAY',(%s)::timestamp with time zone)::int REPLACE_SQLFUNC dow = date_part('DOW',(%s)::timestamp with time zone)::int REPLACE_SQLFUNC weekday = date_part('DOW',(%s)::timestamp with time zone)::int REPLACE_SQLFUNC nvl = COALESCE(%s) REPLACE_SQLFUNC ascii = chr(%s) REPLACE_SQLFUNC ord = ascii(%s) REPLACE_SQLFUNC upshift=upper(%s) REPLACE_SQLFUNC downshift=lower(%s) IF LOBLAWSPECIAL = Y REPLACE_EXPR current year to second = localtimestamp(0) ELSE REPLACE_EXPR current year to second = to_char(now(), 'YYYY-MM-DD HH24:MI:SS') ENDIF REPLACE_EXPR current year to year = date_part('YEAR',now()) REPLACE_EXPR current year to month = to_char(now(), 'YYYY-MM') REPLACE_EXPR current year to day = to_char(now(), 'YYYY-MM-DD') REPLACE_EXPR current year to hour = to_char(now(), 'YYYY-MM-DD HH24') REPLACE_EXPR current year to minute = to_char(now(), 'YYYY-MM-DD HH24:MI') REPLACE_EXPR current year to fraction(1) = to_char(now(), 'YYYY-MM-DD HH24:MI:SS.MS') REPLACE_EXPR current year to fraction(2) = to_char(now(), 'YYYY-MM-DD HH24:MI:SS.MS') REPLACE_EXPR current year to fraction(3) = to_char(now(), 'YYYY-MM-DD HH24:MI:SS.MS') REPLACE_EXPR current year to fraction(4) = to_char(now(), 'YYYY-MM-DD HH24:MI:SS.MS') REPLACE_EXPR current year to fraction(5) = to_char(now(), 'YYYY-MM-DD HH24:MI:SS.MS') REPLACE_EXPR current year to fraction = to_char(now(), 'YYYY-MM-DD HH24:MI:SS.MS') REPLACE_EXPR current month to month = date_part('MONTH',now()) REPLACE_EXPR current month to day = to_char(now(), 'MM-DD') REPLACE_EXPR current month to hour = to_char(now(), 'MM-DD HH24') REPLACE_EXPR current month to minute = to_char(now(), 'MM-DD HH24:MI') REPLACE_EXPR current month to second = to_char(now(), 'MM-DD HH24:MI:SS') REPLACE_EXPR current month to fraction(1) = to_char(now(), 'MM-DD HH24:MI:SS.MS') REPLACE_EXPR current month to fraction(2) = to_char(now(), 'MM-DD HH24:MI:SS.MS') REPLACE_EXPR current month to fraction(3) = to_char(now(), 'MM-DD HH24:MI:SS.MS') REPLACE_EXPR current month to fraction(4) = to_char(now(), 'MM-DD HH24:MI:SS.MS') REPLACE_EXPR current month to fraction(5) = to_char(now(), 'MM-DD HH24:MI:SS.MS') REPLACE_EXPR current month to fraction = to_char(now(),'MM-DD HH24:MI:SS.MS') REPLACE_EXPR current day to day = date_part('DAY',now()) REPLACE_EXPR current day to hour = to_char(now(), 'DD HH24') REPLACE_EXPR current day to minute = to_char(now(), 'DD HH24:MI') REPLACE_EXPR current day to second = to_char(now(), 'DD HH24:MI:SS') REPLACE_EXPR current day to fraction(1) = to_char(now(), 'DD HH24:MI:SS.MS') REPLACE_EXPR current day to fraction(2) = to_char(now(), 'DD HH24:MI:SS.MS') REPLACE_EXPR current day to fraction(3) = to_char(now(), 'DD HH24:MI:SS.MS') REPLACE_EXPR current day to fraction(4) = to_char(now(), 'DD HH24:MI:SS.MS') REPLACE_EXPR current day to fraction(5) = to_char(now(), 'DD HH24:MI:SS.MS') REPLACE_EXPR current day to fraction = to_char(now(), 'DD HH24:MI:SS.MS') REPLACE_EXPR current hour to hour = date_part('HOUR',now()) REPLACE_EXPR current hour to minute = to_char(now(),'HH24:MI') REPLACE_EXPR current hour to second = to_char(now(), 'HH24:MI:SS') REPLACE_EXPR current hour to fraction(1) = to_char(now(), 'HH24:MI:SS.MS') REPLACE_EXPR current hour to fraction(2) = to_char(now(), 'HH24:MI:SS.MS') REPLACE_EXPR current hour to fraction(3) = to_char(now(), 'HH24:MI:SS.MS') REPLACE_EXPR current hour to fraction(4) = to_char(now(), 'HH24:MI:SS.MS') REPLACE_EXPR current hour to fraction(5) = to_char(now(),'HH24:MI:SS.MS') REPLACE_EXPR current hour to fraction = to_char(now(), 'HH24:MI:SS.MS') REPLACE_EXPR current minute to minute = date_part('MINUTE',now()) REPLACE_EXPR current minute to second = to_char(now(), 'MI:SS') REPLACE_EXPR current minute to fraction(1) = to_char(now(),'MI:SS.MS') REPLACE_EXPR current minute to fraction(2) = to_char(now(),'MI:SS.MS') REPLACE_EXPR current minute to fraction(3) = to_char(now(),'MI:SS.MS') REPLACE_EXPR current minute to fraction(4) = to_char(now(),'MI:SS.MS') REPLACE_EXPR current minute to fraction(5) = to_char(now(),'MI:SS.MS') REPLACE_EXPR current minute to fraction = to_char(now(),'MI:SS.MS') REPLACE_EXPR current second to second = date_part('SECOND',now()) REPLACE_EXPR current second to fraction(1) = to_char(now(), 'SS.MS') REPLACE_EXPR current second to fraction(2) = to_char(now(), 'SS.MS') REPLACE_EXPR current second to fraction(3) = to_char(now(), 'SS.MS') REPLACE_EXPR current second to fraction(4) = to_char(now(), 'SS.MS') REPLACE_EXPR current second to fraction(5) = to_char(now(), 'SS.MS') REPLACE_EXPR current second to fraction = to_char(now(), 'SS.MS') # No obvious replacement for these - so effectively remove them #REPLACE_COMMAND SET EXPLAIN ON = #REPLACE_COMMAND SET EXPLAIN OFF = REPLACE_COMMAND SET LOG = REPLACE_COMMAND SET BUFFERED LOG = # This is about as close as postgres gets to an update statistics... # use VACUUM ANALYZE for space recovery as well, or let cron handle that REPLACE_COMMAND UPDATE STATISTICS = ANALYZE # 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 = ANALYZE # Postgres doesn't implement these - so ignore them ? # SET TRANSACTION ISOLATION LEVEL ... affects current transaction (informix style?) # SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL ... affects all subsequent transactions, take your pick # postgres internally treats READ UNCOMMITED as READ COMMITED REPLACE_COMMAND SET ISOLATION TO DIRTY READ = SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED # postgres internally treats REPEATABLE READ as SERIALIZABLE REPLACE_COMMAND SET ISOLATION TO REPEATABLE READ = SET TRANSACTION ISOLATION LEVEL REPEATABLE READ REPLACE_COMMAND SET ISOLATION TO CURSOR STABILITY = SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SERIALIZABLE REPLACE_COMMAND SET ISOLATION TO COMMITTED READ = SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL READ COMMITTED 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 240 = REPLACE_COMMAND ALTER TABLE %s LOCK MODE (PAGE) = REPLACE_COMMAND ALTER TABLE %s LOCK MODE (ROW) = #FULL_INSERT OMIT_SERIAL_COL_FROM_INSERT # Ignore any errors when closing a cursor # it may already have been closed... IGNORE_CLOSE_ERROR OMIT_INDEX_CLUSTER OMIT_INDEX_ORDER IGNORE_OWNER #ESQL_UNLOAD #ESQL_UNLOAD_FULL_PATH ESQL_AFTER_INSERT = A4GLESQL_after_insert(); ESQL_AFTER_UPDATE = A4GLESQL_after_update(); ESQL_AFTER_DELETE = A4GLESQL_after_delete(); 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 MATCHES_VAR_FUNC = matches_to_regexp # 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 FAKE_IMMEDIATE SWAP_SQLCA62 OMIT_UPDATE_TABLE ESQL_UNLOAD_LIB_FALLBACK EMULATE_INSERT_CURSOR CLOSE_CURSOR_BEFORE_OPEN FIX_OUTER_JOINS OMIT_INDEX_USING OMIT_INDEX_FILLFACTOR OMIT_INDEX_IN ADD_WITH_OIDS NEVER_CONVERT_COLUMN FORCE_HOLD_EXCEPT_UPDATE FIRSTASLIMIT OMIT_TABLE_EXTENTS OMIT_TABLE_IN OMIT_LOCK_MODE ALLOW_TIME_DATATYPE ALLOW_TIMESTAMP_DATATYPE UNLDATEASDBDATE FORCE_DATE_CAST FOR_UPDATE_DROP_COLLIST REMAP_ERROR -7=-206 OUTER_JOINS_NB IF A4GL_PGVERSION ge 80300 FOR_UPDATE_NOWAIT ELSE DEBUG ignore nowait ENDIF IF DBDATE MATCHES "[Dd][Mm][Yy]*" DEFAULT_SQL 0 = SET DATESTYLE=SQL,DMY ENDIF IF DBDATE MATCHES "[Mm][Dd][Yy]*" DEFAULT_SQL 0 = SET DATESTYLE=SQL,MDY ENDIF IF A4GL_PGVERSION ge 80400 DEFAULT_SQL 1 = SET intervalstyle TO 'postgres_verbose'; ENDIF