Glorp actually writes nil instead of NULL on 7.7.1 and Oracle

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Glorp actually writes nil instead of NULL on 7.7.1 and Oracle

Maarten Mostert-2
Hi
As can be seen in the logs below, Glorp writes nil instead of NUL on 7.7.1
This consequently gives the ORA-01722: Nombre non valide.
Notice that upgrading to (7.8 - 1023 AR 60890 2,dwallen) doesn't help.
However if I go down to Glorp 7.7 - 70 + AR 58501 8,dwallen) Oracle works as usual and writes NUL's as it should !!
My environment is Vista on a French MacBOOK and Oracle 10g XE.
On Postgres and Acces things work oké so far.

This is what Glorp the log is showing:

Begin Transaction
select MMT_PLANNEDTASKS_task_id_seq.nextval from SYS.ALL_OBJECTS WHERE rownum <= ? #(1)
(0.065 s)
INSERT INTO MMT_PLANNEDTASKS
(task_id,proj_id,task_is_overallocated,task_ovt_work,task_reg_work,task_slack,task_is_effort_driven,task_early_finish,task_late_start,task_dur,task_dur_min,task_start
_date,task_finish_date,task_act_start,task_act_finish,task_pct_comp,task_last_registerdate,critical_a,critical_b,critical_c,critical_d,task_type,task_creation_date,task_ear
ly_start,task_late_finish,task_cal_uid,task_work,task_regression_late,task_regression_early,task_regression_planned,task_cost,task_fixed_cost,task_base_cost,task_o
vt_cost,task_wbs_chain,task_wbs_node,task_org_key,task_org_node,task_name,smallpicture_id) VALUES
(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) #(1 1 nil nil nil 5 nil nil nil 5 0 25 juillet 2011 00:00:00 29 juillet 2011 00:00:00 nil nil 0.0 nil 0.0
0.0 0.0 40381.0 1 25 juillet 2011 22:46:18 nil nil nil 0.0 0.0 0.0 0.0 nil nil nil nil '<1>' 1 1 1 nil nil)
Rollback Transaction

================================================================

THIS IS WHAT IT SHOULD BE DO

================================================================


Begin Transaction
select MMT_PLANNEDTASKS_task_id_seq.nextval from SYS.ALL_OBJECTS WHERE rownum <= 1
(0.064 s)
INSERT INTO MMT_PLANNEDTASKS
(task_id,proj_id,task_is_overallocated,task_ovt_work,task_reg_work,task_slack,task_is_effort_driven,task_early_finish,task_late_start,task_dur,task_dur_min,task_start
_date,task_finish_date,task_act_start,task_act_finish,task_pct_comp,task_last_registerdate,critical_a,critical_b,critical_c,critical_d,task_type,task_creation_date,task_ear
ly_start,task_late_finish,task_cal_uid,task_work,task_regression_late,task_regression_early,task_regression_planned,task_cost,task_fixed_cost,task_base_cost,task_o
vt_cost,task_wbs_chain,task_wbs_node,task_org_key,task_org_node,task_name,smallpicture_id) VALUES
(3,1,NULL,NULL,NULL,5,NULL,NULL,NULL,5,0,to_date('2011-07-25 00:00:00','YYYY-MM-DD HH24:MI:SS'),to_date('2011-07-29 00:00:00','YYYY-MM-DD
HH24:MI:SS'),NULL,NULL,0.0,NULL,0.0,0.0,0.0,40381.0,1,to_date('2011-07-25 23:07:10','YYYY-MM-DD
HH24:MI:SS'),NULL,NULL,NULL,0.0,0.0,0.0,0.0,NULL,NULL,NULL,NULL,'<1>',1,1,1,NULL,NULL)
(0.012 s)
Commit Transaction

@+Maarten,

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: Glorp actually writes nil instead of NULL on 7.7.1 and Oracle

Alan Knight-2
I suspect that is not actually the root of the problem you're seeing. When you're binding values, which is what that log shows, binding nil to EXDI should result in a NULL in the database. The things being printed in that array are Smalltalk objects, and we don't have a NULL. If you turn off binding, I'd expect you get NULL inlined in the statement. But I doubt that the binding is the issue, as it's extremely basic functionality. I'm able to run the Glorp test suite on Oracle using 7.7.1, which does numerous such inserts, and doesn't seem to have a problem with it.



[hidden email]
25 July, 2011 5:27 PM


Hi
As can be seen in the logs below, Glorp writes nil instead of NUL on 7.7.1
This consequently gives the ORA-01722: Nombre non valide.
Notice that upgrading to (7.8 - 1023 AR 60890 2,dwallen) doesn't help.
However if I go down to Glorp 7.7 - 70 + AR 58501 8,dwallen) Oracle works as usual and writes NUL's as it should !!
My environment is Vista on a French MacBOOK and Oracle 10g XE.
On Postgres and Acces things work oké so far.

This is what Glorp the log is showing:

Begin Transaction
select MMT_PLANNEDTASKS_task_id_seq.nextval from SYS.ALL_OBJECTS WHERE rownum <= ? #(1)
(0.065 s)
INSERT INTO MMT_PLANNEDTASKS
(task_id,proj_id,task_is_overallocated,task_ovt_work,task_reg_work,task_slack,task_is_effort_driven,task_early_finish,task_late_start,task_dur,task_dur_min,task_start
_date,task_finish_date,task_act_start,task_act_finish,task_pct_comp,task_last_registerdate,critical_a,critical_b,critical_c,critical_d,task_type,task_creation_date,task_ear
ly_start,task_late_finish,task_cal_uid,task_work,task_regression_late,task_regression_early,task_regression_planned,task_cost,task_fixed_cost,task_base_cost,task_o
vt_cost,task_wbs_chain,task_wbs_node,task_org_key,task_org_node,task_name,smallpicture_id) VALUES
(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) #(1 1 nil nil nil 5 nil nil nil 5 0 25 juillet 2011 00:00:00 29 juillet 2011 00:00:00 nil nil 0.0 nil 0.0
0.0 0.0 40381.0 1 25 juillet 2011 22:46:18 nil nil nil 0.0 0.0 0.0 0.0 nil nil nil nil '<1>' 1 1 1 nil nil)
Rollback Transaction

