missing oid?

"James B. Byrne via Aubit4gl-discuss" <[email protected]> Tue, 2 Mar 2021 12:18:51 -0500
Newsgroups gmane.comp.lang.4gl.aubit.general
Message-ID <[email protected]>
I am getting an error message relating to an unknown column (oid) in a 4gl
compiled program.  As of PostgreSQL-8.4 the automatic oid column is deprecated.

How is this handled?


PostgreSQL 8.4.22 Documentation
Chapter 18. Server Configuration
18.12. Version and Platform Compatibility
18.12.1. Previous PostgreSQL Versions
. . .
default_with_oids (boolean)

    This controls whether CREATE TABLE and CREATE TABLE AS include an OID
column in newly-created tables, if neither WITH OIDS nor WITHOUT OIDS is
specified. It also determines whether OIDs will be included in tables
created by SELECT INTO. In PostgreSQL 8.1 default_with_oids is off by
default; in prior versions of PostgreSQL, it was on by default.

    The use of OIDs in user tables is considered deprecated, so most
installations should leave this variable disabled. Applications that
require OIDs for a particular table should specify WITH OIDS when creating
the table. This variable can be enabled for compatibility with old
applications that do not follow this behavior.
. . .



Err:Program ./ex10.4ae stopped at 'ex10.4gl', line number 233.
Error status number -217.
column "oid" does not exist.

4gl function call stack :
    ex10.4gl (Line 69) calls  dsply_manuf()
    MAIN


[byrnejb_hll@vhost01 exercise-10 (master)]$ tail -100  debug.out
 ORDER BY manu_code ASCsqlexpr.c            2699   dbg (     0,     0,0)
make_select_stmt_v2      ()  --->SELECT oid,
   manu_code,
   manu_name,
   lead_time
 FROM manufact
 ORDER BY manu_code ASC
sqlconvert.c         4465   dbg (     0,     0,0) A4GL_free_select_stmt    () 
A4GL_free_select_stmt
sqlconvert.c         4486   dbg (     0,     0,0) A4GL_free_select_stmt    () 
Free tables_val
sqlconvert.c         4492   dbg (     0,     0,0) A4GL_free_select_stmt    () 
All done
mem.c                171    dbg (     0,     0,0) acl_free_full            () 
Free 0x801928520 util.c 144
mem.c                171    dbg (     0,     0,0) acl_free_full            () 
Free 0x800650e38 util.c 174
mem.c                171    dbg (     0,     0,0) acl_free_full            () 
Free 0x8019285e0 util.c 561
mem.c                171    dbg (     0,     0,0) acl_free_full            () 
Free 0x801928580 util.c 495
util.c               667    dbg (     0,     0,0)
A4GLSQLCV_convert_sql_internal()  SQL processed OK (1 statements)
util.c               721    dbg (     0,     0,0)
A4GLSQLCV_convert_sql_internal()  Statement 0 = SELECT oid,   manu_code,  
manu_name,   lead_time  FROM manufact ORDER BY manu_code ASC
util.c               729    dbg (     0,     0,0)
A4GLSQLCV_convert_sql_internal()  -->SELECT oid,   manu_code,   manu_name,  
lead_time  FROM manufact ORDER BY manu_code ASC
mem.c                171    dbg (     0,     0,0) acl_free_full            () 
Free 0x801928400 util.c 810
sql_common.c         323    dbg (     0,     0,0) A4GL_set_status          () 
A4GL_set_status(0,1)
sql_common.c         335    dbg (     0,     0,0) A4GL_set_status          () 
Status set to 0
sqlconvert.c         332    dbg (     0,     0,0) A4GL_convert_sql_new     () 
Translates to SELECT oid,   manu_code,   manu_name,   lead_time  FROM manufact
ORDER BY manu_code ASC
sqlconvert.c         1075   dbg (     0,     0,0) A4GLSQLCV_check_sql      () 
check sql : SELECT oid,   manu_code,   manu_name,   lead_time  FROM manufact
ORDER BY manu_code ASC
mem.c                171    dbg (     0,     0,0) acl_free_full            () 
Free 0x80197f380 sqlconvert.c 1079
sqlconvert.c         1107   dbg (     0,     0,0) A4GLSQLCV_check_sql      () 
check sql 2
sqlconvert.c         1123   dbg (     0,     0,0) A4GLSQLCV_check_sql      () 
returning
mem.c                171    dbg (     0,     0,0) acl_free_full            () 
Free 0x80192a900 sqlconvert.c 1134
sqlconvert.c         349    dbg (     0,     0,0) A4GL_convert_sql_new     () 
check_sql.. SELECT oid,   manu_code,   manu_name,   lead_time  FROM manufact
ORDER BY manu_code ASC
mem.c                171    dbg (     0,     0,0) acl_free_full            () 
Free 0x8019282e0 sqlconvert.c 355
mem.c                171    dbg (     0,     0,0) acl_free_full            () 
Free 0x801928340 sqlconvert.c 357
API_sql.c            714    dbg (     0,     0,0) A4GLSQL_fixup_descriptor () 
Call to char* A4GLSQL_fixup_descriptor((a4gl_st_ex10_4gl_227)))
API_sql.c            722    dbg (     0,     0,0) A4GLSQL_fixup_descriptor () 
Returning (a4gl_st_ex10_4gl_227)
API_sql.c            499    dbg (     0,     0,0)
A4GLSQL_prepare_select_internal()  Call to void*
A4GLSQL_prepare_select_internal(0x0,0,0x0,0,(SELECT oid,   manu_code,  
manu_name,   lead_time  FROM manufact ORDER BY manu_code
ASC)),(a4gl_st_ex10_4gl_227)),0)
pg8.c                1744   dbg (     0,     0,0)
A4GLSQLLIB_A4GLSQL_prepare_select_internal()  uniqid=a4gl_st_ex10_4gl_227
pg8.c                1750   dbg (     0,     0,0)
A4GLSQLLIB_A4GLSQL_prepare_select_internal()  -->SELECT oid,   manu_code,  
manu_name,   lead_time  FROM manufact ORDER BY manu_code ASC
pg8.c                1751   dbg (     0,     0,0)
A4GLSQLLIB_A4GLSQL_prepare_select_internal()  Prepare : SELECT oid,  
manu_code,   manu_name,   lead_time  FROM manufact ORDER BY manu_code ASC
pg8.c                1753   dbg (     0,     0,0)
A4GLSQLLIB_A4GLSQL_prepare_select_internal()  OK..
API_sql.c            507    dbg (     0,     0,0)
A4GLSQL_prepare_select_internal()  Returning (0x8019d3c00)
sql_common.c         1134   dbg (     0,     0,0) A4GL_addPreparedStatement() 
npreparedStatements=1
API_sql.c            483    dbg (     0,     0,0)
A4GLSQL_declare_cursor_internal()  Call to void*
A4GLSQL_declare_cursor_internal(0,0x8019d3c00,0,(ex10_c_manufs)))
API_sql.c            491    dbg (     0,     0,0)
A4GLSQL_declare_cursor_internal()  Returning (0x80204aff0)
sql_common.c         2365   dbg (     0,     0,0) A4GL_declare_cursor      () 
A4GL_declare .. cursor =ex10_c_manufs select=SELECT oid,   manu_code,  
manu_name,   lead_time  FROM manufact ORDER BY manu_code ASC
function_call_stack.c 175    dbg (     0,     0,0) A4GLSTK_setCurrentLine   () 
A4GLSTK_setCurrentLine : ex10.4gl 231
stack.c              3858   dbg (     0,     0,0) A4GL_isnull              () 
i1=-2147483648
stack.c              3862   dbg (     0,     0,0) A4GL_isnull              () 
i2=1
stack.c              1064   dbg (     0,     0,0) A4GL_pop_param           () 
params[params_cnt].dtype=258 d=1
stack.c              1065   dbg (     0,     0,0) A4GL_pop_param           () 
MASKED params[params_cnt].dtype=2 d=1
stack.c              3858   dbg (     0,     0,0) A4GL_isnull              () 
i1=-2147483648
stack.c              3862   dbg (     0,     0,0) A4GL_isnull              () 
i2=1
conv.c               2998   dbg (     0,     0,0) A4GL_ltoi                () 
Ltoi
stack.c              1113   dbg (     0,     0,0) A4GL_pop_param           () 
102 258
mem.c                171    dbg (     0,     0,0) acl_free_full            () 
Free 0x800650e38 stack.c 1115
function_call_stack.c 175    dbg (     0,     0,0) A4GLSTK_setCurrentLine   () 
A4GLSTK_setCurrentLine : ex10.4gl 233
API_sql.c            557    dbg (     0,     0,0) A4GLSQL_set_sqlca_sqlcode() 
Call to void A4GLSQL_set_sqlca_sqlcode(0)
sql_common.c         323    dbg (     0,     0,0) A4GL_set_status          () 
A4GL_set_status(0,1)
sql_common.c         335    dbg (     0,     0,0) A4GL_set_status          () 
Status set to 0
API_sql.c            440    dbg (     0,     0,0)
A4GLSQL_open_cursor_internal()  Call to int
A4GLSQL_open_cursor_internal((ex10_c_manufs)),0,0x0)
pg8.c                3147   dbg (     0,     0,0)
A4GLSQLLIB_A4GLSQL_open_cursor_internal()  ni=0
sql_common.c         323    dbg (     0,     0,0) A4GL_set_status          () 
A4GL_set_status(0,1)
sql_common.c         335    dbg (     0,     0,0) A4GL_set_status          () 
Status set to 0
pg8.c                3214   dbg (     0,     0,0)
A4GLSQLLIB_A4GLSQL_open_cursor_internal()  before replace_ibind ni =0
pg8.c                3218   dbg (     0,     0,0)
A4GLSQLLIB_A4GLSQL_open_cursor_internal()  cid->DeclareSql= DECLARE
ex10_c_manufs CURSOR WITH HOLD FOR SELECT oid,   manu_code,   manu_name,  
lead_time  FROM manufact ORDER BY manu_code ASC buff2= DECLARE ex10_c_manufs
CURSOR WITH HOLD FOR SELECT oid,   manu_code,   manu_name,   lead_time  FROM
manufact ORDER BY manu_code ASC
pg8.c                3232   dbg (     0,     0,0)
A4GLSQLLIB_A4GLSQL_open_cursor_internal()  Bad prepare ERROR:  column "oid"
does not exist
LINE 1: ...DECLARE ex10_c_manufs CURSOR WITH HOLD FOR SELECT oid,   man...
                                                             ^
pg8.c                4181   dbg (     0,     0,0) SetErrno                 () 
In SetErrno - res=0x802028500
pg8.c                4197   dbg (     0,     0,0) SetErrno                 () 
This state=42703
pg8.c                4209   dbg (     0,     0,0) SetErrno                 () 
Postgres says : 42703 column "oid" does not exist
pg8.c                4211   dbg (     0,     0,0) SetErrno                 () 
And Postgres says : (null)
pg8.c                4213   dbg (     0,     0,0) SetErrno                 () 
And Postgres also says : (null)
sql_common.c         323    dbg (  -217,  -217,0) A4GL_set_status          () 
A4GL_set_status(-217,1)
sql_common.c         335    dbg (  -217,  -217,1) A4GL_set_status          () 
Status set to -217
API_sql.c            448    dbg (  -217,  -217,1)
A4GLSQL_open_cursor_internal()  Returning '1'
fglwrap.c            656    dbg (  -217,  -217,1) A4GL_chk_err             () 
Checking exit status 233 ex10.4gl
err.c                81     dbg (  -217,  -217,1) A4GL_err_print           () 
In err print -217
err.c                119    dbg (  -217,  -217,1) A4GL_err_print           () 
Calling get_errmsg
error.c              290    dbg (  -217,  -217,1) A4GL_get_errmsg          () 
In get errm
error.c              301    dbg (  -217,  -217,1) A4GL_get_errmsg          () 
Looking up error... 0
error.c              311    dbg (  -217,  -217,1) A4GL_get_errmsg          () 
Not found...
API_sql.c            580    dbg (  -217,  -217,1) A4GLSQL_get_errmsg       () 
Call to char* A4GLSQL_get_errmsg(-217)
API_sql.c            588    dbg (  -217,  -217,1) A4GLSQL_get_errmsg       () 
Returning (column "oid" does not exist)
error.c              317    dbg (  -217,  -217,1) A4GL_get_errmsg          () 
Returning A4GLSQL_get_errmsg ""
err.c                123    dbg (  -217,  -217,1) A4GL_err_print           () 
Got column "oid" does not exist
API_ui.c             1089   dbg (  -217,  -217,1) A4GL_gotolinemode        () 
Call to void A4GL_gotolinemode()
fglwrap.c            696    dbg (  -217,  -217,1) A4GL_chk_err             () 
Error...
fglwrap.c            699    dbg (  -217,  -217,1) A4GL_chk_err             () 
Write error to screen...
fglwrap.c            712    dbg (  -217,  -217,1) A4GL_chk_err             () 
Program ./ex10.4ae stopped at 'ex10.4gl', line number 233.
Error status number -217.
column "oid" does not exist.

4gl function call stack :
    ex10.4gl (Line 69) calls  dsply_manuf()
    MAIN
fglwrap.c            745    dbg (  -217,  -217,1) A4GL_chk_err             () 
Close errlog
builtin.c            1070   dbg (  -217,  -217,1) A4GL_close_errorlog_file () 
Close_errlog_file
API_ui.c             1551   dbg (  -217,  -217,1) A4GL_ui_exit             () 
Call to void A4GL_ui_exit(1)
API_sql.c            354    dbg (  -217,  -217,1)
A4GLSQL_close_session_internal()  Call to int
A4GLSQL_close_session_internal((default)))
pg8.c                766    dbg (  -217,  -217,1)
A4GLSQLLIB_A4GLSQL_close_session_internal()  Close session default
sql_common.c         317    dbg (     0,     0,1) A4GL_set_status          () 
set_status: errflg is set - not setting new status 0
API_sql.c            362    dbg (     0,     0,1)
A4GLSQL_close_session_internal()  Returning '1'
builtin.c            1070   dbg (     0,     0,1) A4GL_close_errorlog_file () 
Close_errlog_file
common_ui.c          68     dbg (     0,     0,1) A4GL_fgl_die             () 
End of program - exit(1).



-- 
***          e-Mail is NOT a SECURE channel          ***
        Do NOT transmit sensitive data via e-Mail
   Unencrypted messages have no legal claim to privacy
 Do NOT open attachments nor follow links sent by e-Mail

James B. Byrne                mailto:[email protected]
Harte & Lyne Limited          http://www.harte-lyne.ca
9 Brockley Drive              vox: +1 905 561 1241
Hamilton, Ontario             fax: +1 905 561 0757
Canada  L8E 3C3