================================================================

THIS IS WHAT IT SHOULD BE DO

================================================================


Begin Transaction
select MMT_PLANNEDTASKS_task_id_seq.nextval from SYS.ALL_OBJECTS WHERE rownum <= 1
(0.064 s)
INSERT INTO MMT_PLANNEDTASKS
(task_id,proj_id,task_is_overallocated,task_ovt_work,task_reg_work,task_slack,task_is_effort_driven,task_early_finish,task_late_start,task_dur,task_dur_min,task_start
_date,task_finish_date,task_act_start,task_act_finish,task_pct_comp,task_last_registerdate,critical_a,critical_b,critical_c,critical_d,task_type,task_creation_date,task_ear
ly_start,task_late_finish,task_cal_uid,task_work,task_regression_late,task_regression_early,task_regression_planned,task_cost,task_fixed_cost,task_base_cost,task_o
vt_cost,task_wbs_chain,task_wbs_node,task_org_key,task_org_node,task_name,smallpicture_id) VALUES
(3,1,NULL,NULL,NULL,5,NULL,NULL,NULL,5,0,to_date('2011-07-25 00:00:00','YYYY-MM-DD HH24:MI:SS'),to_date('2011-07-29 00:00:00','YYYY-MM-DD
HH24:MI:SS'),NULL,NULL,0.0,NULL,0.0,0.0,0.0,40381.0,1,to_date('2011-07-25 23:07:10','YYYY-MM-DD
HH24:MI:SS'),NULL,NULL,NULL,0.0,0.0,0.0,0.0,NULL,NULL,NULL,NULL,'<1>',1,1,1,NULL,NULL)
(0.012 s)
Commit Transaction

@+Maarten,

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: Glorp actually writes nil instead of NULL on 7.7.1 and Oracle

Maarten Mostert-2
Dear Alan,

Well turning binding explicitely off actually solved the problem which at least gets me going again.

Notice that I used to log in with something like this:

Glorp.DatabasePlatform useBindingIfSupported: nil.
accessor := Glorp.DatabaseAccessor
forLogin: loginDialog dbPofileSelection value asLogin.
accessor loginIfError:
[:ex |
MyDialog
warn: (UserMessage defaultString: 'Unable to connect to this database!'
key: #unableToConnect)].
accessor isLoggedIn ifTrue: [repeatLogin := false]

The thing is that I don't really know what binding does, and I can't find many things about it. My snipped is old and probably originates from some ,
of your example code.
Must I understand that Glorp no longer figures out wheter binding is supported ?

Regards,

@+Maarten


> Message du 27/07/11 02:41
> De : "Alan Knight"
> A : "Maarten MOSTERT"
> Copie à : "VWNC"
> Objet : Re: [vwnc] Glorp actually writes nil instead of NULL on 7.7.1 and Oracle
>
> I suspect that is not actually the root of the problem you're seeing.
> When you're binding values, which is what that log shows, binding nil to
> EXDI should result in a NULL in the database. The things being printed
> in that array are Smalltalk objects, and we don't have a NULL. If you
> turn off binding, I'd expect you get NULL inlined in the statement. But
> I doubt that the binding is the issue, as it's extremely basic
> functionality. I'm able to run the Glorp test suite on Oracle using
> 7.7.1, which does numerous such inserts, and doesn't seem to have a
> problem with it.
>
> > ------------------------------------------------------------------------
> >
> > Maarten MOSTERT
> > 25 July, 2011 5:27 PM
> >
> >
> > Hi
> > As can be seen in the logs below, Glorp writes nil instead of NUL on
> > 7.7.1
> > This consequently gives the ORA-01722: Nombre non valide.
> > Notice that upgrading to (7.8 - 1023 AR 60890 2,dwallen) doesn't help.
> > However if I go down to Glorp 7.7 - 70 + AR 58501 8,dwallen) Oracle
> > works as usual and writes NUL's as it should !!
> > My environment is Vista on a French MacBOOK and Oracle 10g XE.
> > On Postgres and Acces things work oké so far.
> >
> > This is what Glorp the log is showing:
> >
> > Begin Transaction
> > select MMT_PLANNEDTASKS_task_id_seq.nextval from SYS.ALL_OBJECTS WHERE
> > rownum <= ? #(1)
> > (0.065 s)
> > INSERT INTO MMT_PLANNEDTASKS
> >
(task_id,proj_id,task_is_overallocated,task_ovt_work,task_reg_work,task_slack,task_is_effort_driven,task_early_finish,task_late_start,task_dur,task_dur_min,task_start
> >
_date,task_finish_date,task_act_start,task_act_finish,task_pct_comp,task_last_registerdate,critical_a,critical_b,critical_c,critical_d,task_type,task_creation_date,task_ear
> >
ly_start,task_late_finish,task_cal_uid,task_work,task_regression_late,task_regression_early,task_regression_planned,task_cost,task_fixed_cost,task_base_cost,task_o

> > vt_cost,task_wbs_chain,task_wbs_node,task_org_key,task_org_node,task_name,smallpicture_id)
> > VALUES
> > (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
> > #(1 1 nil nil nil 5 nil nil nil 5 0 25 juillet 2011 00:00:00 29
> > juillet 2011 00:00:00 nil nil 0.0 nil 0.0
> > 0.0 0.0 40381.0 1 25 juillet 2011 22:46:18 nil nil nil 0.0 0.0 0.0 0.0
> > nil nil nil nil '<1>' 1 1 1 nil nil)
> > Rollback Transaction
> >
> > ================================================================
> >
> > THIS IS WHAT IT SHOULD BE DO
> >
> > ================================================================
> >
> >
> > Begin Transaction
> > select MMT_PLANNEDTASKS_task_id_seq.nextval from SYS.ALL_OBJECTS WHERE
> > rownum <= 1
> > (0.064 s)
> > INSERT INTO MMT_PLANNEDTASKS
> >
(task_id,proj_id,task_is_overallocated,task_ovt_work,task_reg_work,task_slack,task_is_effort_driven,task_early_finish,task_late_start,task_dur,task_dur_min,task_start
> >
_date,task_finish_date,task_act_start,task_act_finish,task_pct_comp,task_last_registerdate,critical_a,critical_b,critical_c,critical_d,task_type,task_creation_date,task_ear
> >
ly_start,task_late_finish,task_cal_uid,task_work,task_regression_late,task_regression_early,task_regression_planned,task_cost,task_fixed_cost,task_base_cost,task_o

> > vt_cost,task_wbs_chain,task_wbs_node,task_org_key,task_org_node,task_name,smallpicture_id)
> > VALUES
> > (3,1,NULL,NULL,NULL,5,NULL,NULL,NULL,5,0,to_date('2011-07-25
> > 00:00:00','YYYY-MM-DD HH24:MI:SS'),to_date('2011-07-29
> > 00:00:00','YYYY-MM-DD
> > HH24:MI:SS'),NULL,NULL,0.0,NULL,0.0,0.0,0.0,40381.0,1,to_date('2011-07-25
> > 23:07:10','YYYY-MM-DD
> > HH24:MI:SS'),NULL,NULL,NULL,0.0,0.0,0.0,0.0,NULL,NULL,NULL,NULL,'<1>',1,1,1,NULL,NULL)
> > (0.012 s)
> > Commit Transaction
> >
> > @+Maarten,
> >
> > _______________________________________________
> > vwnc mailing list
> > [hidden email]
> > http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
>

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc